USP_DATAFORMTEMPLATE_EDITLOAD_SALESORDERITEMMEMBERSHIP
The load procedure used by the edit dataform template "Sales Order Item Membership Edit Data Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | 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. |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@ORDERCONSTITUENTID | uniqueidentifier | INOUT | |
@ORDERCONSTITUENTNAME | nvarchar(154) | INOUT | |
@TRANSACTIONDATE | datetime | INOUT | Transaction date |
@INITIALMEMBERSHIPID | uniqueidentifier | INOUT | |
@DESCRIPTION | nvarchar(255) | INOUT | |
@MEMBERSHIPID | uniqueidentifier | INOUT | Membership |
@MEMBERSHIPPROGRAMID | uniqueidentifier | INOUT | Program |
@MEMBERSHIPLEVELID | uniqueidentifier | INOUT | Level |
@MEMBERSHIPLEVELTERMID | uniqueidentifier | INOUT | Term |
@MEMBERSHIPLEVELTYPECODEID | uniqueidentifier | INOUT | Type |
@NUMBEROFCHILDREN | smallint | INOUT | No. of children |
@COMMENTS | nvarchar(1000) | INOUT | Comments |
@ISGIFT | bit | INOUT | This membership is a gift |
@SENDRENEWALCODE | tinyint | INOUT | Send renewal notice to |
@EXPIRATIONDATE | datetime | INOUT | Expiration date |
@GIVENBYID | uniqueidentifier | INOUT | Given by |
@STATUSCODE | tinyint | INOUT | |
@MEMBERS | xml | INOUT | Members |
@MEMBERSHIPLEVELS | xml | INOUT | |
@NUMBEROFADDONADULTS | smallint | INOUT | Number of additional members purchased |
@NUMBEROFADDONGUESTS | smallint | INOUT | Number of guests purchased |
@ISMIDTERMUPGRADE | bit | INOUT | Is mid-term upgrade |
@MIDTERMUPGRADEPRICE | money | INOUT | Mid-term upgrade price |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_SALESORDERITEMMEMBERSHIP
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@ORDERCONSTITUENTID uniqueidentifier = null output,
@ORDERCONSTITUENTNAME nvarchar(154) = null output,
@TRANSACTIONDATE datetime = null output,
@INITIALMEMBERSHIPID uniqueidentifier = null output,
@DESCRIPTION nvarchar(255) = null output,
@MEMBERSHIPID uniqueidentifier = null output,
@MEMBERSHIPPROGRAMID uniqueidentifier = null output,
@MEMBERSHIPLEVELID uniqueidentifier = null output,
@MEMBERSHIPLEVELTERMID uniqueidentifier = null output,
@MEMBERSHIPLEVELTYPECODEID uniqueidentifier = null output,
@NUMBEROFCHILDREN smallint = null output,
@COMMENTS nvarchar(1000) = null output,
@ISGIFT bit = null output,
@SENDRENEWALCODE tinyint = null output,
@EXPIRATIONDATE datetime = null output,
@GIVENBYID uniqueidentifier = null output,
@STATUSCODE tinyint = null output,
@MEMBERS xml = null output,
@MEMBERSHIPLEVELS xml = null output,
@NUMBEROFADDONADULTS smallint = null output,
@NUMBEROFADDONGUESTS smallint = null output,
@ISMIDTERMUPGRADE bit = null output,
@MIDTERMUPGRADEPRICE money = null output
)
as
set nocount on;
set @DATALOADED = 0;
set @TSLONG = 0;
set @TRANSACTIONDATE = getdate();
select
@DATALOADED = 1,
@TSLONG = SALESORDERITEMMEMBERSHIP.TSLONG,
@ORDERCONSTITUENTID = CONSTITUENT.ID,
@ORDERCONSTITUENTNAME = CONSTITUENT.NAME,
@MEMBERSHIPID = isnull(SALESORDERITEMMEMBERSHIP.MEMBERSHIPID, '00000000-0000-0000-0000-000000000000'),
@DESCRIPTION = (
case
when SALESORDERITEMMEMBERSHIP.MEMBERSHIPID is null then
'<New membership>'
else
dbo.UFN_MEMBERSHIP_GETDESCRIPTION(SALESORDERITEMMEMBERSHIP.MEMBERSHIPID)
end
),
@MEMBERSHIPPROGRAMID = SALESORDERITEMMEMBERSHIP.MEMBERSHIPPROGRAMID,
@MEMBERSHIPLEVELID = SALESORDERITEMMEMBERSHIP.MEMBERSHIPLEVELID,
@MEMBERSHIPLEVELTERMID = SALESORDERITEMMEMBERSHIP.MEMBERSHIPLEVELTERMID,
@MEMBERSHIPLEVELTYPECODEID = SALESORDERITEMMEMBERSHIP.MEMBERSHIPLEVELTYPECODEID,
@NUMBEROFCHILDREN = SALESORDERITEMMEMBERSHIP.NUMBEROFCHILDREN,
@EXPIRATIONDATE = MEMBERSHIP.EXPIRATIONDATE,
@COMMENTS = SALESORDERITEMMEMBERSHIP.COMMENTS,
@ISGIFT = SALESORDERITEMMEMBERSHIP.ISGIFT,
@SENDRENEWALCODE = SALESORDERITEMMEMBERSHIP.SENDRENEWALCODE,
@GIVENBYID = SALESORDERITEMMEMBERSHIP.GIVENBYID,
@STATUSCODE = isnull(MEMBERSHIP.STATUSCODE, 0),
@MEMBERS = (
select
SALESORDERITEMMEMBER.ID,
SALESORDERITEMMEMBER.MEMBERID,
SALESORDERITEMMEMBER.CONSTITUENTID,
SALESORDERITEMMEMBER.ISPRIMARY,
(
select
SALESORDERITEMMEMBERSHIPCARD.ID,
SALESORDERITEMMEMBERSHIPCARD.MEMBERSHIPCARDID,
SALESORDERITEMMEMBERSHIPCARD.NAMEONCARD,
SALESORDERITEMMEMBERSHIPCARD.EXPIRATIONDATE
from
dbo.SALESORDERITEMMEMBERSHIPCARD
where
SALESORDERITEMMEMBER.ID = SALESORDERITEMMEMBERSHIPCARD.SALESORDERITEMMEMBERID
for xml raw('ITEM'),type,elements,root('MEMBERSHIPCARDS'),binary base64
),
SALESORDERITEMMEMBER.ISCAREGIVER
from
dbo.SALESORDERITEMMEMBER
where
SALESORDERITEMMEMBERSHIP.ID = SALESORDERITEMMEMBER.SALESORDERITEMMEMBERSHIPID
for xml raw('ITEM'),type,elements,root('MEMBERS'),binary base64
),
@MEMBERSHIPLEVELS = (
select
MEMBERSHIPLEVEL.ID,
dbo.UFN_MEMBERSHIPTRANSACTION_DETERMINEACTIONCODE(SALESORDERITEMMEMBERSHIP.MEMBERSHIPID, MEMBERSHIPLEVEL.ID, @TRANSACTIONDATE) [ACTIONCODE]
from
dbo.MEMBERSHIPLEVEL
where
SALESORDERITEMMEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID
for xml raw('ITEM'),type,elements,root('MEMBERSHIPLEVELS'),binary base64
),
@ISMIDTERMUPGRADE = case SALESORDERITEMMEMBERSHIP.TYPECODE
when 1 then 0
else 1
end,
@MIDTERMUPGRADEPRICE = SALESORDERITEM.TOTAL
from
dbo.SALESORDERITEMMEMBERSHIP
inner join
dbo.SALESORDERITEM on SALESORDERITEMMEMBERSHIP.ID = SALESORDERITEM.ID
inner join
dbo.SALESORDER on SALESORDERITEM.SALESORDERID = SALESORDER.ID
left outer join
dbo.CONSTITUENT on SALESORDER.CONSTITUENTID = CONSTITUENT.ID
left outer join
dbo.MEMBERSHIP on SALESORDERITEMMEMBERSHIP.MEMBERSHIPID = MEMBERSHIP.ID
where
SALESORDERITEMMEMBERSHIP.ID = @ID;
set @INITIALMEMBERSHIPID = @MEMBERSHIPID;
select
@NUMBEROFADDONADULTS = isnull(SALESORDERITEM.QUANTITY, 0)
from dbo.SALESORDERITEMMEMBERSHIPADDON
inner join dbo.SALESORDERITEM on SALESORDERITEMMEMBERSHIPADDON.ID = SALESORDERITEM.ID
where SALESORDERITEMMEMBERSHIPADDON.SALESORDERITEMMEMBERSHIPID = @ID and SALESORDERITEMMEMBERSHIPADDON.ADDONTYPECODE = 0;
select
@NUMBEROFADDONGUESTS = isnull(SALESORDERITEM.QUANTITY, 0)
from dbo.SALESORDERITEMMEMBERSHIPADDON
inner join dbo.SALESORDERITEM on SALESORDERITEMMEMBERSHIPADDON.ID = SALESORDERITEM.ID
where SALESORDERITEMMEMBERSHIPADDON.SALESORDERITEMMEMBERSHIPID = @ID and SALESORDERITEMMEMBERSHIPADDON.ADDONTYPECODE = 1;
return 0;