UFN_REVENUE_GENERATEPLEDGEWRITEOFFGLDISTRIBUTION
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@WRITEOFFIDTABLE | UDT_GENERICID | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_GENERATEPLEDGEWRITEOFFGLDISTRIBUTION
(
@REVENUEID uniqueidentifier ,
@WRITEOFFIDTABLE UDT_GENERICID readonly
)
returns table
as return
select distinct
WRITEOFF_EXT.ID AS WRITEOFFID,
WRITEOFFLINEITEM.ID as WRITEOFFLINEITEMID,
dbo.UFN_POSTTOGLPROCESS_GETGLPAYMENTMETHODREVENUETYPEMAPPINGID(205, PLEDGE.TYPECODE, WRITEOFFLINEITEM_EXT.TYPECODE, WRITEOFFLINEITEM_EXT.APPLICATIONCODE, tf.TRANSACTIONTYPECODE) as GLPAYMENTMETHODREVENUETYPEMAPPINGID,
tf.TRANSACTIONTYPECODE,
case
when WRITEOFFADJUSTMENT.ID is null then WRITEOFFLINEITEM.POSTDATE --if no unposted adjustment then use write-off post date
else WRITEOFFADJUSTMENT.POSTDATE
end AS POSTDATE,
case
when WRITEOFFADJUSTMENT.ID is null then WRITEOFFLINEITEM.POSTSTATUSCODE --if no unposted adjustment then use write-off post status code
else WRITEOFFADJUSTMENT.POSTSTATUSCODE
end AS POSTSTATUSCODE,
tf.ACCOUNTSTRING,
tf.PROJECTCODE as PROJECT,
WRITEOFFLINEITEM.BASEAMOUNT as AMOUNT,
case PLEDGE.TYPECODE
when 1 then dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE (WRITEOFFLINEITEM.SOURCELINEITEMID, 'write-off', 'Pledge')
when 15 then dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE (WRITEOFFLINEITEM.SOURCELINEITEMID, 'write-off', 'Membership installment plan')
end as REFERENCE,
tf.ERRORMESSAGE,
REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
PLEDGE.TYPECODE as REVENUETRANSACTIONTYPECODE,
tf.ACCOUNTID as ACCOUNTID,
WRITEOFFLINEITEM.TRANSACTIONAMOUNT as TRANSACTIONAMOUNT,
WRITEOFFLINEITEM.ORGAMOUNT as ORGANIZATIONAMOUNT,
WRITEOFF.TRANSACTIONCURRENCYID as TRANSACTIONCURRENCYID,
V_BASECURRENCYFORFINANCIALTRANSACTION_I.BASECURRENCYID,
WRITEOFF.BASEEXCHANGERATEID as BASEEXCHANGERATEID,
WRITEOFF.ORGEXCHANGERATEID as ORGANIZATIONEXCHANGERATEID,
convert(varchar(max),tf.MAPPEDVALUES) as MAPPEDVALUES
from @WRITEOFFIDTABLE WRITEOFFIDTABLE
inner join dbo.WRITEOFF_EXT on WRITEOFFIDTABLE.ID = WRITEOFF_EXT.ID
inner join dbo.FINANCIALTRANSACTION WRITEOFF on WRITEOFF_EXT.ID = WRITEOFF.ID
inner join dbo.FINANCIALTRANSACTION as PLEDGE on WRITEOFF.PARENTID = PLEDGE.ID
inner join dbo.REVENUEPAYMENTMETHOD on REVENUEPAYMENTMETHOD.REVENUEID = PLEDGE.ID
left join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I with (noexpand) on V_BASECURRENCYFORFINANCIALTRANSACTION_I.FINANCIALTRANSACTIONID = PLEDGE.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM WRITEOFFLINEITEM on WRITEOFFLINEITEM.FINANCIALTRANSACTIONID = WRITEOFF.ID
inner join dbo.REVENUESPLIT_EXT WRITEOFFLINEITEM_EXT on WRITEOFFLINEITEM.ID = WRITEOFFLINEITEM_EXT.ID
left join dbo.WRITEOFFADJUSTMENT on WRITEOFF_EXT.ID = WRITEOFFADJUSTMENT.WRITEOFFID and WRITEOFFADJUSTMENT.POSTSTATUSCODE <> 0
cross apply dbo.UFN_REVENUE_GENERATEGLACCOUNT_PLEDGEWRITEOFF (
dbo.UFN_REVENUEINFORMATION_TOITEMLISTXML(PLEDGE.ID, 0, null),
dbo.UFN_REVENUESPLITINFORMATION_TOITEMLISTXML(PLEDGE.ID, WRITEOFFLINEITEM.SOURCELINEITEMID, 0, null),
WRITEOFF_EXT.REASONCODEID
) tf
where
PLEDGE.DELETEDON is null and
WRITEOFFLINEITEM.DELETEDON is null and
PLEDGE.ID = @REVENUEID