UFN_CHARGE_GETDEFAULTDUEDATE

Returns the charge default due date

Return

Return Type
date

Parameters

Parameter Parameter Type Mode Description
@CHARGEDATE date IN

Definition

Copy


CREATE function dbo.UFN_CHARGE_GETDEFAULTDUEDATE
(
    @CHARGEDATE date
)
returns date
with execute as caller
as begin
    declare @DUEDATE date    
    declare @DEFAULTDUEDATE bit
    declare @DEFAULTTYPECODE tinyint
    declare @NUMBEROFDAYS int
    declare @SPECIFIEDDAY int
    declare @SPECIFIEDMONTHCODE tinyint

    if not @CHARGEDATE is null
    begin
        select @DEFAULTDUEDATE=DEFAULTDUEDATE, @DEFAULTTYPECODE=DEFAULTTYPECODE, @NUMBEROFDAYS=NUMBEROFDAYS, @SPECIFIEDDAY=SPECIFIEDDAY, @SPECIFIEDMONTHCODE=SPECIFIEDMONTHCODE from dbo.CHARGEDEFAULTS

        if @DEFAULTDUEDATE=1
        begin
            if @DEFAULTTYPECODE=0
            begin
                Set @DUEDATE=DATEADD("day", @NUMBEROFDAYS, @CHARGEDATE)
            end

            if @DEFAULTTYPECODE=1
            begin
                if @SPECIFIEDDAY=29
                begin
                    set @DUEDATE=DATEADD("month", 1, @CHARGEDATE)    
                    if @SPECIFIEDMONTHCODE<>0
                        set @DUEDATE=DATEADD("month", 1, @DUEDATE)    
                    set @DUEDATE=DATEADD("day", - DAY(@CHARGEDATE), @DUEDATE)                    
                end
                else
                begin
                    set @DUEDATE=DATEADD("day", @SPECIFIEDDAY - DAY(@CHARGEDATE), @CHARGEDATE)
                    if @SPECIFIEDMONTHCODE<>0
                        set @DUEDATE=DATEADD("month", 1, @DUEDATE)    
                end                                
            end

            if @DEFAULTTYPECODE=2
            begin
                Set @DUEDATE=DATEADD("month", 1, @CHARGEDATE)
            end

        end
    end

    return @DUEDATE
end