USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMMEMBERSHIPRENEWAL_PRELOAD
The load procedure used by the edit dataform template "Sales Order Item Membership Renewal Add Data Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MEMBERSHIPID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CURRENTCONSTITUENTID | uniqueidentifier | INOUT | |
@MEMBERSHIPPROGRAMID | uniqueidentifier | INOUT | Program |
@MEMBERSHIPLEVELID | uniqueidentifier | INOUT | Level |
@MEMBERSHIPLEVELTERMID | uniqueidentifier | INOUT | Term |
@TRANSACTIONDATE | datetime | INOUT | |
@EXPIRATIONDATE | datetime | INOUT | |
@MEMBERSHIPTYPECODEID | uniqueidentifier | INOUT | Type |
@NUMBEROFCHILDREN | smallint | INOUT | No. of children |
@COMMENTS | nvarchar(1000) | INOUT | Comments |
@MEMBERS | xml | INOUT | Members |
@ISRENEWAL | bit | INOUT | |
@ISREJOIN | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMMEMBERSHIPRENEWAL_PRELOAD
(
@MEMBERSHIPID uniqueidentifier,
@CURRENTCONSTITUENTID uniqueidentifier = null output,
@MEMBERSHIPPROGRAMID uniqueidentifier = null output,
@MEMBERSHIPLEVELID uniqueidentifier = null output,
@MEMBERSHIPLEVELTERMID uniqueidentifier = null output,
@TRANSACTIONDATE datetime = null output,
@EXPIRATIONDATE datetime = null output,
@MEMBERSHIPTYPECODEID uniqueidentifier = null output,
@NUMBEROFCHILDREN smallint = null output,
@COMMENTS nvarchar(1000) = null output,
@MEMBERS xml = null output,
@ISRENEWAL bit = null output,
@ISREJOIN bit = null output
)
as
set nocount on;
declare @RENEWALBEFOREEXPIRATION datetime;
declare @RENEWALAFTEREXPIRATION datetime;
declare @STATUSCODE tinyint;
select
@MEMBERSHIPPROGRAMID = MEMBERSHIP.MEMBERSHIPPROGRAMID,
@MEMBERSHIPLEVELID = MEMBERSHIP.MEMBERSHIPLEVELID,
@MEMBERSHIPLEVELTERMID = MEMBERSHIP.MEMBERSHIPLEVELTERMID,
@TRANSACTIONDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
@EXPIRATIONDATE = dbo.UFN_DATE_GETLATESTTIME(MEMBERSHIP.EXPIRATIONDATE),
@MEMBERSHIPTYPECODEID = MEMBERSHIP.MEMBERSHIPLEVELTYPECODEID,
@NUMBEROFCHILDREN = MEMBERSHIP.NUMBEROFCHILDREN,
@COMMENTS = MEMBERSHIP.COMMENTS,
@STATUSCODE = MEMBERSHIP.STATUSCODE
from
dbo.MEMBERSHIP
where
ID = @MEMBERSHIPID;
set @RENEWALBEFOREEXPIRATION = dbo.UFN_MEMBERSHIPLEVEL_CREATERENEWALBEFOREEXPIRATIONDATE(@MEMBERSHIPLEVELID, @EXPIRATIONDATE);
set @RENEWALAFTEREXPIRATION = dbo.UFN_MEMBERSHIPLEVEL_CREATERENEWALAFTEREXPIRATIONDATE(@MEMBERSHIPLEVELID, @EXPIRATIONDATE);
set @MEMBERS =
(
select
newid() [ID],
M.CONSTITUENTID,
M.ISPRIMARY,
(
select
newid() [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
)
select
@CURRENTCONSTITUENTID = MEMBER.CONSTITUENTID
from
dbo.MEMBER
inner join
dbo.MEMBERSHIP on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
where
MEMBERSHIP.ID = @MEMBERSHIPID;
if @STATUSCODE = 1 or (@TRANSACTIONDATE > @EXPIRATIONDATE and @TRANSACTIONDATE > @RENEWALAFTEREXPIRATION)
set @ISREJOIN = 1;
else
set @ISRENEWAL = 1;
return 0;