USP_DATAFORMTEMPLATE_VIEW_DAILYSALESMEMBERSHIPINFO
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(72) | IN | |
@DATALOADED | bit | INOUT | |
@NUMBEROFMEMBERSALLOWED | int | INOUT | |
@NUMBEROFMEMBERS | int | INOUT | |
@NUMBEROFCARDSALLOWED | int | INOUT | |
@NUMBEROFCARDS | int | INOUT | |
@HASADDONS | bit | INOUT | |
@HASLEVELCONFLICT | bit | INOUT | |
@HASLEVELCONFLICTTOOMANYMEMBERS | bit | INOUT | |
@HASLEVELCONFLICTTOOMANYCARDS | bit | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_DAILYSALESMEMBERSHIPINFO
(
@ID nvarchar(72),
@DATALOADED bit = 0 output,
@NUMBEROFMEMBERSALLOWED integer = null output,
@NUMBEROFMEMBERS integer = null output,
@NUMBEROFCARDSALLOWED integer = null output,
@NUMBEROFCARDS integer = null output,
@HASADDONS bit = null output,
@HASLEVELCONFLICT bit = null output,
@HASLEVELCONFLICTTOOMANYMEMBERS bit = null output,
@HASLEVELCONFLICTTOOMANYCARDS bit = null output
)
as
set nocount on;
declare @CURRENTDATE date = getdate()
declare @MEMBERSHIPID uniqueidentifier = left(@ID, 36)
declare @MEMBERSHIPLEVELID uniqueidentifier;
if len(@ID) = 72
set @MEMBERSHIPLEVELID = right(@ID, 36)
declare @LASTTRANSACTIONID uniqueidentifier;
declare @NUMBEROFMEMBERADDONS tinyint = 0
set @DATALOADED = 1
select
top 1 @LASTTRANSACTIONID = ID
from
dbo.MEMBERSHIPTRANSACTION
where
MEMBERSHIPID = @MEMBERSHIPID
and REVENUESPLITID is not null
order by
TRANSACTIONDATE desc, DATEADDED desc;
declare @MEMBERSHIPPROGRAMADDONSTABLE table (ADDONID uniqueidentifier, NUMBEROFADDONS integer, ADDONTYPECODE tinyint)
insert into @MEMBERSHIPPROGRAMADDONSTABLE
select
ADDON.ID,
ADDONTOTALS.QUANTITY,
ADDON.ADDONTYPECODE
from
dbo.MEMBERSHIP
inner join
dbo.MEMBERSHIPADDON on MEMBERSHIP.ID = MEMBERSHIPADDON.MEMBERSHIPID
left join
dbo.MEMBERSHIPPROGRAM MEMBERSHIPPROGRAM on MEMBERSHIPPROGRAM.ID = MEMBERSHIP.MEMBERSHIPPROGRAMID
left join
dbo.ADDON on ADDON.ID = MEMBERSHIPADDON.ADDONID
cross apply
(
select
MEMBERSHIPADDON.QUANTITY - MEMBERSHIPADDON.NUMCANCELLED as QUANTITY
) ADDONTOTALS
where
MEMBERSHIPADDON.MEMBERSHIPTRANSACTIONID = @LASTTRANSACTIONID and
MEMBERSHIP.ID = @MEMBERSHIPID and
ADDONTOTALS.QUANTITY > 0 and
@CURRENTDATE <= convert(date, MEMBERSHIPADDON.EXPIRATIONDATE)
if exists
(
select
1
from
@MEMBERSHIPPROGRAMADDONSTABLE
where NUMBEROFADDONS > 0
)
begin
set @HASADDONS = 1
select
@NUMBEROFMEMBERADDONS = sum(NUMBEROFADDONS)
from
@MEMBERSHIPPROGRAMADDONSTABLE
where
ADDONTYPECODE = 1
end
select
@NUMBEROFMEMBERS = count(*)
from
dbo.UFN_MEMBERSHIP_GETACTIVEMEMBERS(@ID)
if @MEMBERSHIPLEVELID is null
select
@NUMBEROFCARDSALLOWED = CARDSALLOWED,
@NUMBEROFMEMBERSALLOWED = MEMBERSALLOWED
from
dbo.MEMBERSHIPLEVEL
inner join
dbo.MEMBERSHIP on MEMBERSHIP.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
where
MEMBERSHIP.ID = @MEMBERSHIPID
else
select
@NUMBEROFCARDSALLOWED = CARDSALLOWED,
@NUMBEROFMEMBERSALLOWED = MEMBERSALLOWED
from
dbo.MEMBERSHIPLEVEL
where
MEMBERSHIPLEVEL.ID = @MEMBERSHIPLEVELID
select
@NUMBEROFCARDS = count(MEMBERSHIPCARD.ID)
from
dbo.MEMBERSHIPCARD
inner join
dbo.MEMBER on MEMBER.ID = MEMBERSHIPCARD.MEMBERID
where
MEMBER.MEMBERSHIPID = @MEMBERSHIPID
and MEMBERSHIPCARD.STATUSCODE <> 2
and MEMBER.ISDROPPED = 0
if (@NUMBEROFMEMBERS > @NUMBEROFMEMBERSALLOWED + @NUMBEROFMEMBERADDONS)
set @HASLEVELCONFLICTTOOMANYMEMBERS = 1
if (@NUMBEROFCARDS > @NUMBEROFCARDSALLOWED)
set @HASLEVELCONFLICTTOOMANYCARDS = 1
if @HASLEVELCONFLICTTOOMANYMEMBERS = 1 or @HASLEVELCONFLICTTOOMANYCARDS = 1
set @HASLEVELCONFLICT = 1
return 0;