UFN_SALESORDERITEMMEMBER_VALIDNUMBEROFMEMBERS
Validates the number of members in a sales order item membership as allowed in the membership level.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SALESORDERITEMMEMBERSHIPID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_SALESORDERITEMMEMBER_VALIDNUMBEROFMEMBERS
(
@SALESORDERITEMMEMBERSHIPID uniqueidentifier
)
returns bit
as begin
declare @MEMBERSALLOWED smallint;
declare @ADDITIONALMEMBERSPURCHASED smallint;
declare @MIDTERMMEMBERSPURCHASED smallint;
select
@MEMBERSALLOWED = MEMBERSHIPLEVEL.MEMBERSALLOWED
from
dbo.SALESORDERITEMMEMBERSHIP
inner join
dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVEL.ID = SALESORDERITEMMEMBERSHIP.MEMBERSHIPLEVELID
where
SALESORDERITEMMEMBERSHIP.ID = @SALESORDERITEMMEMBERSHIPID;
select @ADDITIONALMEMBERSPURCHASED = coalesce(sum(isnull(SALESORDERITEM.QUANTITY, 0)), 0)
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMMEMBERSHIPADDON on SALESORDERITEM.ID = SALESORDERITEMMEMBERSHIPADDON.ID
where SALESORDERITEMMEMBERSHIPADDON.SALESORDERITEMMEMBERSHIPID = @SALESORDERITEMMEMBERSHIPID
and SALESORDERITEMMEMBERSHIPADDON.ADDONTYPECODE = 1
select
@MIDTERMMEMBERSPURCHASED = coalesce(sum(isnull(MEMBERSHIPADDON.QUANTITY, 0)),0)
from
dbo.SALESORDERITEMMEMBERSHIP
left join
dbo.MEMBERSHIPADDON on MEMBERSHIPADDON.MEMBERSHIPID = SALESORDERITEMMEMBERSHIP.MEMBERSHIPID
left join
dbo.ADDON on ADDON.ID = MEMBERSHIPADDON.ADDONID
where
ADDON.ADDONTYPECODE = 1 and
SALESORDERITEMMEMBERSHIP.TYPECODE = 250 and
SALESORDERITEMMEMBERSHIP.ID = @SALESORDERITEMMEMBERSHIPID
declare @MEMBERCOUNT smallint;
select
@MEMBERCOUNT = count(ID)
from
dbo.SALESORDERITEMMEMBER
where
SALESORDERITEMMEMBERSHIPID = @SALESORDERITEMMEMBERSHIPID;
if @MEMBERCOUNT > (@MEMBERSALLOWED + @ADDITIONALMEMBERSPURCHASED + @MIDTERMMEMBERSPURCHASED) and (@MEMBERSALLOWED + @ADDITIONALMEMBERSPURCHASED + @MIDTERMMEMBERSPURCHASED) > 0
return 0;
return 1;
end