USP_CONSTITUENTMEMBERSHIPPROGRAM_GETBENEFITSDATALIST
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MEMBERSHIPID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_CONSTITUENTMEMBERSHIPPROGRAM_GETBENEFITSDATALIST
(
@MEMBERSHIPID uniqueidentifier
)
as
begin
set nocount on;
-- View form IDs
declare @BENEFITVIEWFORMID uniqueidentifier = '7d4ab86a-81c5-42e1-87b0-540033851305'
declare @MAILINGVIEWFORMID uniqueidentifier = '47445040-3beb-4fef-9cac-701710f80f4b'
declare @MEMBERSHIPPROGRAMID uniqueidentifier;
select
@MEMBERSHIPPROGRAMID = MEMBERSHIP.MEMBERSHIPPROGRAMID
from
dbo.MEMBERSHIP
where MEMBERSHIP.ID = @MEMBERSHIPID
declare @MEMBERS table (CONSTITUENTID uniqueidentifier)
insert into @MEMBERS select CONSTITUENTID from dbo.MEMBER where MEMBERSHIPID = @MEMBERSHIPID
--Benefits
select
REVENUE_EXT.ID,
@BENEFITVIEWFORMID as VIEWFORMID,
4 as TYPECODE,
REVENUEBENEFIT.TOTALVALUE AS BENEFITAMOUNT,
case
when REVENUEBENEFIT.QUANTITY = 0 then 1
else REVENUEBENEFIT.QUANTITY
end AS BENEFITQUANTITY,
BENEFIT.NAME as BENEFITNAME,
BENEFIT.ID as BENEFITID,
'Benefit' as ITEMTYPE,
MEMBERSHIPTRANSACTION.TRANSACTIONDATE as DATE,
'' as NAME,
REVENUEBENEFIT.BASECURRENCYID,
'00000000-0000-0000-0000-000000000000' as MKTID,
REVENUEBENEFIT.ID as CONTEXTID,
null as PRINTDATE,
null as CARDSTATUS
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
union all
--Mailings
select
CONSTITUENTAPPEAL.ID,
@MAILINGVIEWFORMID as VIEWFORMID,
case
when APPEALMAILING.ID is not null then 3
else 2
end as TYPECODE,
null AS BENEFITAMOUNT,
null as BENEFITQUANTITY,
'' as BENEFITNAME,
null as BENEFITID,
'Mailing' as ITEMTYPE,
CONSTITUENTAPPEAL.DATESENT as DATE,
MKTSEGMENTATION.NAME as NAME,
null as BASECURRENCYID,
CONSTITUENTAPPEAL.MKTSEGMENTATIONID as MKTID,
CONSTITUENTAPPEAL.MKTSEGMENTATIONID as CONTEXTID,
null as PRINTDATE,
null as CARDSTATUS
from @MEMBERS MEMBERS
inner join dbo.CONSTITUENTAPPEAL on CONSTITUENTAPPEAL.CONSTITUENTID = MEMBERS.CONSTITUENTID
inner join dbo.APPEAL on APPEAL.ID = CONSTITUENTAPPEAL.APPEALID
left join dbo.MKTPACKAGE on MKTPACKAGE.ID = CONSTITUENTAPPEAL.MKTPACKAGEID
left join dbo.MKTSEGMENTATION on MKTSEGMENTATION.ID = CONSTITUENTAPPEAL.MKTSEGMENTATIONID
left join dbo.APPEALMAILING on APPEALMAILING.ID = CONSTITUENTAPPEAL.MKTSEGMENTATIONID
left join dbo.APPEALMAILINGSETUPLETTER MAILLETTER on MKTPACKAGE.ID = MAILLETTER.MAILPACKAGEID
left join dbo.APPEALMAILINGSETUPLETTER EMAILLETTER on MKTPACKAGE.ID = EMAILLETTER.EMAILPACKAGEID
where
APPEAL.MEMBERSHIPPROGRAMID=@MEMBERSHIPPROGRAMID
order by DATE DESC
end