UFN_ADJUSTMENTHISTORY_GETGIFTINKINDDISTRIBUTION_FORADJUSTMENTHISTORYGIFTINKINDID

Returns the GL distribution for a sold gift-in-kind adjustment history item.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ADJUSTMENTHISTORYGIFTINKINDID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_ADJUSTMENTHISTORY_GETGIFTINKINDDISTRIBUTION_FORADJUSTMENTHISTORYGIFTINKINDID
            (
                @ADJUSTMENTHISTORYGIFTINKINDID uniqueidentifier
            )
            returns @RESULT table
            (
                ID nvarchar(36),
                ADJUSTMENTHISTORYGIFTINKINDID 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 @GIFTINKINDSALEID uniqueidentifier;

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

                --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
                    declare @GIFTINKINDPAYMENTMETHODDETAILID uniqueidentifier

                    /*this should be the case for undeleted sold-gift-in-kind so find that sold-gift-in-kind*/
                        select
                            @GIFTINKINDSALEID = GIFTINKINDSALEADJUSTMENT.GIFTINKINDSALEID,
                            @GIFTINKINDPAYMENTMETHODDETAILID = GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID
                        from dbo.GIFTINKINDSALEADJUSTMENT
                        inner join dbo.ADJUSTMENTHISTORYGIFTINKIND on ADJUSTMENTHISTORYGIFTINKIND.GIFTINKINDSALEADJUSTMENTID = GIFTINKINDSALEADJUSTMENT.ID
                        inner join dbo.GIFTINKINDSALE on GIFTINKINDSALEADJUSTMENT.GIFTINKINDSALEID = GIFTINKINDSALE.ID
                        where ADJUSTMENTHISTORYGIFTINKIND.ID = @ADJUSTMENTHISTORYGIFTINKINDID

                    if not @GIFTINKINDSALEID is null /*if we couldn't find the gift-in-kind detail, there's no sense in finding its GL info*/
                        insert into @RESULT(ID, ADJUSTMENTHISTORYGIFTINKINDID, TYPECODE, TYPE, TRANSACTIONTYPE, ACCOUNT, PROJECT, REFERENCE, AMOUNT, TRANSACTIONAMOUNT, ORGANIZATIONAMOUNT, BASECURRENCYID, TRANSACTIONCURRENCYID)
                            select
                                cast(row_number() over (order by AMOUNT) as nvarchar(36)),
                                @ADJUSTMENTHISTORYGIFTINKINDID,
                                1,
                                'Adjustment',
                                DEBITCREDIT,
                                ACCOUNT,
                                PROJECT,
                                REFERENCE,
                                AMOUNT,
                                TRANSACTIONAMOUNT,
                                ORGANIZATIONAMOUNT,
                                BASECURRENCYID,
                                TRANSACTIONCURRENCYID
                            from dbo.UFN_REVENUE_GETGIFTINKINDPAYMENTMETHODDETAILGLDISTRIBUTION(@GIFTINKINDPAYMENTMETHODDETAILID)
                            where GIFTINKINDSALEID = @GIFTINKINDSALEID;
                end
                return;
            end