UFN_BBNC_CALCULATEINSTALLMENTNUMBER

Given a start date, an end date, and a frequency, will compute the number of installments for a pledge.

Return

Return Type
int

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN
@ENDDATE datetime IN
@FREQUENCYCODE tinyint IN

Definition

Copy


            create function dbo.UFN_BBNC_CALCULATEINSTALLMENTNUMBER
            (
                @STARTDATE datetime,
                @ENDDATE datetime,
                @FREQUENCYCODE tinyint
            )
            returns int
            as
            begin
                declare @R int;

                if @STARTDATE is null or @ENDDATE is null or @FREQUENCYCODE is null
                    set @R = -1;
                else if dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE) = dbo.UFN_DATE_GETEARLIESTTIME(@ENDDATE)
                    set @R = 0;
                else if @FREQUENCYCODE = 0 --Annually

                    set @R = datediff(year, @STARTDATE, @ENDDATE);
                else if @FREQUENCYCODE = 2 --Quarterly

                    set @R = datediff(quarter, @STARTDATE, @ENDDATE);
                else if @FREQUENCYCODE = 3 --Monthly 

                    set @R = datediff(month, @STARTDATE, @ENDDATE);
                else if  @FREQUENCYCODE = 9 --Weekly

                    set @R = datediff(week, @STARTDATE, @ENDDATE);
                else 
                    set @R = -1;

                --Add 1 to @R because we can assume that a payment is to be made on the @STARTDATE but datediff() will not count it.

                return @R + 1;
            end