UFN_SALESORDER_GETPATRONUPGRADELEVELS
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_SALESORDER_GETPATRONUPGRADELEVELS
(
@CONSTITUENTID uniqueidentifier
)
returns table
as
return
(
select
MEMBERSHIP.ID as MEMBERSHIPID,
MEMBERSHIPPROGRAM.ID as MEMBERSHIPPROGRAMID,
MEMBERSHIPPROGRAM.NAME as MEMBERSHIPPROGRAMNAME,
MEMBERSHIPLEVEL.ID as MEMBERSHIPLEVELID,
MEMBERSHIPLEVEL.NAME AS MEMBERSHIPLEVELNAME,
MEMBERSHIPLEVELTERM.ID as MEMBERSHIPLEVELTERMID,
MEMBERSHIP.EXPIRATIONDATE,
MEMBERSHIP.LOOKUPID,
MEMBERSHIPLEVEL.SEQUENCE
from dbo.MEMBER
inner join dbo.MEMBERSHIP
on MEMBER.MEMBERSHIPID = MEMBERSHIP.ID and MEMBER.ISDROPPED = 0
inner join dbo.MEMBERSHIPPROGRAM
on MEMBERSHIP.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
inner join dbo.MEMBERSHIPLEVEL as INITIALML
on MEMBERSHIP.MEMBERSHIPLEVELID = INITIALML.ID
inner join dbo.MEMBERSHIPLEVEL
on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
inner join dbo.MEMBERSHIPLEVELTERM
on MEMBERSHIPLEVEL.ID = MEMBERSHIPLEVELTERM.LEVELID and
MEMBERSHIPLEVELTERM.TERMLENGTHCODE = (select MLT.TERMLENGTHCODE from dbo.MEMBERSHIPLEVELTERM as MLT where MLT.ID = MEMBERSHIP.MEMBERSHIPLEVELTERMID) and
MEMBERSHIPLEVELTERM.TERMTIMELENGTH = (select MLT.TERMTIMELENGTH from dbo.MEMBERSHIPLEVELTERM as MLT where MLT.ID = MEMBERSHIP.MEMBERSHIPLEVELTERMID)
where
MEMBER.CONSTITUENTID = @CONSTITUENTID and
MEMBERSHIPPROGRAM.ISACTIVE = 1 and
MEMBERSHIPPROGRAM.PROGRAMTYPECODE = 0 and
MEMBERSHIPPROGRAM.PROGRAMBASEDONCODE = 0 and
MEMBERSHIPPROGRAM.ONEPAYMENTEACHTERM = 1 and
MEMBERSHIP.STATUSCODE = 0 and
MEMBERSHIP.EXPIRATIONDATE >= getdate() and
MEMBERSHIPLEVEL.CHILDRENALLOWED >= MEMBERSHIP.NUMBEROFCHILDREN and
MEMBERSHIPLEVEL.ISACTIVE = 1 and
MEMBERSHIPLEVELTERM.ISACTIVE = 1 and
--Level allows the number of members in the membership
(
(
select count(1)
from dbo.MEMBER
where
MEMBER.MEMBERSHIPID = MEMBERSHIP.ID
and MEMBER.ISDROPPED = 0
) <= MEMBERSHIPLEVEL.MEMBERSALLOWED
) and
--Level allows for the number of membership cards in the membership
(
(
select count(1)
from dbo.MEMBERSHIPCARD
inner join dbo.MEMBER
on MEMBERSHIPCARD.MEMBERID = MEMBER.ID
where
MEMBER.MEMBERSHIPID = MEMBERSHIP.ID and
MEMBERSHIPCARD.STATUSCODE <> 2
) <= MEMBERSHIPLEVEL.CARDSALLOWED
) and
MEMBERSHIPLEVEL.SEQUENCE > INITIALML.SEQUENCE
)