UFN_ADJUSTMENTHISTORY_GETWRITEOFFDISTRIBUTION_FORADJUSTMENTHISTORYWRITEOFFID

Returns the GL distribution for a write-off adjustment history item.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ADJUSTMENTHISTORYWRITEOFFID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_ADJUSTMENTHISTORY_GETWRITEOFFDISTRIBUTION_FORADJUSTMENTHISTORYWRITEOFFID
            (
                @ADJUSTMENTHISTORYWRITEOFFID uniqueidentifier
            )
            returns @RESULT table
            (
                ID nvarchar(36),
                ADJUSTMENTHISTORYWRITEOFFID uniqueidentifier,
                TYPECODE tinyint,
                TYPE nvarchar(20),
                TRANSACTIONTYPE nvarchar(50),
                ACCOUNT nvarchar(100),
                PROJECT nvarchar(100),
                REFERENCE nvarchar(255),
                AMOUNT money,
                TRANSACTIONAMOUNT money,
                ORGANIZATIONAMOUNT money,
                BASECURRENCYID uniqueidentifier,
                TRANSACTIONCURRENCYID uniqueidentifier
            )
            as
            begin

                declare @WRITEOFFID uniqueidentifier;

                insert into @RESULT(ID, ADJUSTMENTHISTORYWRITEOFFID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
                    select
                        cast(ID as nvarchar(36)),
                        ADJUSTMENTHISTORYWRITEOFFID,
                        TYPECODE,
                        TYPE,
                        TRANSACTIONTYPE,
                        ACCOUNT,
                        PROJECT,
                        REFERENCE,
                        AMOUNT,
                        TRANSACTIONAMOUNT,
                        ORGANIZATIONAMOUNT,
                        BASECURRENCYID,
                        TRANSACTIONCURRENCYID
                    from dbo.ADJUSTMENTHISTORYWRITEOFFDISTRIBUTION
                    where ADJUSTMENTHISTORYWRITEOFFID = @ADJUSTMENTHISTORYWRITEOFFID;

                --If there's only a reversal here, and not an adjustment as well, then we need to include the current GL for this item.

                declare @NEEDSGL bit;
                set @NEEDSGL = 1;
                select
                    @NEEDSGL = case when TYPECODE = 1 then 0 else @NEEDSGL end
                from @RESULT;

                if @NEEDSGL = 1
                begin
                    /*this should be the case for undeleted write-off so find that write-off*/
                    select
                        @WRITEOFFID = WRITEOFFADJUSTMENT.WRITEOFFID
                    from dbo.WRITEOFFADJUSTMENT
                    inner join dbo.ADJUSTMENTHISTORYWRITEOFF on ADJUSTMENTHISTORYWRITEOFF.WRITEOFFADJUSTMENTID = WRITEOFFADJUSTMENT.ID
                    where ADJUSTMENTHISTORYWRITEOFF.ID = @ADJUSTMENTHISTORYWRITEOFFID

                    if not @WRITEOFFID is null /*if we couldn't find the write-off, there's no sense in finding its GL info*/
                        insert into @RESULT(ID, ADJUSTMENTHISTORYWRITEOFFID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
                            select
                                cast(row_number() over (order by AMOUNT) as nvarchar(36)),
                                @ADJUSTMENTHISTORYWRITEOFFID,
                                1,
                                'Adjustment',
                                DEBITCREDIT,
                                ACCOUNT,
                                PROJECT,
                                REFERENCE,
                                AMOUNT,
                                TRANSACTIONAMOUNT,
                                ORGANIZATIONAMOUNT,
                                BASECURRENCYID,
                                TRANSACTIONCURRENCYID
                            from dbo.UFN_REVENUE_GETWRITEOFFGLDISTRIBUTION(@WRITEOFFID);
                end            

                return;
            end