UFN_MKTASKLADDER_VALUEITEM

Returns an ask ladder value for a given sequence (1 - 5), based on an entry amount and an ask ladder ID.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@SEQUENCE int IN
@ASKLADDERID uniqueidentifier IN
@ENTRYAMOUNT money IN

Definition

Copy


CREATE function dbo.[UFN_MKTASKLADDER_VALUEITEM]
(
  @SEQUENCE int,
  @ASKLADDERID uniqueidentifier,
  @ENTRYAMOUNT money
)
returns money
as 
  begin
    declare @ASK money;

    if @ASKLADDERID is null
      set @ASK = null
    else 
      begin
        set @ASK = 0;

        set @ENTRYAMOUNT = dbo.[UFN_MKTASKLADDER_FIXENTRYAMOUNT](@ASKLADDERID, @ENTRYAMOUNT);

        if @ENTRYAMOUNT is null
          set @ASK = null
        else
          begin
            if @SEQUENCE = 1
              select @ASK = dbo.[UFN_MKTASKLADDER_CALCVALUE]([TYPECODE], @ENTRYAMOUNT, [ITEMVALUE1], [ROUNDTOAMOUNT], [MINIMUMENTRYAMOUNT]) from dbo.[MKTASKLADDERITEM] where [ASKLADDERID] = @ASKLADDERID and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001);
            else if @SEQUENCE = 2
              select @ASK = dbo.[UFN_MKTASKLADDER_CALCVALUE]([TYPECODE], @ENTRYAMOUNT, [ITEMVALUE2], [ROUNDTOAMOUNT], [MINIMUMENTRYAMOUNT]) from dbo.[MKTASKLADDERITEM] where [ASKLADDERID] = @ASKLADDERID and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001);
            else if @SEQUENCE = 3
              select @ASK = dbo.[UFN_MKTASKLADDER_CALCVALUE]([TYPECODE], @ENTRYAMOUNT, [ITEMVALUE3], [ROUNDTOAMOUNT], [MINIMUMENTRYAMOUNT]) from dbo.[MKTASKLADDERITEM] where [ASKLADDERID] = @ASKLADDERID and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001);
            else if @SEQUENCE = 4
              select @ASK = dbo.[UFN_MKTASKLADDER_CALCVALUE]([TYPECODE], @ENTRYAMOUNT, [ITEMVALUE4], [ROUNDTOAMOUNT], [MINIMUMENTRYAMOUNT]) from dbo.[MKTASKLADDERITEM] where [ASKLADDERID] = @ASKLADDERID and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001);
            else if @SEQUENCE = 5
              select @ASK = dbo.[UFN_MKTASKLADDER_CALCVALUE]([TYPECODE], @ENTRYAMOUNT, [ITEMVALUE5], [ROUNDTOAMOUNT], [MINIMUMENTRYAMOUNT]) from dbo.[MKTASKLADDERITEM] where [ASKLADDERID] = @ASKLADDERID and @ENTRYAMOUNT between [MINIMUMENTRYAMOUNT] and ([NEXTMINIMUMENTRYAMOUNT] - .0001);
         end
      end

    return @ASK
  end