//Limit it to 31 days.
 if ($data['repeat'] > 31) {
     $data['repeat'] = 31;
 }
 Debug::Text('Repeating Punch For: ' . $data['repeat'] . ' Days', __FILE__, __LINE__, __METHOD__, 10);
 for ($i = 0; $i <= (int) $data['repeat']; $i++) {
     Debug::Text('Punch Repeat: ' . $i, __FILE__, __LINE__, __METHOD__, 10);
     if ($i == 0) {
         $date_stamp = $data['date_stamp'];
     } else {
         $date_stamp = $data['date_stamp'] + 86400 * $i;
     }
     Debug::Text('Date Stamp: ' . TTDate::getDate('DATE', $date_stamp), __FILE__, __LINE__, __METHOD__, 10);
     $sf = new ScheduleFactory();
     if ($i == 0) {
         $sf->setID($data['id']);
     }
     //$sf->setUserDateId( UserDateFactory::findOrInsertUserDate($data['user_id'], $date_stamp) );
     $sf->setUserDate($data['user_id'], $date_stamp);
     $sf->setStatus($data['status_id']);
     $sf->setSchedulePolicyID($data['schedule_policy_id']);
     $sf->setAbsencePolicyID($data['absence_policy_id']);
     $sf->setBranch($data['branch_id']);
     $sf->setDepartment($data['department_id']);
     if (isset($data['job_id'])) {
         $sf->setJob($data['job_id']);
     }
     if (isset($data['job_item_id'])) {
         $sf->setJobItem($data['job_item_id']);
     }
     if ($data['start_time'] != '') {