107 lines
5.3 KiB
Transact-SQL
107 lines
5.3 KiB
Transact-SQL
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 |