UFN_MEMBERSHIP_GETLEVELBYDATE
Returns the membership level for the given time.
Return
| Return Type | 
|---|
| uniqueidentifier | 
Parameters
| Parameter | Parameter Type | Mode | Description | 
|---|---|---|---|
| @MEMBERSHIPID | uniqueidentifier | IN | |
| @DATE | datetime | IN | 
Definition
 Copy 
                                    
            CREATE function dbo.UFN_MEMBERSHIP_GETLEVELBYDATE
            (
                @MEMBERSHIPID uniqueidentifier,
                @DATE datetime = null
            )
            returns uniqueidentifier
            as begin
                declare @MEMBERSHIPLEVELID uniqueidentifier = null;
                select top (1) @MEMBERSHIPLEVELID = 
                    case 
                        when [ACTIONCODE] = 4 then --If the latest transaction was dropped
                            null
                        when [MEMBERSHIPTRANSACTION].[EXPIRATIONDATE] <= @DATE then  --If the latest transaction had expired
                            null
                        else
                            [MEMBERSHIPLEVELID]
                    end
                from dbo.[MEMBERSHIPTRANSACTION]
                where [MEMBERSHIPTRANSACTION].[TRANSACTIONDATE] <= @DATE
                and [MEMBERSHIPTRANSACTION].[MEMBERSHIPID] = @MEMBERSHIPID
                order by [MEMBERSHIPTRANSACTION].[TRANSACTIONDATE] desc;
                return @MEMBERSHIPLEVELID;
            end