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;