USP_DATAFORMTEMPLATE_VIEW_PATRON_MEMBERSHIP
The load procedure used by the view dataform template "Patron Membership View 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. |
@MEMBERSHIPPROGRAMNAME | nvarchar(100) | INOUT | MEMBERSHIPPROGRAMNAME |
@MEMBERSHIPLEVELNAME | nvarchar(100) | INOUT | MEMBERSHIPLEVELNAME |
@MEMBERSHIPEXPIRATION | datetime | INOUT | MEMBERSHIPEXPIRATION |
@INRENEWALWINDOW | bit | INOUT | INRENEWALWINDOW |
@ISLAPSED | bit | INOUT | ISLAPSED |
@ISCANCELLED | bit | INOUT | ISCANCELLED |
@ISPENDING | bit | INOUT | ISPENDING |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@ORDERID | uniqueidentifier | INOUT | ORDERID |
@MEMBERSHIPID | uniqueidentifier | INOUT | MEMBERSHIPID |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_PATRON_MEMBERSHIP
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@MEMBERSHIPPROGRAMNAME nvarchar(100) = null output,
@MEMBERSHIPLEVELNAME nvarchar(100) = null output,
@MEMBERSHIPEXPIRATION datetime = null output,
@INRENEWALWINDOW bit = null output,
@ISLAPSED bit = null output,
@ISCANCELLED bit = null output,
@ISPENDING bit = null output,
@CURRENTAPPUSERID uniqueidentifier,
@ORDERID uniqueidentifier = null output,
@MEMBERSHIPID uniqueidentifier = null output
)
as
set nocount on;
set @DATALOADED = 0;
declare @CURRENTDATE datetime = getdate();
select
@DATALOADED = 1,
@MEMBERSHIPPROGRAMNAME = dbo.UFN_MEMBERSHIPPROGRAM_GETNAME(MEMBERSHIP.MEMBERSHIPPROGRAMID),
@MEMBERSHIPEXPIRATION = case when MEMBERSHIP.STATUSCODE = 1 then MT.TRANSACTIONDATE else MEMBERSHIP.EXPIRATIONDATE end,
@MEMBERSHIPLEVELNAME = dbo.UFN_MEMBERSHIPLEVEL_GETNAME(MEMBERSHIP.MEMBERSHIPLEVELID),
@INRENEWALWINDOW = case when @CURRENTDATE between dateadd(month, MEMBERSHIPLEVEL.BEFOREEXPIRATION * -1, MEMBERSHIP.EXPIRATIONDATE) and
dateadd(month, MEMBERSHIPLEVEL.AFTEREXPIRATION, MEMBERSHIP.EXPIRATIONDATE) then 1
else 0 end,
@ISLAPSED = case when @CURRENTDATE > MEMBERSHIP.EXPIRATIONDATE then 1
else 0 end,
@ISCANCELLED = case when MEMBERSHIP.STATUSCODE = 1 then 1
else 0 end,
@ISPENDING = case MEMBERSHIP.STATUSCODE
when 2 then
1
else
0
end
from dbo.MEMBER
inner join dbo.MEMBERSHIP on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
left join dbo.MEMBERSHIPTRANSACTION MT on (MEMBERSHIP.ID = MT.MEMBERSHIPID and MT.ACTIONCODE = 4) and (MT.ID in (select top 1 ID from dbo.MEMBERSHIPTRANSACTION MT2 where MT2.ACTIONCODE = 4 and MT2.MEMBERSHIPID = MEMBERSHIP.ID order by MT2.TRANSACTIONDATE desc))
where MEMBERSHIP.ID = @ID
select
@ORDERID = ID
from dbo.SALESORDER
where STATUSCODE = 0
and SALESMETHODTYPECODE = 1
and APPUSERID = @CURRENTAPPUSERID
set @MEMBERSHIPID = @ID
return 0;