USP_EVENT_VALIDATEGLMAPPINGS

Validates that GL accounts are mapped for an event.

Parameters

Parameter Parameter Type Mode Description
@REGISTRANTID uniqueidentifier IN
@REVENUETRANSACTIONTYPECODE tinyint IN
@PAYMENTMETHODCODE tinyint IN
@SPLITTYPECODE tinyint IN
@APPLICATIONCODE tinyint IN

Definition

Copy


            CREATE procedure dbo.USP_EVENT_VALIDATEGLMAPPINGS
            (
                @REGISTRANTID uniqueidentifier, 
                @REVENUETRANSACTIONTYPECODE tinyint,
                @PAYMENTMETHODCODE tinyint,
                @SPLITTYPECODE tinyint,
                @APPLICATIONCODE tinyint
            )
            as
                set nocount on;

                declare @ERRORMESSAGE nvarchar(max)
                declare @EVENTNAME nvarchar(100);
                declare @MAPPINGID uniqueidentifier;
                declare @ACCOUNTTYPE nvarchar(100);

                if dbo.UFN_GLACCOUNT_EXISTS() = 0
                begin
                -- 1. Validate that the event is mapped

                select top 1 
                    @EVENTNAME = EVENT.NAME
                from 
                    dbo.REGISTRANT
                inner join 
                    dbo.EVENT on REGISTRANT.EVENTID = EVENT.ID
                left join
                    dbo.EVENTGLMAPPING on EVENT.ID = EVENTGLMAPPING.ID
                where 
                    REGISTRANT.ID = @REGISTRANTID
                    and (EVENTGLMAPPING.ACCOUNTNUMBER = '' or EVENTGLMAPPING.ID is null);

                if @EVENTNAME is not null
                begin
                    raiserror('GL account/fund code is not defined for the %s event.', 13, 1, @EVENTNAME);
                    return;
                end

                -- 3. Validate that the payment method revenue type mappings have account types defined for them

                select top 1 
                    @MAPPINGID = MAP.ID
                from 
                    dbo.GLPAYMENTMETHODREVENUETYPEMAPPING AS MAP 
                where 
                    MAP.REVENUETRANSACTIONTYPECODE = @REVENUETRANSACTIONTYPECODE 
                    and MAP.PAYMENTMETHODCODE = @PAYMENTMETHODCODE 
                    and MAP.REVENUESPLITTYPECODE = @SPLITTYPECODE 
                    and MAP.APPLICATIONCODE = @APPLICATIONCODE
                    and MAP.GLACCOUNTTYPEMAPPINGID is null

                if @MAPPINGID is not null
                begin
                    raiserror('Payment method and revenue type of the revenue record does not map to a valid GL account type.', 13, 1);
                    return;
                end

                -- 4. Validate that the account type codes are mapped

                select top 1 
                    @ACCOUNTTYPE = GLACCOUNTTYPEMAPPING.ACCOUNTTYPE
                from 
                    dbo.GLPAYMENTMETHODREVENUETYPEMAPPING AS MAP 
                left join 
                    dbo.GLACCOUNTTYPEMAPPING on MAP.GLACCOUNTTYPEMAPPINGID = GLACCOUNTTYPEMAPPING.ID
                where 
                    MAP.REVENUETRANSACTIONTYPECODE = @REVENUETRANSACTIONTYPECODE 
                    and MAP.PAYMENTMETHODCODE = @PAYMENTMETHODCODE 
                    and MAP.REVENUESPLITTYPECODE = @SPLITTYPECODE 
                    and MAP.APPLICATIONCODE = @APPLICATIONCODE
                    and coalesce(GLACCOUNTTYPEMAPPING.GLCODE, '') = ''

                if @ACCOUNTTYPE is not null
                begin
                    raiserror('GL account code is not defined for the %s account type.', 13, 1, @ACCOUNTTYPE);
                    return;
                end
        end

                return 0;