BusinessDay Function
Table of Contents
Overview
f_BusinessDay function calculates Business Days and Holidays based on Cigna's calendar year.
Stored Procedures
- smart.p11_f_BusinessDay
- (@Today smalldatetime, @BusinessDay int, @Option char(1))
RETURNS smalldatetime
- Returns the variables based on what is set in the stored procedure
- (@Today smalldatetime, @BusinessDay int, @Option char(1))
RETURNS smalldatetime
WeekDay
- Sunday
- Monday
- Tuesday
- Wednesday
- Thursday
- Friday
- Saturday
Example Stored Procedure: smart.p11_Read_IntakeForm
if @Option = 'Rebuttal'
begin
select @RebuttalAllowedDay = Option1 from smart.p11_CodeList where LookupTitle ='RebuttalAllowedDay' and LookupCategory ='RebuttalSetup'
set @FromDate = smart.p11_f_BusinessDay(GetDate(),@RebuttalAllowedDay,'B')
Explanation of code line by line
ALTER function [smart].[p11_f_BusinessDay](@Today smalldatetime, @BusinessDay int, @Option char(1) )
RETURNS smalldatetime
AS
BEGIN
declare @WeekDay int, @Holiday int
set @Today = Convert(Varchar(10), @Today, 101)
if @Option = 'B'
while @BusinessDay > 0
begin
set @WeekDay = datepart(WEEKDAY, @Today)
if @WeekDay not in (1,7) -- 1 and 7 is weekend
set @BusinessDay = @BusinessDay - 1
set @Today = DateAdd(day, -1 ,@Today)
if datepart(weekday, @Today) in (1)
set @Today = DateAdd(day, -1 ,@Today)
--if datepart(weekday, @Today) in (7)
set @Today = DateAdd(day, -1 ,@Today)
select @Holiday = count(1) from smart.p11_Holiday where Holiday = @Today
if @Holiday = 1
set @Today = DateAdd(day, -1 ,@Today)
end
else
while @BusinessDay > 0
begin
set @WeekDay = datepart(weekday, @Today)
if @WeekDay not in (1,7)
set @BusinessDay = @BusinessDay - 1
set @Today = DateAdd(day, 1 ,@Today)
end
Return @Today
END
Tables
Web Pages
Web Pages
User Controls