UFN_ASSIGNPLANNEDGIFTLETTERCODESPROCESS_GETLETTERCODESANDSELECTIONS_SITES
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ASSIGNPLANNEDGIFTLETTERCODESPROCESSID | uniqueidentifier | IN | |
@OWNERID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_ASSIGNPLANNEDGIFTLETTERCODESPROCESS_GETLETTERCODESANDSELECTIONS_SITES
(
@ASSIGNPLANNEDGIFTLETTERCODESPROCESSID uniqueidentifier = null,
@OWNERID uniqueidentifier = null
)
returns @RESULT table
(
PLANNEDGIFTLETTERCODEID uniqueidentifier,
IDSETREGISTERID uniqueidentifier
)
as
begin
declare @BUSINESSPROCESSCATALOGID uniqueidentifier = '37910A93-C849-4B83-8664-BB22BD12EAFC';
if @OWNERID is null and @ASSIGNPLANNEDGIFTLETTERCODESPROCESSID is not null
set @OWNERID = (select OWNERID from dbo.BUSINESSPROCESSINSTANCE where BUSINESSPROCESSPARAMETERSETID = @ASSIGNPLANNEDGIFTLETTERCODESPROCESSID);
declare @ISSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@OWNERID);
declare @SITESFORUSER table (SITEID uniqueidentifier);
-- Performance: don't bother filling sites table if user is admin
if @ISSYSADMIN = 0
insert into @SITESFORUSER
select SITEID from dbo.UFN_SITESFORUSERONFEATURE(@OWNERID, @BUSINESSPROCESSCATALOGID, 4);
if @ASSIGNPLANNEDGIFTLETTERCODESPROCESSID is null
begin
insert into @RESULT(PLANNEDGIFTLETTERCODEID,IDSETREGISTERID)
select
PLANNEDGIFTLETTERCODE.ID,
IDSETREGISTER.ID
from
dbo.PLANNEDGIFTLETTERCODE
inner join
dbo.IDSETREGISTER on PLANNEDGIFTLETTERCODE.IDSETREGISTERID = IDSETREGISTER.ID
where
ISACTIVE = 1
and
(
@ISSYSADMIN = 1
or
-- Letter Security
exists
(
select 1
from dbo.[UFN_SITEID_MAPFROM_PLANNEDGIFTLETTERCODEID]([PLANNEDGIFTLETTERCODE].[ID]) [PLANNEDGIFTLETTERCODESITES]
where
PLANNEDGIFTLETTERCODESITES.SITEID is null
or
exists
(
select 1
from @SITESFORUSER as [SFU]
where
SFU.SITEID = [PLANNEDGIFTLETTERCODESITES].[SITEID]
)
)
-- Selection Security
and (
IDSETREGISTER.SITEID is null
or
exists
(
select 1
from @SITESFORUSER as [SFU]
where
SFU.SITEID = [IDSETREGISTER].[SITEID]
)
)
);
end
else
begin
insert into @RESULT(PLANNEDGIFTLETTERCODEID,IDSETREGISTERID)
select
ASSIGNPLANNEDGIFTLETTERCODESPROCESSLETTERCODES.PLANNEDGIFTLETTERCODEID,
IDSETREGISTER.ID
from
dbo.ASSIGNPLANNEDGIFTLETTERCODESPROCESSLETTERCODES
inner join
dbo.PLANNEDGIFTLETTERCODE on ASSIGNPLANNEDGIFTLETTERCODESPROCESSLETTERCODES.PLANNEDGIFTLETTERCODEID = PLANNEDGIFTLETTERCODE.ID
inner join
dbo.IDSETREGISTER on PLANNEDGIFTLETTERCODE.IDSETREGISTERID = IDSETREGISTER.ID
where
ASSIGNPLANNEDGIFTLETTERCODESPROCESSID = @ASSIGNPLANNEDGIFTLETTERCODESPROCESSID
and PLANNEDGIFTLETTERCODE.ISACTIVE = 1
and
(
@ISSYSADMIN = 1
or
-- Letter Security
exists (
select 1
from dbo.[UFN_SITEID_MAPFROM_PLANNEDGIFTLETTERCODEID]([PLANNEDGIFTLETTERCODE].[ID]) [PLANNEDGIFTLETTERCODESITES]
where
PLANNEDGIFTLETTERCODESITES.SITEID is null
or
exists
(
select 1
from @SITESFORUSER as [SFU]
where
SFU.SITEID=[PLANNEDGIFTLETTERCODESITES].[SITEID]
)
)
-- Selection Security
and (
IDSETREGISTER.SITEID is null
or
exists
(
select 1
from @SITESFORUSER as [SFU]
where
SFU.SITEID=[IDSETREGISTER].[SITEID]
)
)
);
end
return;
end