USP_SIMPLEDATALIST_UPGRADEABLEMEMBERSHIP
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | |
@SECURITYFEATURETYPE | tinyint | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@BASECURRENCYID | uniqueidentifier | IN | |
@BASEDONDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_SIMPLEDATALIST_UPGRADEABLEMEMBERSHIP
(
@CURRENTAPPUSERID uniqueidentifier,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@CONSTITUENTID uniqueidentifier = null,
@BASECURRENCYID uniqueidentifier = null,
@BASEDONDATE datetime = null
)
as
declare @ISUSERSYSADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID)
declare @SITESTEMPTABLE TABLE(SITEID uniqueidentifier)
if @ISUSERSYSADMIN = 0
begin
insert into @SITESTEMPTABLE
select SITEID from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE)
end
if (@BASEDONDATE = null) set @BASEDONDATE = getdate()
declare @MEMBERSHIPS table (
ID uniqueidentifier,
MEMBERSHIPPROGRAMID uniqueidentifier,
LOOKUPID nvarchar(100)
);
insert into @MEMBERSHIPS (
ID,
MEMBERSHIPPROGRAMID,
LOOKUPID
)
select
MEMBERSHIP.ID,
MEMBERSHIP.MEMBERSHIPPROGRAMID,
MEMBERSHIP.LOOKUPID
from dbo.MEMBERSHIP
inner join dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
where MEMBER.CONSTITUENTID = @CONSTITUENTID and MEMBER.ISDROPPED = 0
select
MEMBERSHIPS.ID as VALUE,
case when DUP_MEMBERSHIPS.MEMBERSHIPPROGRAMID is not null then MEMBERSHIPPROGRAM.NAME + ' (' + MEMBERSHIPS.LOOKUPID + ')' else MEMBERSHIPPROGRAM.NAME end as LABEL
from
dbo.MEMBERSHIPPROGRAM
inner join @MEMBERSHIPS MEMBERSHIPS on MEMBERSHIPS.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
left join (
select MEMBERSHIPS.MEMBERSHIPPROGRAMID
from @MEMBERSHIPS as MEMBERSHIPS
group by MEMBERSHIPS.MEMBERSHIPPROGRAMID
having count(*) > 1
) DUP_MEMBERSHIPS on MEMBERSHIPPROGRAM.ID = DUP_MEMBERSHIPS.MEMBERSHIPPROGRAMID
where
dbo.UFN_MEMBERSHIP_ISUPGRADEABLE(MEMBERSHIPS.ID, @BASEDONDATE) = 1 and
(@BASECURRENCYID = MEMBERSHIPPROGRAM.BASECURRENCYID or @BASECURRENCYID is null)
and (@ISUSERSYSADMIN = 1 or exists (select 1 from @SITESTEMPTABLE where SITEID=[MEMBERSHIPPROGRAM].[SITEID] or (SITEID is null and [MEMBERSHIPPROGRAM].[SITEID] is null)))
order by
LABEL
return 0;