UFN_DELIVERYMETHOD_VALIDFORDATETIME

REPLACE_WITH_DESCRIPTION

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@DELIVERYMETHODID uniqueidentifier IN
@EVENTDATETIME datetime IN

Definition

Copy


create function dbo.UFN_DELIVERYMETHOD_VALIDFORDATETIME
(
    @DELIVERYMETHODID uniqueidentifier,
    @EVENTDATETIME datetime
)
returns bit
with execute as caller
as begin

    declare @ISOKAY bit;
    set @ISOKAY = 0;

    declare @BLOCKDELIVERY bit;
    declare @TIMEVALUE smallint;
    declare @TIMEUNIT tinyint;

    select
        @BLOCKDELIVERY = BLOCKDELIVERY,
        @TIMEVALUE = BLOCKTIMEVALUE,
        @TIMEUNIT = BLOCKTIMEUNITCODE
    from
        dbo.DELIVERYMETHOD
    where
        ID = @DELIVERYMETHODID;

    if @BLOCKDELIVERY = 0
    begin
        set @ISOKAY = 1;
    end
    else
    begin
        declare @CALCULATEDBLOCKDATETIME datetime;

        set @CALCULATEDBLOCKDATETIME = case @TIMEUNIT
            when 0 then dateadd(hh, @TIMEVALUE, getdate())
            when 1 then dateadd(dd, @TIMEVALUE, getdate())
        end

        set @ISOKAY = case
            when @CALCULATEDBLOCKDATETIME < @EVENTDATETIME then 1
            else 0
        end
    end

    return @ISOKAY;
end