Guess will just post my version maybe will be of some help to someone else.
CREATE FUNCTION [dbo].[weekday_dateadd] ( @startDate SMALLDATETIME, @Days INT, @SkipHoliday BIT = 1, @DayOnly BIT = 1 )
RETURNS SMALLDATETIME
AS
BEGIN
/*
Title: weekday_dateadd(2)
Author: Mark Wolff
Date: 11/18/2010
Purpose: Adds a specified number of weekdays to a given date allowing to SkipHolidays also
Examples:
SELECT dbo.weekday_dateadd(GETDATE(),90,DEFAULT,DEFAULT)
SELECT dbo.weekday_dateadd(GETDATE(),10,DEFAULT,0)
NOTE: Will not work past a few years
*/
DECLARE @endDate SMALLDATETIME
SELECT @endDate = date
FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY date) Sequence
,CASE WHEN @DayOnly = 1 THEN Date ELSE Date + CONVERT(VARCHAR,@startDate,108) END Date
FROM dim_Date(NOLOCK)
WHERE DAYOFWEEK NOT IN ('Saturday','Sunday')
AND (CASE WHEN @SkipHoliday = 1 AND HolidayText IS NOT NULL THEN 0 ELSE 1 END) = 1
AND Date BETWEEN @startDate-1 AND DATEADD(d,@Days+@Days/7*3+20,@startDate)
)d
WHERE Sequence = @Days
RETURN @endDate
END
Did some basic testing seems to work 😛