+-- =============================================
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_FFCODICEFISCALE.sql b/sql/Collaudo/funzioni/dbo_FFCODICEFISCALE.sql
new file mode 100644
index 00000000..ec5d4af2
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_FFCODICEFISCALE.sql
@@ -0,0 +1,16 @@
+--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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_FFPIVA.sql b/sql/Collaudo/funzioni/dbo_FFPIVA.sql
new file mode 100644
index 00000000..c6faa02a
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_FFPIVA.sql
@@ -0,0 +1,14 @@
+--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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_FormatDate_Testo_Lettera_Benvenuto.sql b/sql/Collaudo/funzioni/dbo_FormatDate_Testo_Lettera_Benvenuto.sql
new file mode 100644
index 00000000..9f18ae3b
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_FormatDate_Testo_Lettera_Benvenuto.sql
@@ -0,0 +1,42 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_GeneraChiaveContratto.sql b/sql/Collaudo/funzioni/dbo_GeneraChiaveContratto.sql
new file mode 100644
index 00000000..079ac1b0
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_GeneraChiaveContratto.sql
@@ -0,0 +1,36 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_GeneraPositionID.sql b/sql/Collaudo/funzioni/dbo_GeneraPositionID.sql
new file mode 100644
index 00000000..4ab45264
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_GeneraPositionID.sql
@@ -0,0 +1,55 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Info_DaProdottoCSaCatalogo.sql b/sql/Collaudo/funzioni/dbo_Info_DaProdottoCSaCatalogo.sql
new file mode 100644
index 00000000..83ad84e4
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Info_DaProdottoCSaCatalogo.sql
@@ -0,0 +1,44 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Firma_Lettera_Benvenuto.sql b/sql/Collaudo/funzioni/dbo_Replace_Firma_Lettera_Benvenuto.sql
new file mode 100644
index 00000000..607f982f
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Firma_Lettera_Benvenuto.sql
@@ -0,0 +1,13 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_From_Email.sql b/sql/Collaudo/funzioni/dbo_Replace_From_Email.sql
new file mode 100644
index 00000000..1e3f4ac3
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_From_Email.sql
@@ -0,0 +1,28 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_From_Email_20170316.sql b/sql/Collaudo/funzioni/dbo_Replace_From_Email_20170316.sql
new file mode 100644
index 00000000..a95587c7
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_From_Email_20170316.sql
@@ -0,0 +1,20 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Oggetto_Lettera_Benvenuto.sql b/sql/Collaudo/funzioni/dbo_Replace_Oggetto_Lettera_Benvenuto.sql
new file mode 100644
index 00000000..4c2b86e5
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Oggetto_Lettera_Benvenuto.sql
@@ -0,0 +1,24 @@
+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$/','Report di Diagnosi Sei')
+ IF (@TIPOREPORT = 'MONITORAGGIO')
+ SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$tipo$/','Report di Monitoraggio Sei')
+ RETURN @TESTO_DI_RITORNO
+END
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Subject_Email.sql b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email.sql
new file mode 100644
index 00000000..13aab1fa
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email.sql
@@ -0,0 +1,26 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_20161021.sql b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_20161021.sql
new file mode 100644
index 00000000..28098ecd
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_20161021.sql
@@ -0,0 +1,22 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_Periodico.sql b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_Periodico.sql
new file mode 100644
index 00000000..d60a0141
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_Periodico.sql
@@ -0,0 +1,22 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_test.sql b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_test.sql
new file mode 100644
index 00000000..aa6c2cce
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Subject_Email_test.sql
@@ -0,0 +1,26 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email.sql
new file mode 100644
index 00000000..0ed59f1a
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email.sql
@@ -0,0 +1,107 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_20161021.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_20161021.sql
new file mode 100644
index 00000000..72932745
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_20161021.sql
@@ -0,0 +1,96 @@
+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.
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:
CLDLRD25R08D803H
CLDPRZ61H19D803Z
FRTFNC50B03C632M
in quanto erroneamente inviate a causa di un problema tecnico.
Grazie'
+ RETURN @TESTO_DI_RITORNO
+END
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_20170310.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_20170310.sql
new file mode 100644
index 00000000..0d2b7621
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_20170310.sql
@@ -0,0 +1,104 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico.sql
new file mode 100644
index 00000000..2ac75a18
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico.sql
@@ -0,0 +1,157 @@
+--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
+ + 'Cliente: ' +
+ ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') +
+ CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
+ + ' |
'
+ 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 = 'Report: Report Monitoraggio e Diagnosi trimestrale |
' + @TESTO_DI_RITORNO1 + '
'
+ DECLARE @TESTO_DI_RITORNO2 as varchar(8000)
+ SET @TESTO_DI_RITORNO2 = ''
+ SELECT @TESTO_DI_RITORNO2 = @TESTO_DI_RITORNO2 + 'Cliente: ' +
+ ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') +
+ CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
+ + ' |
'
+ 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 = 'Report: Report Monitoraggio trimestrale |
' + @TESTO_DI_RITORNO2 + '
'
+ DECLARE @TESTO_DI_RITORNO3 as varchar(8000)
+ SET @TESTO_DI_RITORNO3 = ''
+SELECT @TESTO_DI_RITORNO3 = @TESTO_DI_RITORNO3 + 'Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'')
+ + CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
+ + ' |
'
+ 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 = 'Nominativo |
' + @TESTO_DI_RITORNO3 + '
'
+ DECLARE @TESTO_DI_RITORNO4 as varchar(8000)
+ SET @TESTO_DI_RITORNO4 = ''
+ SELECT @TESTO_DI_RITORNO4 = @TESTO_DI_RITORNO4 +
+ 'Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'')
+ + CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
+ + ' | ' +
+ '' + dbo.ToShortDateString(dateadd(yy,3,r.dt_creazione_profilo)) + ' | '
+ +'
'
+ 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
+ = 'Nominativo | Scadenza Profilo |
' + @TESTO_DI_RITORNO4 + '
'
+ DECLARE @TESTO_DI_RITORNO5 as varchar(8000)
+ SET @TESTO_DI_RITORNO5 = ''
+ SELECT @TESTO_DI_RITORNO5 = @TESTO_DI_RITORNO5 +
+ 'Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'')
+ + CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
+ + ' | ' +
+ '' + dbo.ToShortDateString(dateadd(yy,3,r.dt_creazione_profilo)) + ' | '
+ +'
'
+ 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 = 'Nominativo | Scadenza Profilo |
' + @TESTO_DI_RITORNO5 + '
'
+ 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico_LC_REP_DEF.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico_LC_REP_DEF.sql
new file mode 100644
index 00000000..b3c1c956
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico_LC_REP_DEF.sql
@@ -0,0 +1,51 @@
+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 + 'Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') + ' |
'
+ 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 = 'Report: Report Monitoraggio e Diagnosi trimestrale |
' + @TESTO_DI_RITORNO1 + '
'
+ DECLARE @TESTO_DI_RITORNO2 as varchar(8000)
+ SET @TESTO_DI_RITORNO2 = ''
+ SELECT @TESTO_DI_RITORNO2 = @TESTO_DI_RITORNO2 + 'Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') + ' |
'
+ 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 = 'Report: Report Monitoraggio trimestrale |
' + @TESTO_DI_RITORNO2 + '
'
+ 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico_LC_REP_GEN.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico_LC_REP_GEN.sql
new file mode 100644
index 00000000..1df2348f
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_Periodico_LC_REP_GEN.sql
@@ -0,0 +1,99 @@
+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 'PB: ' + C6.COD_AGENTE + ' (RETE ' + C6.RETE + ') |
' ELSE '' END)
+ + '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 + ')' + ' |
'
+ , @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 = 'Report: Report Monitoraggio e Diagnosi trimestrale |
' + @TESTO_DI_RITORNO1 + '
'
+ --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 'PB: ' + C6.COD_AGENTE + ' (RETE ' + C6.RETE + ') |
' ELSE '' END)
+ + 'Cliente: ' + ISNULL(ANAG_CLIENTI.NOME,'') + ' ' + ISNULL(ANAG_CLIENTI.COGNOME,'') + ' |
'
+ , @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 = 'Report: Report Monitoraggio trimestrale |
' + @TESTO_DI_RITORNO2 + '
'
+ 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_test.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_test.sql
new file mode 100644
index 00000000..76b09dae
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_test.sql
@@ -0,0 +1,109 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_test_20170310.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_test_20170310.sql
new file mode 100644
index 00000000..646ed43c
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Email_test_20170310.sql
@@ -0,0 +1,104 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_Testo_Lettera_Benvenuto.sql b/sql/Collaudo/funzioni/dbo_Replace_Testo_Lettera_Benvenuto.sql
new file mode 100644
index 00000000..15274b8a
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_Testo_Lettera_Benvenuto.sql
@@ -0,0 +1,90 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Replace_To_Email.sql b/sql/Collaudo/funzioni/dbo_Replace_To_Email.sql
new file mode 100644
index 00000000..5fb90bd8
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Replace_To_Email.sql
@@ -0,0 +1,17 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_Split.sql b/sql/Collaudo/funzioni/dbo_Split.sql
new file mode 100644
index 00000000..55b6ff74
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_Split.sql
@@ -0,0 +1,30 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_ToShortDateString.sql b/sql/Collaudo/funzioni/dbo_ToShortDateString.sql
new file mode 100644
index 00000000..0642e0b6
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_ToShortDateString.sql
@@ -0,0 +1,10 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_VerificaFestivo.sql b/sql/Collaudo/funzioni/dbo_VerificaFestivo.sql
new file mode 100644
index 00000000..47880402
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_VerificaFestivo.sql
@@ -0,0 +1,25 @@
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_fn_diagramobjects.sql b/sql/Collaudo/funzioni/dbo_fn_diagramobjects.sql
new file mode 100644
index 00000000..e9f1474d
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_fn_diagramobjects.sql
@@ -0,0 +1,41 @@
+CREATE FUNCTION dbo.fn_diagramobjects()
+ RETURNS int
+ WITH EXECUTE AS N'dbo'
+ AS
+ BEGIN
+ declare @id_upgraddiagrams int
+ declare @id_sysdiagrams int
+ declare @id_helpdiagrams int
+ declare @id_helpdiagramdefinition int
+ declare @id_creatediagram int
+ declare @id_renamediagram int
+ declare @id_alterdiagram int
+ declare @id_dropdiagram int
+ declare @InstalledObjects int
+ select @InstalledObjects = 0
+ select @id_upgraddiagrams = object_id(N'dbo.sp_upgraddiagrams'),
+ @id_sysdiagrams = object_id(N'dbo.sysdiagrams'),
+ @id_helpdiagrams = object_id(N'dbo.sp_helpdiagrams'),
+ @id_helpdiagramdefinition = object_id(N'dbo.sp_helpdiagramdefinition'),
+ @id_creatediagram = object_id(N'dbo.sp_creatediagram'),
+ @id_renamediagram = object_id(N'dbo.sp_renamediagram'),
+ @id_alterdiagram = object_id(N'dbo.sp_alterdiagram'),
+ @id_dropdiagram = object_id(N'dbo.sp_dropdiagram')
+ if @id_upgraddiagrams is not null
+ select @InstalledObjects = @InstalledObjects + 1
+ if @id_sysdiagrams is not null
+ select @InstalledObjects = @InstalledObjects + 2
+ if @id_helpdiagrams is not null
+ select @InstalledObjects = @InstalledObjects + 4
+ if @id_helpdiagramdefinition is not null
+ select @InstalledObjects = @InstalledObjects + 8
+ if @id_creatediagram is not null
+ select @InstalledObjects = @InstalledObjects + 16
+ if @id_renamediagram is not null
+ select @InstalledObjects = @InstalledObjects + 32
+ if @id_alterdiagram is not null
+ select @InstalledObjects = @InstalledObjects + 64
+ if @id_dropdiagram is not null
+ select @InstalledObjects = @InstalledObjects + 128
+ return @InstalledObjects
+ END
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_getAppellativo.sql b/sql/Collaudo/funzioni/dbo_getAppellativo.sql
new file mode 100644
index 00000000..c00b0cd1
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_getAppellativo.sql
@@ -0,0 +1,31 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_getFiduciariaByCodMand.sql b/sql/Collaudo/funzioni/dbo_getFiduciariaByCodMand.sql
new file mode 100644
index 00000000..9b2cfee8
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_getFiduciariaByCodMand.sql
@@ -0,0 +1,20 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_getNumSollecitiNOASS.sql b/sql/Collaudo/funzioni/dbo_getNumSollecitiNOASS.sql
new file mode 100644
index 00000000..ca70812f
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_getNumSollecitiNOASS.sql
@@ -0,0 +1,29 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_getNumSollecitiNOMIG.sql b/sql/Collaudo/funzioni/dbo_getNumSollecitiNOMIG.sql
new file mode 100644
index 00000000..283ff2cd
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_getNumSollecitiNOMIG.sql
@@ -0,0 +1,39 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_getParametro.sql b/sql/Collaudo/funzioni/dbo_getParametro.sql
new file mode 100644
index 00000000..d607473f
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_getParametro.sql
@@ -0,0 +1,21 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/dbo_udf_HexToRGB.sql b/sql/Collaudo/funzioni/dbo_udf_HexToRGB.sql
new file mode 100644
index 00000000..40db794d
--- /dev/null
+++ b/sql/Collaudo/funzioni/dbo_udf_HexToRGB.sql
@@ -0,0 +1,11 @@
+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
+ )
\ No newline at end of file
diff --git a/sql/Collaudo/funzioni/wh_IsZero.sql b/sql/Collaudo/funzioni/wh_IsZero.sql
new file mode 100644
index 00000000..37f2b175
--- /dev/null
+++ b/sql/Collaudo/funzioni/wh_IsZero.sql
@@ -0,0 +1,16 @@
+--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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Blacklist_Blocco_Tabellone.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Blacklist_Blocco_Tabellone.sql
new file mode 100644
index 00000000..8ea9c793
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Blacklist_Blocco_Tabellone.sql
@@ -0,0 +1,61 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_ANAG_SELF.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_ANAG_SELF.sql
new file mode 100644
index 00000000..158896b4
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_ANAG_SELF.sql
@@ -0,0 +1,75 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_ANAG_SELF_20181214_PreMioFoglio.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_ANAG_SELF_20181214_PreMioFoglio.sql
new file mode 100644
index 00000000..812a44cf
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_ANAG_SELF_20181214_PreMioFoglio.sql
@@ -0,0 +1,67 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_CODIFICA_CREDITRISK.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_CODIFICA_CREDITRISK.sql
new file mode 100644
index 00000000..922b91e3
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_CODIFICA_CREDITRISK.sql
@@ -0,0 +1,50 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_CODIFICA_RISCHIO.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_CODIFICA_RISCHIO.sql
new file mode 100644
index 00000000..552fa97a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_CODIFICA_RISCHIO.sql
@@ -0,0 +1,53 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_MIFID.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_MIFID.sql
new file mode 100644
index 00000000..46b4a3ad
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_MIFID.sql
@@ -0,0 +1,129 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_PARTITE_VIAGGIANTI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_PARTITE_VIAGGIANTI.sql
new file mode 100644
index 00000000..33733cc5
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_PARTITE_VIAGGIANTI.sql
@@ -0,0 +1,64 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_RISCHIO_AGGREGATO.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_RISCHIO_AGGREGATO.sql
new file mode 100644
index 00000000..d3daea7a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_DM_RISCHIO_AGGREGATO.sql
@@ -0,0 +1,96 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Delete_Immobiliare_GestionePDF.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Delete_Immobiliare_GestionePDF.sql
new file mode 100644
index 00000000..28fdab79
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Delete_Immobiliare_GestionePDF.sql
@@ -0,0 +1,31 @@
+-- ==================================================================================
+-- Author:
+-- Create date: <15.02.2019>
+-- Description:
+-- ==================================================================================
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE.sql
new file mode 100644
index 00000000..a3a9bd6b
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE.sql
@@ -0,0 +1,91 @@
+--------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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE_BKP28052023.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE_BKP28052023.sql
new file mode 100644
index 00000000..36a24570
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE_BKP28052023.sql
@@ -0,0 +1,91 @@
+--------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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE_CONSUNI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE_CONSUNI.sql
new file mode 100644
index 00000000..20a2ae0e
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GESTIONE_SELECT_LETTERE_DA_INVIARE_CONSUNI.sql
@@ -0,0 +1,90 @@
+--------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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GetDatiPerIDX.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GetDatiPerIDX.sql
new file mode 100644
index 00000000..c55e8898
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_GetDatiPerIDX.sql
@@ -0,0 +1,59 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_ExcludedList.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_ExcludedList.sql
new file mode 100644
index 00000000..9d135558
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_ExcludedList.sql
@@ -0,0 +1,52 @@
+-- ==================================================================================
+-- Author:
+-- Create date: <27.02.2019>
+-- Description:
+-- ==================================================================================
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_Immobiliare_GestionePDF.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_Immobiliare_GestionePDF.sql
new file mode 100644
index 00000000..9954a224
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_Immobiliare_GestionePDF.sql
@@ -0,0 +1,123 @@
+-- ==================================================================================
+-- Author:
+-- Create date: <15.02.2019>
+-- Description:
+-- ==================================================================================
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_Immobiliare_GestioneZIP.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_Immobiliare_GestioneZIP.sql
new file mode 100644
index 00000000..aae62ca7
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Insert_Immobiliare_GestioneZIP.sql
@@ -0,0 +1,52 @@
+-- ==================================================================================
+-- Author:
+-- Create date: <27.02.2019>
+-- Description:
+-- ==================================================================================
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_MERGED_PROCEDURE.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_MERGED_PROCEDURE.sql
new file mode 100644
index 00000000..61eae988
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_MERGED_PROCEDURE.sql
@@ -0,0 +1,109 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D2_S170RischioDiversificazione.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D2_S170RischioDiversificazione.sql
new file mode 100644
index 00000000..3ecfcb27
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D2_S170RischioDiversificazione.sql
@@ -0,0 +1,86 @@
+-- [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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D_S152Patrimonio.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D_S152Patrimonio.sql
new file mode 100644
index 00000000..9765309c
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D_S152Patrimonio.sql
@@ -0,0 +1,88 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D_S154PatrimonioFinanziario.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D_S154PatrimonioFinanziario.sql
new file mode 100644
index 00000000..32072f0f
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_D_S154PatrimonioFinanziario.sql
@@ -0,0 +1,152 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_GetClientNegativeCurrentAccountsValue.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_GetClientNegativeCurrentAccountsValue.sql
new file mode 100644
index 00000000..1ebf7fc2
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_GetClientNegativeCurrentAccountsValue.sql
@@ -0,0 +1,29 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_GetClientSelfNegCurrentAccountValue.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_GetClientSelfNegCurrentAccountValue.sql
new file mode 100644
index 00000000..8bda6efc
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_GetClientSelfNegCurrentAccountValue.sql
@@ -0,0 +1,25 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_MP_S133AreeBisognoPrincProd.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_MP_S133AreeBisognoPrincProd.sql
new file mode 100644
index 00000000..86a7f7b6
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_MP_S133AreeBisognoPrincProd.sql
@@ -0,0 +1,42 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_MP_S140AnalisiRisparmioCharts.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_MP_S140AnalisiRisparmioCharts.sql
new file mode 100644
index 00000000..f5896e81
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_MP_S140AnalisiRisparmioCharts.sql
@@ -0,0 +1,338 @@
+-- [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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_S76AlternativaPatrimonioNonRappresentabileAssettClass.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_S76AlternativaPatrimonioNonRappresentabileAssettClass.sql
new file mode 100644
index 00000000..61477bfb
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_S76AlternativaPatrimonioNonRappresentabileAssettClass.sql
@@ -0,0 +1,116 @@
+--[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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento.sql
new file mode 100644
index 00000000..8612bfb2
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento.sql
@@ -0,0 +1,62 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Popola_S133_S157DatiPiramide.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Popola_S133_S157DatiPiramide.sql
new file mode 100644
index 00000000..814f5787
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Popola_S133_S157DatiPiramide.sql
@@ -0,0 +1,291 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_CLIENTI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_CLIENTI.sql
new file mode 100644
index 00000000..2ee3fe1f
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_CLIENTI.sql
@@ -0,0 +1,143 @@
+-- =============================================
+-- Author: Paolo Giovanetti / TRINGALI PER FIDUCIARIE
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_PRODOTTI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_PRODOTTI.sql
new file mode 100644
index 00000000..523eabcd
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_PRODOTTI.sql
@@ -0,0 +1,94 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_PRODOTTI_TERZI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_PRODOTTI_TERZI.sql
new file mode 100644
index 00000000..7c056556
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ANAG_PRODOTTI_TERZI.sql
@@ -0,0 +1,80 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_AREA_BISOGNO.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_AREA_BISOGNO.sql
new file mode 100644
index 00000000..c23081e2
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_AREA_BISOGNO.sql
@@ -0,0 +1,47 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSETCLASS.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSETCLASS.sql
new file mode 100644
index 00000000..b1dee3ef
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSETCLASS.sql
@@ -0,0 +1,66 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSETCLASS_TERZI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSETCLASS_TERZI.sql
new file mode 100644
index 00000000..e53b470a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSETCLASS_TERZI.sql
@@ -0,0 +1,58 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSET_PERC.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSET_PERC.sql
new file mode 100644
index 00000000..c81b4b12
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSET_PERC.sql
@@ -0,0 +1,73 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSET_PERC_TERZI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSET_PERC_TERZI.sql
new file mode 100644
index 00000000..96f0600d
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_ASSET_PERC_TERZI.sql
@@ -0,0 +1,80 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_CONTRATTOSEI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_CONTRATTOSEI.sql
new file mode 100644
index 00000000..068a022e
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_CONTRATTOSEI.sql
@@ -0,0 +1,117 @@
+-----------------------------------------------------------------------------
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_DETTAGLIO_ASUL.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_DETTAGLIO_ASUL.sql
new file mode 100644
index 00000000..636cbff4
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_DETTAGLIO_ASUL.sql
@@ -0,0 +1,266 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_ALTRO.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_ALTRO.sql
new file mode 100644
index 00000000..66bad0ee
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_ALTRO.sql
@@ -0,0 +1,86 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_BF.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_BF.sql
new file mode 100644
index 00000000..f84a27b6
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_BF.sql
@@ -0,0 +1,747 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_IMMOBILIARE.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_IMMOBILIARE.sql
new file mode 100644
index 00000000..856891f8
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_IMMOBILIARE.sql
@@ -0,0 +1,79 @@
+--select * from C6MartPeriodicoImmobiliare.patrimonio_immobiliare
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota.sql
new file mode 100644
index 00000000..60d157c5
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota.sql
@@ -0,0 +1,79 @@
+--select * from C6MartPeriodicoImmobiliare.patrimonio_immobiliare
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_TERZI.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_TERZI.sql
new file mode 100644
index 00000000..e1662386
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PATRIMONIO_TERZI.sql
@@ -0,0 +1,163 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PIRAMIDE_MOD.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PIRAMIDE_MOD.sql
new file mode 100644
index 00000000..3e8a0a51
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_DM_PIRAMIDE_MOD.sql
@@ -0,0 +1,211 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_PROM_TuttiIPortafogli2.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_PROM_TuttiIPortafogli2.sql
new file mode 100644
index 00000000..a2ff4593
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_PROM_TuttiIPortafogli2.sql
@@ -0,0 +1,57 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_PROM_TuttiIPortafogli2_Indicatore.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_PROM_TuttiIPortafogli2_Indicatore.sql
new file mode 100644
index 00000000..91b6187a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_RP_PROM_TuttiIPortafogli2_Indicatore.sql
@@ -0,0 +1,155 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_SP_PopolaW6IMM.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_SP_PopolaW6IMM.sql
new file mode 100644
index 00000000..1321e08d
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_SP_PopolaW6IMM.sql
@@ -0,0 +1,129 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- Description: Popola la tabella W6IMM per la quadratura semestrale immobiliare
+-- =============================================
+CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[SP_PopolaW6IMM]
+ -- Add the parameters for the stored procedure here
+ @DataUltimoAggiornamento as varchar(10)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+ if (Exists (Select * from c6martperiodicoimmobiliare.W6IMM))
+ begin
+ Delete from c6martperiodicoimmobiliare.W6IMM
+ end
+ Insert into c6martperiodicoimmobiliare.W6IMM
+ Select
+ distinct
+ isnull(cli.rete,'') as rete,
+ isnull(coalesce(cli.codFis, cli.pIva),'') as codfis,
+ isnull(cli.codiceContratto,'') as contratto,
+ case
+ when (cli.StatoContratto in ('BASE')) then 'BASE' else 'SEI' end as TIPCONS,
+ case
+ when (srv.chiaveservizioAggiuntivo = 1) then 'SI' else 'NO' end as SERVAGG,
+ case
+ when (srv.flagattivo=1) then 'ATTIVO' else 'non attivo' END AS ADDIMM,
+ keyimport.statoImportazione as StatoImportazione,
+ '',
+ '',
+ ''
+ from [CONSUNI_periodico].[ConsulenzaUnica].dbo.vInfoCliente CLI
+ left outer join [CONSUNI_periodico].[ConsulenzaUnica].dbo.v_servizi_aggiuntivi srv on CLI.chiaveClientePB=srv.chiaveclientepb and srv.chiaveServizioAggiuntivo = 1 and srv.flagattivo = 1
+ inner join (
+ select distinct s.chiaveImportazione,i.statoImportazione, s.chiaveClientePB
+ from [CONSUNI_periodico].[ConsulenzaUnica].[dbo].[PatrimonioImmobiliareStaging] s inner join [CONSUNI_periodico].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente i on s.chiaveImportazione=i.chiaveImportazione
+ where chiaveProdottoTerzi IN (
+ select chiaveProdottoTerzi from [CONSUNI_periodico].[ConsulenzaUnica].dbo.PatrimonioTerzi where idTipoProdotto='IM' AND idImmobileCatasto IS NOT NULL and dtfinevalidita='9999-12-31 00:00:00.000')
+ and dtUltimoAggiornamento < convert(datetime,'2024-03-31') ) keyimport on keyimport.chiaveClientePB=cli.chiaveClientePB
+ where StatoContratto IN ('SEI','AVANZATOBASE','BASE')
+--Prima di avviare la proc controllare se non vi siano clienti che abbiano lo statoimportazione a Deleted e l'addimm attivo. In quel caso ricordarsi di lanciare l'update fornito da Giuseppe
+ /*********** Vecchie Versioni *****************/
+ --SELECT
+ -- distinct
+ -- isnull(cli.rete,''),
+ -- isnull(coalesce(cli.codFis, cli.pIva),'') as codfis,
+ -- isnull(con.codiceContratto,''),
+ -- case
+ -- when (cli.StatoContratto in ('BASE')) then 'BASE' else 'SEI' end as TIPCONS,
+ -- case
+ -- when (srv.chiaveservizioAggiuntivo = 1) then 'SI' else 'NO' end as SERVAGG,
+ -- case
+ -- when (srv.flagattivo=1) then 'ATTIVO' else 'non attivo' END AS ADDIMM,
+ -- --cli.CognomeCliente,
+ -- --cli.CognomeCliente,
+ -- --cli.NomeCliente,
+ -- --cli.Agente,
+ -- --cli.CognomePb,
+ -- --cli.NomePb,
+ -- --cli.codman,
+ -- --srv.descrizione,
+ -- --srv.dataAttivazione,
+ -- --srv.dataRevoca,
+ -- --srv.flagattivo,
+ -- --srv.ctr_immobili AS tot_immobili,
+ -- --srv.ctr_cli_mon_imm,
+ -- --(select count(*) count_immobili_da_catasto from PatrimonioTerzi pt where idTipoProdotto='IM' AND idImmobileCatasto IS NOT NULL AND pt.chiaveClientePB=cli.chiaveClientePB AND dtfinevalidita ='9999-12-31 00:00:00.000' GROUP BY chiaveClientePB) Imm_catasto,
+ -- --(select count(*) count_immobili_manuali from PatrimonioTerzi pt where idTipoProdotto='IM' AND idImmobileCatasto IS NULL AND pt.chiaveClientePB=cli.chiaveClientePB AND dtfinevalidita ='9999-12-31 00:00:00.000' GROUP BY chiaveClientePB) Imm_manuali,
+ -- isnull((select statoImportazione from [CONSUNI].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente rpt where rpt.dtUltimoAggiornamento < convert(datetime,'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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_SP_Valorizza_Stati_semaforo_IMM.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_SP_Valorizza_Stati_semaforo_IMM.sql
new file mode 100644
index 00000000..d7e1e4f0
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_SP_Valorizza_Stati_semaforo_IMM.sql
@@ -0,0 +1,298 @@
+-- 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:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_UpdateDateReport_Immobiliare_GestionePDF.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_UpdateDateReport_Immobiliare_GestionePDF.sql
new file mode 100644
index 00000000..22e165a1
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_UpdateDateReport_Immobiliare_GestionePDF.sql
@@ -0,0 +1,63 @@
+-- ==================================================================================
+-- Author:
+-- Create date: <27.02.2019>
+-- Description:
+-- ==================================================================================
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Update_Immobiliare_GestioneZIP.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Update_Immobiliare_GestioneZIP.sql
new file mode 100644
index 00000000..d97b7987
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_Update_Immobiliare_GestioneZIP.sql
@@ -0,0 +1,39 @@
+-- ==================================================================================
+-- Author:
+-- Create date: <27.02.2019>
+-- Description:
+-- ==================================================================================
+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;
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_getRichiesteMonitoraggioCatastoCliente.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_getRichiesteMonitoraggioCatastoCliente.sql
new file mode 100644
index 00000000..44e43411
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_getRichiesteMonitoraggioCatastoCliente.sql
@@ -0,0 +1,16 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_insertRichiesteMonitoraggioCatastoCliente.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_insertRichiesteMonitoraggioCatastoCliente.sql
new file mode 100644
index 00000000..93518d25
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_insertRichiesteMonitoraggioCatastoCliente.sql
@@ -0,0 +1,50 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_sp_caricaBlacklist.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_sp_caricaBlacklist.sql
new file mode 100644
index 00000000..0d7e594a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_sp_caricaBlacklist.sql
@@ -0,0 +1,22 @@
+-- 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
+ [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')
+exec [C6MartPeriodicoImmobiliare].[Blacklist_Blocco_Tabellone] 'blocco' --aggiorna tabellone
+END
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_start_email_Testi_Statici_tabellone.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_start_email_Testi_Statici_tabellone.sql
new file mode 100644
index 00000000..3abed126
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_start_email_Testi_Statici_tabellone.sql
@@ -0,0 +1,6 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_start_email_Zipping_tabellone.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_start_email_Zipping_tabellone.sql
new file mode 100644
index 00000000..2ce83b04
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_start_email_Zipping_tabellone.sql
@@ -0,0 +1,6 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_updateRichiesteMonitoraggioCatastoClienteCong.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_updateRichiesteMonitoraggioCatastoClienteCong.sql
new file mode 100644
index 00000000..2b05a2b0
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_updateRichiesteMonitoraggioCatastoClienteCong.sql
@@ -0,0 +1,23 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_updateRichiesteMonitoraggioCatastoClienteProd.sql b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_updateRichiesteMonitoraggioCatastoClienteProd.sql
new file mode 100644
index 00000000..dadc356a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodicoImmobiliare_updateRichiesteMonitoraggioCatastoClienteProd.sql
@@ -0,0 +1,28 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AGGIORNA_NUMERO_PAGINE.sql b/sql/Collaudo/procedure/C6MartPeriodico_AGGIORNA_NUMERO_PAGINE.sql
new file mode 100644
index 00000000..5a0ab4da
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AGGIORNA_NUMERO_PAGINE.sql
@@ -0,0 +1,18 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AL_AggiornaPortafoglioCliente.sql b/sql/Collaudo/procedure/C6MartPeriodico_AL_AggiornaPortafoglioCliente.sql
new file mode 100644
index 00000000..c721c58f
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AL_AggiornaPortafoglioCliente.sql
@@ -0,0 +1,56 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AL_AggiornaPortafoglioCliente_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_AL_AggiornaPortafoglioCliente_pre_selective.sql
new file mode 100644
index 00000000..d999a25c
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AL_AggiornaPortafoglioCliente_pre_selective.sql
@@ -0,0 +1,56 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AggiornaFlagRolContrattoSei.sql b/sql/Collaudo/procedure/C6MartPeriodico_AggiornaFlagRolContrattoSei.sql
new file mode 100644
index 00000000..f45b407b
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AggiornaFlagRolContrattoSei.sql
@@ -0,0 +1,15 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AggiornamentoDisponibilitaReport.sql b/sql/Collaudo/procedure/C6MartPeriodico_AggiornamentoDisponibilitaReport.sql
new file mode 100644
index 00000000..1fa99cfa
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AggiornamentoDisponibilitaReport.sql
@@ -0,0 +1,37 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AppRendTabReader.sql b/sql/Collaudo/procedure/C6MartPeriodico_AppRendTabReader.sql
new file mode 100644
index 00000000..1829412a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AppRendTabReader.sql
@@ -0,0 +1,14 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_AppRendTabReader_bl.sql b/sql/Collaudo/procedure/C6MartPeriodico_AppRendTabReader_bl.sql
new file mode 100644
index 00000000..ed4e9e33
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_AppRendTabReader_bl.sql
@@ -0,0 +1,14 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_BONIFICA_WSEIUL.sql b/sql/Collaudo/procedure/C6MartPeriodico_BONIFICA_WSEIUL.sql
new file mode 100644
index 00000000..5d09afe1
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_BONIFICA_WSEIUL.sql
@@ -0,0 +1,53 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_BONIFICA_WSEIUL_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_BONIFICA_WSEIUL_pre_selective.sql
new file mode 100644
index 00000000..edaeb690
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_BONIFICA_WSEIUL_pre_selective.sql
@@ -0,0 +1,53 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_Blacklist_Blocco_Tabellone.sql b/sql/Collaudo/procedure/C6MartPeriodico_Blacklist_Blocco_Tabellone.sql
new file mode 100644
index 00000000..98053f06
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_Blacklist_Blocco_Tabellone.sql
@@ -0,0 +1,71 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_Blocco_Blacklist_AppRendicontazione.sql b/sql/Collaudo/procedure/C6MartPeriodico_Blocco_Blacklist_AppRendicontazione.sql
new file mode 100644
index 00000000..30d1af3a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_Blocco_Blacklist_AppRendicontazione.sql
@@ -0,0 +1,34 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_BonificaDataQuality.sql b/sql/Collaudo/procedure/C6MartPeriodico_BonificaDataQuality.sql
new file mode 100644
index 00000000..6984c824
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_BonificaDataQuality.sql
@@ -0,0 +1,50 @@
+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'
+ )
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_AGGIORNA_ERRORI_GENERAZIONE.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_AGGIORNA_ERRORI_GENERAZIONE.sql
new file mode 100644
index 00000000..81968990
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_AGGIORNA_ERRORI_GENERAZIONE.sql
@@ -0,0 +1,11 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_CTV_PER_NEEDAREA_PER_CLIENT.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_CTV_PER_NEEDAREA_PER_CLIENT.sql
new file mode 100644
index 00000000..b651bac7
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_CTV_PER_NEEDAREA_PER_CLIENT.sql
@@ -0,0 +1,145 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CTV_ISSUES.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CTV_ISSUES.sql
new file mode 100644
index 00000000..635f56ad
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CTV_ISSUES.sql
@@ -0,0 +1,16 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CTV_ISSUES_PER_AREA.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CTV_ISSUES_PER_AREA.sql
new file mode 100644
index 00000000..48dbd2a2
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CTV_ISSUES_PER_AREA.sql
@@ -0,0 +1,14 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CUSTOMERS_FOR_CHECK.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CUSTOMERS_FOR_CHECK.sql
new file mode 100644
index 00000000..ce7b2a2d
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_CUSTOMERS_FOR_CHECK.sql
@@ -0,0 +1,19 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_NeedAreas.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_NeedAreas.sql
new file mode 100644
index 00000000..57cf65e0
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_NeedAreas.sql
@@ -0,0 +1,6 @@
+CREATE procedure [C6MartPeriodico].[CHECK_GET_NeedAreas]
+AS
+BEGIN
+SELECT [ID_AREA]
+FROM [C6MartPeriodico].[AREA_BISOGNO]
+END
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_Perc_ISSUES.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_Perc_ISSUES.sql
new file mode 100644
index 00000000..22ca53e6
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_Perc_ISSUES.sql
@@ -0,0 +1,13 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_Negative_BankAccount.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_Negative_BankAccount.sql
new file mode 100644
index 00000000..22079128
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_Negative_BankAccount.sql
@@ -0,0 +1,35 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET.sql
new file mode 100644
index 00000000..1720144d
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET.sql
@@ -0,0 +1,24 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET_ALL.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET_ALL.sql
new file mode 100644
index 00000000..825ef4bb
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET_ALL.sql
@@ -0,0 +1,16 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_VAR_ISSUES.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_VAR_ISSUES.sql
new file mode 100644
index 00000000..e6edac67
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_GET_VAR_ISSUES.sql
@@ -0,0 +1,12 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_CTV_PER_AREA.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_CTV_PER_AREA.sql
new file mode 100644
index 00000000..24ec6751
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_CTV_PER_AREA.sql
@@ -0,0 +1,17 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_CTV_PER_SECTION.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_CTV_PER_SECTION.sql
new file mode 100644
index 00000000..8fa9a6fb
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_CTV_PER_SECTION.sql
@@ -0,0 +1,19 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_S10_PERC.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_S10_PERC.sql
new file mode 100644
index 00000000..9a50357c
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_S10_PERC.sql
@@ -0,0 +1,15 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_VAR_PER_SECTION.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_VAR_PER_SECTION.sql
new file mode 100644
index 00000000..626af1ef
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_INSERT_VAR_PER_SECTION.sql
@@ -0,0 +1,16 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILOSCADUTO_RFAZERO.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILOSCADUTO_RFAZERO.sql
new file mode 100644
index 00000000..4f020c1e
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILOSCADUTO_RFAZERO.sql
@@ -0,0 +1,22 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILOSCADUTO_RFAZERO_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILOSCADUTO_RFAZERO_pre_selective.sql
new file mode 100644
index 00000000..a78853ad
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILOSCADUTO_RFAZERO_pre_selective.sql
@@ -0,0 +1,22 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILO_SCADUTO.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILO_SCADUTO.sql
new file mode 100644
index 00000000..35b9f310
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILO_SCADUTO.sql
@@ -0,0 +1,42 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILO_SCADUTO_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILO_SCADUTO_pre_selective.sql
new file mode 100644
index 00000000..13962d59
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_PROFILO_SCADUTO_pre_selective.sql
@@ -0,0 +1,42 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_RFA_ZERO.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_RFA_ZERO.sql
new file mode 100644
index 00000000..2d84fc8e
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_RFA_ZERO.sql
@@ -0,0 +1,30 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CHECK_RFA_ZERO_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_RFA_ZERO_pre_selective.sql
new file mode 100644
index 00000000..a54d0ab3
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CHECK_RFA_ZERO_pre_selective.sql
@@ -0,0 +1,30 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CREA_FIRMA_PROMOTORE.sql b/sql/Collaudo/procedure/C6MartPeriodico_CREA_FIRMA_PROMOTORE.sql
new file mode 100644
index 00000000..721cac27
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CREA_FIRMA_PROMOTORE.sql
@@ -0,0 +1,8 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE.sql b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE.sql
new file mode 100644
index 00000000..896c0971
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE.sql
@@ -0,0 +1,139 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALEMAU.sql b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALEMAU.sql
new file mode 100644
index 00000000..bc348f93
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALEMAU.sql
@@ -0,0 +1,213 @@
+--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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE_FILE.sql b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE_FILE.sql
new file mode 100644
index 00000000..73030543
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE_FILE.sql
@@ -0,0 +1,107 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE_FILE_test.sql b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE_FILE_test.sql
new file mode 100644
index 00000000..de3177dd
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CRUSCOTTOTRIMESTRALE_FILE_test.sql
@@ -0,0 +1,107 @@
+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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_Caricamento_TBGEN.sql b/sql/Collaudo/procedure/C6MartPeriodico_Caricamento_TBGEN.sql
new file mode 100644
index 00000000..627adc26
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_Caricamento_TBGEN.sql
@@ -0,0 +1,22 @@
+--[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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CercaCaratteriAnomali.sql b/sql/Collaudo/procedure/C6MartPeriodico_CercaCaratteriAnomali.sql
new file mode 100644
index 00000000..22e39f2c
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CercaCaratteriAnomali.sql
@@ -0,0 +1,356 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CercaCaratteriAnomali_20150205.sql b/sql/Collaudo/procedure/C6MartPeriodico_CercaCaratteriAnomali_20150205.sql
new file mode 100644
index 00000000..6296321f
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CercaCaratteriAnomali_20150205.sql
@@ -0,0 +1,356 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_CheckQuadraturaRfa0Mifid.sql b/sql/Collaudo/procedure/C6MartPeriodico_CheckQuadraturaRfa0Mifid.sql
new file mode 100644
index 00000000..759e40a4
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_CheckQuadraturaRfa0Mifid.sql
@@ -0,0 +1,47 @@
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_Controlla_Stato_Stampa_Cruscotto.sql b/sql/Collaudo/procedure/C6MartPeriodico_Controlla_Stato_Stampa_Cruscotto.sql
new file mode 100644
index 00000000..b9b3f9d6
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_Controlla_Stato_Stampa_Cruscotto.sql
@@ -0,0 +1,39 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ALL_PATRIMONIO.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ALL_PATRIMONIO.sql
new file mode 100644
index 00000000..56e4419b
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ALL_PATRIMONIO.sql
@@ -0,0 +1,326 @@
+-- =============================================
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC.sql
new file mode 100644
index 00000000..a2fbd6d1
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC.sql
@@ -0,0 +1,77 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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')
+ -- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_TERZI.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_TERZI.sql
new file mode 100644
index 00000000..b977e91a
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_TERZI.sql
@@ -0,0 +1,71 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_TERZI_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_TERZI_pre_selective.sql
new file mode 100644
index 00000000..61871451
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_TERZI_pre_selective.sql
@@ -0,0 +1,71 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_pre_selective.sql
new file mode 100644
index 00000000..0667fe07
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CC_pre_selective.sql
@@ -0,0 +1,74 @@
+-- Stored procedure
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI.sql
new file mode 100644
index 00000000..5f724a25
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI.sql
@@ -0,0 +1,221 @@
+-- =============================================
+-- Author: Paolo Giovanetti / TRINGALI PER FIDUCIARIE
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL.sql
new file mode 100644
index 00000000..a5469e76
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL.sql
@@ -0,0 +1,143 @@
+-- =============================================
+-- Author: Paolo Giovanetti
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PREV.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PREV.sql
new file mode 100644
index 00000000..e3c7e3f3
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PREV.sql
@@ -0,0 +1,60 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PREV_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PREV_pre_selective.sql
new file mode 100644
index 00000000..3921bae9
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_PREV_pre_selective.sql
@@ -0,0 +1,60 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_pre_selective.sql
new file mode 100644
index 00000000..bfeb712c
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_CLIENTI_pre_selective.sql
@@ -0,0 +1,221 @@
+-- =============================================
+-- Author: Paolo Giovanetti / TRINGALI PER FIDUCIARIE
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI.sql
new file mode 100644
index 00000000..c94b852f
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI.sql
@@ -0,0 +1,102 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_TERZI.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_TERZI.sql
new file mode 100644
index 00000000..83339d8b
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_TERZI.sql
@@ -0,0 +1,74 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_TERZI_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_TERZI_pre_selective.sql
new file mode 100644
index 00000000..ede51aa1
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_TERZI_pre_selective.sql
@@ -0,0 +1,74 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_VALUTE.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_VALUTE.sql
new file mode 100644
index 00000000..0a293f17
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_VALUTE.sql
@@ -0,0 +1,56 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_VALUTE_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_VALUTE_pre_selective.sql
new file mode 100644
index 00000000..a8c53762
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_VALUTE_pre_selective.sql
@@ -0,0 +1,56 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_pre_selective.sql
new file mode 100644
index 00000000..687fa7c3
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI_pre_selective.sql
@@ -0,0 +1,102 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PROMOTORI.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PROMOTORI.sql
new file mode 100644
index 00000000..4b8ed463
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PROMOTORI.sql
@@ -0,0 +1,111 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- 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
\ No newline at end of file
diff --git a/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PROMOTORI_pre_selective.sql b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PROMOTORI_pre_selective.sql
new file mode 100644
index 00000000..03e2f3e8
--- /dev/null
+++ b/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PROMOTORI_pre_selective.sql
@@ -0,0 +1,111 @@
+-- =============================================
+-- Author:
+-- Create date:
+-- Description: