workdays from date not calculated correctly

Code did not take into effect the number of weekends between diff_date and end_date.  Process needed repeating until no weekends left.