UFN_AUCTIONITEMPURCHASE_VALIDATEPPURCHASEEXCHANGERATE

Validates that the exchange rate information on an auction item donation is set correctly before purchasing that item.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@ITEMID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_AUCTIONITEMPURCHASE_VALIDATEPPURCHASEEXCHANGERATE
            (
                @ITEMID uniqueidentifier 
            )
            returns bit
            as
            begin
                declare @R bit = 1;

                declare @MULTICURRENCY bit = 0;
                declare @EXCHANGERATEERROR bit = 0;

                if (select dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION(N'Multicurrency')) = 1 
                    set @MULTICURRENCY = 1;

                if not @MULTICURRENCY = 1 
                    return @R

                declare @ISPACKAGE bit = 0;
                select @ISPACKAGE = 1 
                from dbo.AUCTIONITEM 
                where AUCTIONITEM.ID = @ITEMID and AUCTIONITEM.TYPECODE = 1;

                if @ISPACKAGE = 1 
                begin
                    if (
                            select count (*) from dbo.AUCTIONITEM 
                            where AUCTIONITEM.PACKAGEID = @ITEMID 
                                and @MULTICURRENCY = 1 
                                and (AUCTIONITEM.BASECURRENCYID <> AUCTIONITEM.TRANSACTIONCURRENCYID and AUCTIONITEM.BASEEXCHANGERATEID is null)
                        ) > 0 
                        set @EXCHANGERATEERROR = 1;
                    else
                        set @EXCHANGERATEERROR = 0;

                    if @EXCHANGERATEERROR = 1 
                        set @R = 0
                    else
                        set @R = 1;
                end
                else
                begin
                    select
                        @EXCHANGERATEERROR = 
                            case when @MULTICURRENCY = 1 and 
                                    (AUCTIONITEM.BASECURRENCYID <> AUCTIONITEM.TRANSACTIONCURRENCYID and AUCTIONITEM.BASEEXCHANGERATEID is null)
                                then 1
                                else 0 
                            end 
                    from dbo.AUCTIONITEM 
                    where AUCTIONITEM.ID = @ITEMID;

                    if @EXCHANGERATEERROR = 1 
                        set @R = 0
                    else
                        set @R = 1;
                end

                return @R;
            end