USP_PROSPECTRESEARCHREQUEST_VALIDATESITES
Validate sites for prospect research requests.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SITES | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN | |
@ISEDITFORM | bit | IN | |
@REQUESTEDBYID | uniqueidentifier | IN | |
@SUBMITTEDBYID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_PROSPECTRESEARCHREQUEST_VALIDATESITES
(
@SITES xml,
@CURRENTAPPUSERID uniqueidentifier,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@ISEDITFORM bit = 0,
@REQUESTEDBYID uniqueidentifier = null,
@SUBMITTEDBYID uniqueidentifier = null
)
as
set nocount on;
declare @SITES_T table
(
SITEID uniqueidentifier
);
if not @SITES is null
begin
insert into @SITES_T(SITEID)
select SITEID
from dbo.UFN_PROSPECTRESEARCHREQUEST_GETSITES_FROMITEMLISTXML(@SITES);
end
declare @SITECOUNT int = 0;
select @SITECOUNT = count(*) from @SITES_T;
if @SITECOUNT = 0
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
raiserror('BBERR_SITEREQUIRED', 13, 1);
end
else
begin
if not dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
begin
if @ISEDITFORM = 1
begin
if not exists(select SITEID from @SITES_T [SITES] where dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, [SITES].SITEID, @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1)
raiserror('BBER_SITE_NOACCESS', 13, 1);
end
else
begin
if exists(select SITEID from @SITES_T [SITES] where not dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, [SITES].SITEID, @SECURITYFEATUREID, @SECURITYFEATURETYPE) = 1)
raiserror('BBER_SITE_NOACCESS', 13, 1);
end
end
declare @APPUSERID uniqueidentifier = null;
-- Get requesting fundraiser's app user ID
if @REQUESTEDBYID is not null
begin
select @APPUSERID = ID
from dbo.APPUSER
where CONSTITUENTID = @REQUESTEDBYID;
end
-- Validate requesting fundraiser has access to at least one site provided
if @APPUSERID is not null and not exists
(
select top 1 1
from dbo.UFN_SITESFORUSER(@APPUSERID) SITEFORUSER
inner join @SITES_T SITESPROVIDED on SITEFORUSER.SITEID = SITESPROVIDED.SITEID
)
raiserror('BBER_SITE_REQUESTEDUSER_NOACCESS', 13, 1);
set @APPUSERID = null;
-- Get submitting fundraiser's app user ID
if @SUBMITTEDBYID is not null
begin
select @APPUSERID = ID
from dbo.APPUSER
where CONSTITUENTID = @SUBMITTEDBYID;
end
-- Validate submitting fundraiser has access to at least one site provided
if @APPUSERID is not null and not exists
(
select top 1 1
from dbo.UFN_SITESFORUSER(@APPUSERID) SITEFORUSER
inner join @SITES_T SITESPROVIDED on SITEFORUSER.SITEID = SITESPROVIDED.SITEID
)
raiserror('BBER_SITE_SUBMITTEDUSER_NOACCESS', 13, 1);
end