} else {
                             Debug::text('Punch In and Out failed, not saving punch control!', __FILE__, __LINE__, __METHOD__, 10);
                         }
                         if ($commit_punch_transaction == TRUE) {
                             Debug::text('Committing Punch Transaction!', __FILE__, __LINE__, __METHOD__, 10);
                             $pf_in->CommitTransaction();
                         } else {
                             Debug::text('Rolling Back Punch Transaction!', __FILE__, __LINE__, __METHOD__, 10);
                             $pf_in->FailTransaction();
                             $pf_in->CommitTransaction();
                         }
                         unset($pf_in, $pf_out, $pcf);
                     }
                     $profiler->stopTimer("Add Punch");
                 } else {
                     $sf->FailTransaction();
                     $sf->CommitTransaction();
                     Debug::text('Bad or conflicting Schedule: ' . TTDate::getDate('DATE+TIME', $recurring_schedule_shift_start_time), __FILE__, __LINE__, __METHOD__, 10);
                 }
                 $profiler->stopTimer("Add Schedule");
             } else {
                 Debug::text('Recurring Schedule Shift Start Time DOES NOT fall within Limits: ' . TTDate::getDate('DATE+TIME', $recurring_schedule_shift_start_time), __FILE__, __LINE__, __METHOD__, 10);
             }
         }
     }
 } else {
     Debug::text('No Recurring Schedule Days To Add!' . $user_id, __FILE__, __LINE__, __METHOD__, 10);
 }
 //Set timezone back to default before we loop to the next user.
 //Without this the next start/end date will be in the last users timezone
 //and cause schedules to be included.