UFN_APPEAL_GETBENEFITDETAILS_ALL_2

Returns the benefit details associated with an appeal, considering currencies.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@APPEALID uniqueidentifier IN
@GIFTAMOUNT money IN
@TRANSACTIONCURRENCYID uniqueidentifier IN
@BASECURRENCYID uniqueidentifier IN

Definition

Copy


            create function dbo.UFN_APPEAL_GETBENEFITDETAILS_ALL_2
            (
                @APPEALID uniqueidentifier,
                @GIFTAMOUNT money,
                @TRANSACTIONCURRENCYID uniqueidentifier = null,
                @BASECURRENCYID uniqueidentifier = null
            )
            returns @RESULT table
            (
                ID uniqueidentifier, 
                BENEFITID uniqueidentifier,
                VALUE money,
                QUANTITY int,
                SEQUENCE int,
                VALUEPERCENT int,
                USEPERCENT bit,
                BASECURRENCYID uniqueidentifier
            )
            as
            begin

                declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                if @TRANSACTIONCURRENCYID is null
                    set @TRANSACTIONCURRENCYID = @ORGANIZATIONCURRENCYID;

                if @BASECURRENCYID is null
                    set @BASECURRENCYID = @ORGANIZATIONCURRENCYID;

                declare @APPEALBENEFITID uniqueidentifier; 
                set @APPEALBENEFITID = null;

                select top 1
                    @APPEALBENEFITID = ID 
                from dbo.APPEALBENEFIT 
                where
                    APPEALID = @APPEALID and
                    dbo.UFN_APPEALBENEFIT_GETAMOUNTINCURRENCY(ID, @TRANSACTIONCURRENCYID) <= @GIFTAMOUNT
                order by AMOUNT desc;

                if not @APPEALBENEFITID is null
                    insert into @RESULT
                        select
                            APPEALBENEFITDETAIL.ID,
                            APPEALBENEFITDETAIL.BENEFITID,
                            APPEALBENEFITDETAIL.VALUE,
                            APPEALBENEFITDETAIL.QUANTITY,
                            APPEALBENEFITDETAIL.SEQUENCE,
                            APPEALBENEFITDETAIL.VALUEPERCENT,
                            BENEFIT.USEPERCENT,
                            APPEALBENEFITDETAIL.BASECURRENCYID
                        from dbo.APPEALBENEFITDETAIL
                            inner join dbo.BENEFIT on APPEALBENEFITDETAIL.BENEFITID = BENEFIT.ID
                        where APPEALBENEFITID = @APPEALBENEFITID and
                            APPEALBENEFITDETAIL.BASECURRENCYID = @BASECURRENCYID;

                return;
            end