UFN_CREDIT_GENERATEDISCOUNTGLDISTRIBUTION
Returns the GL distributions for a discount.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CREDITID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_CREDIT_GENERATEDISCOUNTGLDISTRIBUTION(@CREDITID uniqueidentifier)
returns table
as return
/* Getting Discount distributions */
--Rewrote this function to use a CTE because it allows SQL to make a better execution plan that is based only on the discount
-- line items instead of ALL the line items.
WITH LI_CTE as (
select distinct FINANCIALTRANSACTION.ID as REVENUEID,
CREDITITEM.ID as CREDITITEMID,
CREDITITEM.CREDITID as CREDITID,
CREDITITEM_LI.POSTDATE as POSTDATE,
case CREDITITEM_LI.POSTSTATUSCODE when 2 then 0 when 3 then 2 else 1 end as POSTSTATUSCODE,
((CREDITITEM_LI.QUANTITY * CREDITITEM_LI.UNITVALUE) - CREDITITEM.DISCOUNTS) as AMOUNT,
REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
FINANCIALTRANSACTION.TYPECODE as REVENUETRANSACTIONTYPECODE,
FINANCIALTRANSACTIONLINEITEM.ID LIID,
REVENUESPLIT_EXT.TYPECODE,
REVENUESPLIT_EXT.APPLICATIONCODE
from dbo.CREDITITEM_EXT CREDITITEM
inner join dbo.FINANCIALTRANSACTIONLINEITEM CREDITITEM_LI on CREDITITEM_LI.ID = CREDITITEM.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on CREDITITEM_LI.SOURCELINEITEMID = FINANCIALTRANSACTIONLINEITEM.ID
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
inner join dbo.REVENUEPAYMENTMETHOD on FINANCIALTRANSACTION.ID = REVENUEPAYMENTMETHOD.REVENUEID
where CREDITITEM.CREDITID = @CREDITID)
select
T.REVENUEID
,T.CREDITITEMID
,T.CREDITID
,dbo.UFN_POSTTOGLPROCESS_GETGLPAYMENTMETHODREVENUETYPEMAPPINGID(99, T.REVENUETRANSACTIONTYPECODE, T.TYPECODE, T.APPLICATIONCODE, tf.TRANSACTIONTYPECODE) as GLPAYMENTMETHODREVENUETYPEMAPPINGID
,tf.TRANSACTIONTYPECODE
,T.POSTDATE
,T.POSTSTATUSCODE
,tf.ACCOUNTSTRING
,tf.PROJECTCODE as PROJECT
,T.AMOUNT
,tf.ERRORMESSAGE
,T.PAYMENTMETHODCODE
,T.REVENUETRANSACTIONTYPECODE
,tf.ACCOUNTID as ACCOUNTID
,convert(varchar(max),tf.MAPPEDVALUES) as MAPPEDVALUES
from LI_CTE T
cross apply dbo.UFN_REVENUE_GENERATEGLACCOUNT(T.LIID, T.REVENUETRANSACTIONTYPECODE,T.TYPECODE, T.APPLICATIONCODE, 99, null) as tf