USP_DATALIST_MEMBERSHIPPROGRAMTRANSACTION
Displays a list of membership transactions and associated programs.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@SITEFILTERMODE | tinyint | IN | Sites |
@SITESSELECTED | xml | IN | |
@SECURITYFEATUREID | uniqueidentifier | IN | Input parameter indicating the ID of the feature to use for site security checking. |
@SECURITYFEATURETYPE | tinyint | IN | Input parameter indicating the type of the feature to use for site security checking. |
@CURRENCYCODE | tinyint | IN | Currency |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_MEMBERSHIPPROGRAMTRANSACTION
(
@CONSTITUENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@SITEFILTERMODE tinyint = 0,
@SITESSELECTED xml = null,
@SECURITYFEATUREID uniqueidentifier = null,
@SECURITYFEATURETYPE tinyint = null,
@CURRENCYCODE tinyint = 0
)
as
set nocount on;
declare @SELECTEDCURRENCYID uniqueidentifier;
if coalesce(@CURRENCYCODE, 2) = 2
begin
set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
end
select
MT.ID,
MT.TRANSACTIONDATE,
MT.ACTION,
case @CURRENCYCODE
when 0 then RS.TRANSACTIONAMOUNT - ( select coalesce(sum(SOIMIP.AMOUNT), 0)
from dbo.SALESORDERITEMMEMBERSHIPITEMPROMOTION SOIMIP
inner join dbo.SALESORDERITEMMEMBERSHIP SOIM on SOIMIP.SALESORDERITEMID = SOIM.ID
where SOIM.MEMBERSHIPTRANSACTIONID = MT.ID )
when 1 then RS.AMOUNT - ( select coalesce(sum(SOIMIP.AMOUNT), 0)
from dbo.SALESORDERITEMMEMBERSHIPITEMPROMOTION SOIMIP
inner join dbo.SALESORDERITEMMEMBERSHIP SOIM on SOIMIP.SALESORDERITEMID = SOIM.ID
where SOIM.MEMBERSHIPTRANSACTIONID = MT.ID )
else
RS.ORGANIZATIONAMOUNT - ( select coalesce(sum(SOIMIP.ORGANIZATIONAMOUNT), 0)
from dbo.SALESORDERITEMMEMBERSHIPITEMPROMOTION SOIMIP
inner join dbo.SALESORDERITEMMEMBERSHIP SOIM on SOIMIP.SALESORDERITEMID = SOIM.ID
where SOIM.MEMBERSHIPTRANSACTIONID = MT.ID )
end as AMOUNT,
MP.NAME as PROGRAM,
ML.NAME,
TERM.TERM,
cast(MT.EXPIRATIONDATE as date) EXPIRATIONDATE,
TYPE.DESCRIPTION,
MT.ISGIFT,
GIVENBY_NF.NAME GIVENBYID,
RS.ID as REVENUESPLITID,
SITE.NAME SITE,
case @CURRENCYCODE
when 0 then RS.TRANSACTIONCURRENCYID
when 1 then RS.BASECURRENCYID
else @SELECTEDCURRENCYID
end as SELECTEDCURRENCYID,
TIER.DESCRIPTION as TIER
from dbo.MEMBER
inner join dbo.MEMBERSHIP M on MEMBER.MEMBERSHIPID = M.ID
inner join dbo.MEMBERSHIPPROGRAM MP on M.MEMBERSHIPPROGRAMID = MP.ID
inner join dbo.MEMBERSHIPTRANSACTION MT on M.ID = MT.MEMBERSHIPID
inner join dbo.MEMBERSHIPLEVELTERM TERM on TERM.ID = MT.MEMBERSHIPLEVELTERMID
inner join dbo.MEMBERSHIPLEVEL ML on ML.ID = MT.MEMBERSHIPLEVELID
left join dbo.MEMBERSHIPLEVELTYPECODE TYPE on TYPE.ID = MT.MEMBERSHIPLEVELTYPECODEID
left join dbo.REVENUESPLIT RS on MT.REVENUESPLITID = RS.ID
left join dbo.SITE on SITE.ID = MP.SITEID
left join dbo.TIERCODE TIER on ML.TIERCODEID = TIER.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(MT.DONORID) GIVENBY_NF
where
(dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID,@SECURITYFEATURETYPE) where SITEID=[MP].[SITEID] or (SITEID is null and [MP].[SITEID] is null)))
and MEMBER.CONSTITUENTID = @CONSTITUENTID
and MEMBER.ISDROPPED = 0
and (@SITEFILTERMODE = 0
or MP.SITEID in (
select SITEID
from dbo.UFN_SITE_BUILDDATALISTSITEFILTER (@CURRENTAPPUSERID, @SITEFILTERMODE, @SITESSELECTED)
)
)
order by MT.TRANSACTIONDATE, MT.DATEADDED asc