USP_DATAFORMTEMPLATE_ADD_PRELOAD_BATCHREVENUEMEMBERSHIPAPPEALDEFAULT
The load procedure used by the view dataform template "Batch Revenue Membership Appeal Default View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(100) | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@MEMBERSHIP | nvarchar(203) | INOUT | Membership |
@PROGRAM | nvarchar(100) | INOUT | Program |
@TERM | nvarchar(8) | INOUT | Term |
@EXPIRATIONDATE | datetime | INOUT | Expiration date |
@AMOUNT | money | INOUT | Amount |
@MEMBERSHIPPROGRAMID | uniqueidentifier | INOUT | Program |
@MEMBERSHIPLEVELID | uniqueidentifier | INOUT | Level |
@MEMBERSHIPLEVELTERMID | uniqueidentifier | INOUT | Term |
@MEMBERSHIPTYPECODEID | uniqueidentifier | INOUT | Type |
@NUMBEROFCHILDREN | tinyint | INOUT | No. of children |
@COMMENTS | nvarchar(1000) | INOUT | Comments |
@MEMBERS | xml | INOUT | Members |
@ISGIFT | bit | INOUT | This membership is a gift |
@SENDRENEWALCODE | tinyint | INOUT | Send renewal notice to |
@GIVENBYID | uniqueidentifier | INOUT | Given By |
@MEMBERSHIPID | uniqueidentifier | INOUT | ID |
@TERMSLIST | xml | INOUT | TERMSLIST |
@FORCEMANUALDOWNGRADE | bit | INOUT | FORCEMANUALDOWNGRADE |
@EXPIRESONCODE | tinyint | INOUT | EXPIRESONCODE |
@CUTOFFDAY | tinyint | INOUT | CUTOFFDAY |
@CUTOFFDATEFORYEAR | nvarchar(4) | INOUT | CUTOFFDATEFORYEAR |
@EXPIRATIONDATES | xml | INOUT | EXPIRATIONDATES |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PRELOAD_BATCHREVENUEMEMBERSHIPAPPEALDEFAULT
(
@ID nvarchar(100),
@DATALOADED bit = 0 output,
@MEMBERSHIP nvarchar(203) = null output,
@PROGRAM nvarchar(100) = null output,
@TERM nvarchar(8) = null output,
@EXPIRATIONDATE datetime = null output,
@AMOUNT money = null output,
@MEMBERSHIPPROGRAMID uniqueidentifier = null output,
@MEMBERSHIPLEVELID uniqueidentifier = null output,
@MEMBERSHIPLEVELTERMID uniqueidentifier = null output,
@MEMBERSHIPTYPECODEID uniqueidentifier = null output,
@NUMBEROFCHILDREN tinyint = null output,
@COMMENTS nvarchar(1000) = null output,
@MEMBERS xml = null output,
@ISGIFT bit = null output,
@SENDRENEWALCODE tinyint = null output,
@GIVENBYID uniqueidentifier = null output,
@MEMBERSHIPID uniqueidentifier = null output,
@TERMSLIST xml = null output,
@FORCEMANUALDOWNGRADE bit = null output,
@EXPIRESONCODE tinyint = null output,
@CUTOFFDAY tinyint = null output,
@CUTOFFDATEFORYEAR nvarchar(4) = null output,
@EXPIRATIONDATES xml = null output
)
as
set nocount on;
declare @DEFAULTTERMID uniqueidentifier
declare @TRANSACTIONDATE datetime
declare @CONSTITUENTID uniqueidentifier
set @DEFAULTTERMID = convert(uniqueidentifier, SUBSTRING(@ID, 1, 36))
set @CONSTITUENTID = convert(uniqueidentifier, SUBSTRING(@ID, 38, 36))
set @ID = REPLACE(@ID, LEFT(@ID, 74), '')
set @TRANSACTIONDATE = convert(datetime, @ID)
set @DATALOADED = 0;
select @MEMBERSHIPLEVELID = ML.ID,
@MEMBERSHIPPROGRAMID = MP.ID,
@MEMBERSHIPLEVELTERMID = @DEFAULTTERMID,
@FORCEMANUALDOWNGRADE = ML.FORCEMANUALDOWNGRADES,
@EXPIRESONCODE = MP.EXPIRESONCODE,
@CUTOFFDAY = MP.CUTOFFDAY,
@CUTOFFDATEFORYEAR = MP.CUTOFFDATEFORYEAR
from dbo.MEMBERSHIPLEVELTERM MLT
inner join dbo.MEMBERSHIPLEVEL ML on MLT.LEVELID = ML.ID
inner join dbo.MEMBERSHIPPROGRAM MP on ML.MEMBERSHIPPROGRAMID = MP.ID
where MLT.ID = @DEFAULTTERMID;
select @MEMBERSHIPID = MEMBERSHIP.ID
from dbo.MEMBERSHIP
inner join dbo.MEMBER on MEMBERSHIP.ID = MEMBER.MEMBERSHIPID
where MEMBER.CONSTITUENTID = @CONSTITUENTID and MEMBER.ISPRIMARY = 1
and MEMBER.ISDROPPED = 0
and MEMBERSHIP.MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID;
if @MEMBERSHIPID is null
begin
--get default membership object
select
@DATALOADED = 1,
@MEMBERSHIPID = newid(),
@MEMBERSHIP = MP.NAME + ' - ' + ML.NAME,
@PROGRAM = MP.NAME,
@TERM = MLT.TERM,
@EXPIRATIONDATE = dbo.UFN_MEMBERSHIP_CALCULATEEXPIRATIONDATEBYLEVEL(@MEMBERSHIPLEVELID, @MEMBERSHIPLEVELTERMID, @TRANSACTIONDATE),
@AMOUNT = MLT.AMOUNT,
@NUMBEROFCHILDREN = 0,
@ISGIFT = 0,
@SENDRENEWALCODE = 1,
@COMMENTS = ''
from dbo.MEMBERSHIPLEVELTERM MLT
inner join dbo.MEMBERSHIPLEVEL ML on MLT.LEVELID = ML.ID
inner join dbo.MEMBERSHIPPROGRAM MP on ML.MEMBERSHIPPROGRAMID = MP.ID
where MLT.ID = @DEFAULTTERMID;
set @MEMBERS =
(
select
newid() as ID,
@CONSTITUENTID as CONSTITUENTID,
1 as ISPRIMARY
from dbo.MEMBERSHIPPROGRAM M
where ID = @MEMBERSHIPPROGRAMID
for xml raw ('ITEM'), type, elements, root('MEMBERS'),BINARY BASE64
)
end
else
begin
--load membership
select
@DATALOADED = 1,
@MEMBERSHIP = MP.NAME + ' - ' + ML.NAME,
@PROGRAM = MP.NAME,
@TERM = MLT.TERM,
@EXPIRATIONDATE = dbo.UFN_MEMBERSHIP_CALCULATERENEWALEXPIRATION(MEMBERSHIP.EXPIRATIONDATE,MEMBERSHIP.MEMBERSHIPLEVELTERMID),
@AMOUNT = MLT.AMOUNT,
@MEMBERSHIPTYPECODEID = MEMBERSHIP.MEMBERSHIPLEVELTYPECODEID,
@NUMBEROFCHILDREN = MEMBERSHIP.NUMBEROFCHILDREN,
@COMMENTS = MEMBERSHIP.COMMENTS,
@ISGIFT = MEMBERSHIP.ISGIFT,
@SENDRENEWALCODE = MEMBERSHIP.SENDRENEWALCODE,
@GIVENBYID = MEMBERSHIP.GIVENBYID
from dbo.MEMBERSHIP
inner join dbo.MEMBERSHIPLEVELTERM MLT on MEMBERSHIP.MEMBERSHIPLEVELTERMID = MLT.ID
inner join dbo.MEMBERSHIPLEVEL ML on MEMBERSHIP.MEMBERSHIPLEVELID = ML.ID
inner join dbo.MEMBERSHIPPROGRAM MP on MEMBERSHIP.MEMBERSHIPPROGRAMID = MP.ID
where MEMBERSHIP.ID = @MEMBERSHIPID;
set @MEMBERS =
(
select
M.ID,
M.CONSTITUENTID,
M.ISPRIMARY,
(
select
MC.ID,
MC.NAMEONCARD,
MC.EXPIRATIONDATE
from dbo.MEMBERSHIPCARD MC
where MC.MEMBERID = M.ID and MC.STATUSCODE <> 2
for xml raw('ITEM'),type,elements,root('MEMBERSHIPCARDS'),BINARY BASE64
)
from dbo.MEMBER M
where MEMBERSHIPID = @MEMBERSHIPID and ISDROPPED = 0
for xml raw ('ITEM'), type, elements, root('MEMBERS'),BINARY BASE64
)
end
set @TERMSLIST =
(
select
MEMBERSHIPLEVELTERM.ID,
case when TERMCODE = 0 then 1
when TERMCODE = 1 then 2
when TERMCODE = 2 then 3
when TERMCODE = 3 then 4
when TERMCODE = 4 then 5
when TERMCODE = 5 then 10
else 0
end AS TERM,
AMOUNT,
MEMBERSHIPLEVELTERM.LEVELID
from dbo.MEMBERSHIPLEVELTERM
inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVELTERM.LEVELID = MEMBERSHIPLEVEL.ID
where MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
order by MEMBERSHIPLEVELTERM.AMOUNT desc, MEMBERSHIPLEVEL.SEQUENCE desc
for xml raw ('ITEM'), type, elements, root('TERMSLIST'), BINARY BASE64
)
if @EXPIRESONCODE = 4 --specific dates
begin
set @EXPIRATIONDATES =
(
select
ME.ID,
ME.EXPIRATIONDATE,
ME.PUSHNEXTDATE,
ME.SEQUENCE
from
dbo.MEMBERSHIPPROGRAMENDDATE ME
where
MEMBERSHIPPROGRAMID = @MEMBERSHIPPROGRAMID
for xml raw ('ITEM'), type, elements, root('TERMSLIST'), BINARY BASE64
)
end
return 0;