UFN_REVENUE_GENERATEWRITEOFFGLDISTRIBUTION

Generates GL Account Code for write-off from the Account code mappings defined in the system.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_REVENUE_GENERATEWRITEOFFGLDISTRIBUTION(@REVENUEID uniqueidentifier = null)
            returns table 
            as return 
            /*    Getting Pledge Write-off distributions    */
            select distinct
                REVENUE.ID as REVENUEID, 
                SPLIT.ID as REVENUESPLITID, 
                WRITEOFF.ID AS WRITEOFFID, 
                dbo.UFN_POSTTOGLPROCESS_GETGLPAYMENTMETHODREVENUETYPEMAPPINGID(205, REVENUE.TRANSACTIONTYPECODE, REVENUESPLIT.TYPECODE, REVENUESPLIT.APPLICATIONCODE, tf.TRANSACTIONTYPECODE) as GLPAYMENTMETHODREVENUETYPEMAPPINGID,
                tf.TRANSACTIONTYPECODE, 
                case when WRITEOFFADJUSTMENT.ID is null then WRITEOFF.POSTDATE            --if no unposted adjustment then use write-off post date

                     else WRITEOFFADJUSTMENT.POSTDATE
                end AS POSTDATE,     
                case when WRITEOFFADJUSTMENT.ID is null then WRITEOFF.POSTSTATUSCODE            --if no unposted adjustment then use write-off post status code

                     else WRITEOFFADJUSTMENT.POSTSTATUSCODE
                end AS POSTSTATUSCODE,
                tf.ACCOUNTSTRING, 
                tf.PROJECTCODE as PROJECT, 
                SPLIT.AMOUNT as AMOUNT,
                case REVENUE.TRANSACTIONTYPECODE
                    when 1 then dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE (REVENUESPLIT.ID, 'write-off', 'Pledge'
                    when 6 then dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE (REVENUESPLIT.ID, 'write-off', 'Grant award'
                    when 7 then dbo.UFN_POSTTOGLPROCESS_GETJOURNALREFERENCE (REVENUESPLIT.ID, 'write-off', 'Auction donation')
                end as REFERENCE,
                tf.ERRORMESSAGE,
                REVENUEPAYMENTMETHOD.PAYMENTMETHODCODE,
                REVENUE.TRANSACTIONTYPECODE as REVENUETRANSACTIONTYPECODE,
                tf.ACCOUNTID as ACCOUNTID, 
                SPLIT.TRANSACTIONAMOUNT as TRANSACTIONAMOUNT, 
                SPLIT.ORGANIZATIONAMOUNT as ORGANIZATIONAMOUNT, 
                SPLIT.TRANSACTIONCURRENCYID as TRANSACTIONCURRENCYID, 
                SPLIT.BASECURRENCYID as BASECURRENCYID, 
                SPLIT.BASEEXCHANGERATEID as BASEEXCHANGERATEID, 
                SPLIT.ORGANIZATIONEXCHANGERATEID as ORGANIZATIONEXCHANGERATEID,
                convert(varchar(max),tf.MAPPEDVALUES) as MAPPEDVALUES
            from dbo.REVENUE with (nolock)
                inner join dbo.REVENUESPLIT with (nolock) on REVENUE.ID = REVENUESPLIT.REVENUEID
                inner join dbo.REVENUEPAYMENTMETHOD with (nolock) on REVENUE.ID = REVENUEPAYMENTMETHOD.REVENUEID
                inner join dbo.WRITEOFF with (nolock) on REVENUE.ID = WRITEOFF.REVENUEID 
                inner join dbo.WRITEOFFSPLIT as SPLIT with (nolock) on WRITEOFF.ID = SPLIT.WRITEOFFID     
                left join dbo.WRITEOFFADJUSTMENT with (nolock) on WRITEOFF.ID = WRITEOFFADJUSTMENT.WRITEOFFID and WRITEOFFADJUSTMENT.POSTSTATUSCODE <> 0                        
                cross apply dbo.UFN_REVENUE_GENERATEGLACCOUNT(REVENUESPLIT.ID, REVENUE.TRANSACTIONTYPECODE,REVENUESPLIT.TYPECODE, REVENUESPLIT.APPLICATIONCODE, 205, SPLIT.DESIGNATIONID) as tf 
            where    
                (REVENUE.TRANSACTIONTYPECODE in (1,6,7)) -- is a pledge or grant award or auction donation

                and (REVENUE.ID = @REVENUEID or @REVENUEID is NULL)