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