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