USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTMEMBERSHIPPROGRAMPAGEDATA
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@DATALOADED | bit | INOUT | |
@MEMBERSHIPPROGRAMID | uniqueidentifier | INOUT | |
@CONSTITUENTID | uniqueidentifier | INOUT | |
@CONSTITUENTNAME | nvarchar(700) | INOUT | |
@PRIMARYMEMBERID | uniqueidentifier | INOUT | |
@MEMBERSHIPPROGRAMNAME | nvarchar(100) | INOUT | |
@MEMBERSHIPPROGRAMCAPTION | nvarchar(254) | INOUT | |
@MEMBERSHIPID | uniqueidentifier | INOUT | |
@MEMBERSHIPLOOKUPID | nvarchar(100) | INOUT | |
@BENEFITSANDSENTITEMSCOUNT | int | INOUT | |
@RECENTMEMBERACTIVITYCOUNT | int | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTMEMBERSHIPPROGRAMPAGEDATA
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@MEMBERSHIPPROGRAMID uniqueidentifier=null output,
@CONSTITUENTID uniqueidentifier=null output,
@CONSTITUENTNAME nvarchar(700)=null output,
@PRIMARYMEMBERID uniqueidentifier=null output,
@MEMBERSHIPPROGRAMNAME nvarchar(100)=null output,
@MEMBERSHIPPROGRAMCAPTION nvarchar(254) = null output,
@MEMBERSHIPID uniqueidentifier = null output,
@MEMBERSHIPLOOKUPID nvarchar(100) = null output,
@BENEFITSANDSENTITEMSCOUNT int = null output,
@RECENTMEMBERACTIVITYCOUNT int = null output,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
declare @MEMBERSHIPLEVELTYPE nvarchar(100) = null;
select @DATALOADED = 1,
@MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID,
@CONSTITUENTID = MEMBER.CONSTITUENTID,
@CONSTITUENTNAME = NF.NAME,
@PRIMARYMEMBERID = MEMBER.ID,
@MEMBERSHIPPROGRAMNAME=dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(@MEMBERSHIPPROGRAMID),
@MEMBERSHIPID = @ID,
@MEMBERSHIPLEVELTYPE = MT.DESCRIPTION,
@MEMBERSHIPLOOKUPID = MEMBERSHIP.LOOKUPID
from dbo.MEMBERSHIP
inner join dbo.MEMBER on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(MEMBER.CONSTITUENTID) NF
left join dbo.MEMBERSHIPLEVELTYPECODE MT
on MEMBERSHIP.MEMBERSHIPLEVELTYPECODEID = MT.ID
where MEMBERSHIP.ID = @ID and ISPRIMARY = 1;
set @MEMBERSHIPPROGRAMCAPTION = case when (@MEMBERSHIPLEVELTYPE is null or @MEMBERSHIPLEVELTYPE = '') then @MEMBERSHIPPROGRAMNAME else (@MEMBERSHIPPROGRAMNAME + ' - ' + @MEMBERSHIPLEVELTYPE) end;
-- count benefits
select @BENEFITSANDSENTITEMSCOUNT = count(BENEFIT.ID)
from dbo.MEMBERSHIPTRANSACTION
inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELID=MEMBERSHIPLEVEL.ID
inner join dbo.MEMBERSHIPLEVELTERM on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELTERMID=MEMBERSHIPLEVELTERM.ID
inner join dbo.REVENUESPLIT_EXT on MEMBERSHIPTRANSACTION.REVENUESPLITID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI on FTLI.ID = REVENUESPLIT_EXT.ID
inner join dbo.FINANCIALTRANSACTION FT on FT.ID = FTLI.FINANCIALTRANSACTIONID
inner join dbo.REVENUE_EXT on FT.ID = REVENUE_EXT.ID
inner join dbo.REVENUEBENEFIT on REVENUE_EXT.ID = REVENUEBENEFIT.REVENUEID
inner join dbo.BENEFIT on REVENUEBENEFIT.BENEFITID = BENEFIT.ID
where
MEMBERSHIPTRANSACTION.MEMBERSHIPID = @MEMBERSHIPID
and FTLI.TYPECODE <> 1
and FT.DELETEDON is null
and FTLI.DELETEDON is null;
-- count sent items
select @BENEFITSANDSENTITEMSCOUNT = @BENEFITSANDSENTITEMSCOUNT + count(CONSTITUENTAPPEAL.ID)
from (select CONSTITUENTID from dbo.MEMBER where MEMBERSHIPID = @MEMBERSHIPID) MEMBERS
inner join dbo.CONSTITUENTAPPEAL on CONSTITUENTAPPEAL.CONSTITUENTID = MEMBERS.CONSTITUENTID
inner join dbo.APPEAL on APPEAL.ID = CONSTITUENTAPPEAL.APPEALID
where APPEAL.MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID;
declare @CONSTITUENTS table (ID uniqueidentifier);
insert into @CONSTITUENTS
select CONSTITUENTID
from dbo.MEMBER
where MEMBERSHIPID = @MEMBERSHIPID and ISDROPPED = 0;
-- count interactions
select @RECENTMEMBERACTIVITYCOUNT = count(I.ID)
from
dbo.INTERACTION I
left join dbo.INTERACTIONSITE IAS on I.ID = IAS.INTERACTIONID
left join dbo.PROSPECTPLANSITE PPS on I.PROSPECTPLANID = PPS.PROSPECTPLANID and I.PROSPECTPLANID is not null
where
CONSTITUENTID in (select ID from @CONSTITUENTS) and
(
dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or
exists
(
select 1
from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,'da253487-b13f-42aa-a7d6-f54c4b0a6e28',2)
where
SITEID = IAS.SITEID or
SITEID = PPS.SITEID or
(
SITEID is null and
IAS.SITEID is null and
PPS.SITEID is null
)
)
);
-- Collect attended/will attend events
select @RECENTMEMBERACTIVITYCOUNT = @RECENTMEMBERACTIVITYCOUNT + count(R.ID)
from
dbo.REGISTRANT R
left join dbo.EVENT E on R.EVENTID = E.ID
where
CONSTITUENTID in (select ID from @CONSTITUENTS) and
dbo.UFN_EVENT_USERHASSITEACCESS(@CURRENTAPPUSERID, E.ID) = 1 and
(ATTENDED = 1 or WILLNOTATTEND = 0);
if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('BB1C17BC-9E0B-4683-B490-EE40D511FA05') = 1 or
dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('f238e8fe-06ae-4fdc-beaf-fdf6637e1982') = 1
begin
-- Collect ticketing and merchandise
select @RECENTMEMBERACTIVITYCOUNT += count(SO.ID)
from (
select SALESORDER.ID, SALESORDER.RECIPIENTID as CONSTITUENTID, SALESORDER.STATUSCODE
from dbo.SALESORDER
inner join dbo.SALESORDERITEM on SALESORDERITEM.SALESORDERID = SALESORDER.ID and SALESORDERITEM.TYPECODE = 0 -- Ticket
union all
select SALESORDER.ID, SALESORDER.CONSTITUENTID, SALESORDER.STATUSCODE
from dbo.SALESORDER
inner join dbo.SALESORDERITEM on SALESORDERITEM.SALESORDERID = SALESORDER.ID and SALESORDERITEM.TYPECODE = 14 -- Merchandise
) as SO
where
SO.CONSTITUENTID in (select ID from @CONSTITUENTS)
and SO.STATUSCODE = 1 -- Complete
end;
return 0;