2025-06-10 15:29:00 +02:00

112 lines
2.9 KiB
Transact-SQL

CREATE FUNCTION [dbo].[Cc_Email]
(
@RETE as varchar(1) = '',
@CODICE as varchar(6) = '',
@NS as int = 0, -- NUMERO SOLLECITI FATTI,
@TIPOEMAIL as varchar(19) = ''
)
RETURNS varchar(500)
AS
BEGIN
DECLARE @CC_DI_RITORNO as varchar(500)
SET @CC_DI_RITORNO = '';
if @TIPOEMAIL = 'PERF'
RETURN @CC_DI_RITORNO
declare @flagSEDE as bit -- uso questo flag per allegare gli indirizzi di SEDE
set @flagSEDE = 0
declare @flagRMDM as bit -- uso questo flag per spedire ad RM,DM
set @flagRMDM = 0
DECLARE @PV as varchar(1)
SET @PV = ';'
declare @flagAM as bit -- uso questo flag per spedire ad AM
set @flagAM = 0
DECLARE @REF_SEDE as varchar(200)
SET @REF_SEDE = ''
IF @RETE = 'F'
BEGIN
SET @REF_SEDE = @REF_SEDE + 'SEIDIREZIONERETE@BANCAFIDEURAM.IT' + @PV;
SET @REF_SEDE = @REF_SEDE + 'SEI@FIDEURAM.IT';
END
ELSE IF @RETE = 'S'
BEGIN
SET @REF_SEDE = @REF_SEDE + 'SEIDIREZIONERETE@SPINVEST.COM' + @PV;
SET @REF_SEDE = @REF_SEDE + 'SEI@FIDEURAM.IT';
END
-- 1_SOLL_NOPRO: non sono previsti indirizzi in cc
IF @TIPOEMAIL = '1_SOLL_NOPRO'
BEGIN
SET @flagRMDM = 0;
SET @flagSEDE = 0;
SET @flagAM = 0;
END
-- 2_SOLL_NOPRO: divisional manager; regional manager (dm, rm)
IF @TIPOEMAIL = '2_SOLL_NOPRO'
BEGIN
SET @flagRMDM = 1;
SET @flagSEDE = 0;
SET @flagAM = 0;
END
-- 3_SOLL_NOPRO: area manager; divisional manager; regional manage (am,dm,rm)
IF @TIPOEMAIL = '3_SOLL_NOPRO'
BEGIN
SET @flagRMDM = 1;
SET @flagAM = 1;
SET @flagSEDE = 0;
END
-- S_SOLL_NOPRO/REVOCA_NOPRO (am,dm,rm): (RETE F) area manager, divisional manager, regional manager, SEIDIREZIONERETE@BANCAFIDEURAM.IT, SEI@FIDEURAM.IT
-- (RETE S) area manager, divisional manager, regional manager, SEIDIREZIONERETE@SPINVEST.COM, SEI@FIDEURAM.IT
IF @TIPOEMAIL IN ('S_SOLL_NOPRO','REVOCA_NOPRO')
BEGIN
SET @flagRMDM = 1;
SET @flagAM = 1;
SET @flagSEDE = 1;
END
declare @ritorno as varchar(500)
set @ritorno = ''
IF(@flagRMDM=1)
begin
--em.rete,em.codice,
--em.email
select @ritorno = @ritorno + em.email + @PV
from
(
SELECT rete,rm as codice
from c6mart.struttura_rete sr
where Rete = @RETE
and PB = @CODICE
and rm <> pb
union all
SELECT rete,dm as codice
from c6mart.struttura_rete sr
where Rete = @RETE
and PB = @CODICE
and dm <> rm
) a
inner join C6Mart.EMAIL_PB em
on a.rete = em.rete
and a.codice = em.codice
end
IF(@flagAM=1)
begin
--em.rete,em.codice,
--em.email
select @ritorno = @ritorno + em.email + @PV
from
(
SELECT rete,am as codice
from c6mart.struttura_rete sr
where Rete = @RETE
and PB = @CODICE
and am <> dm
and @flagAM = 1
) a
inner join C6Mart.EMAIL_PB em
on a.rete = em.rete
and a.codice = em.codice
end
--dal 3 sollecito coinvolgo anche Direzione ed Assistenza Rete
if(@flagSEDE=1)
set @ritorno = @REF_SEDE + @PV + @ritorno
RETURN @ritorno
--RETURN '@NS=' + cast(@NS as varchar(2)) + '-' + '@flagSEDE=' + cast(@flagSEDE as varchar(2))+ '-' + '@flagAM=' + cast(@flagAM as varchar(2))
END