function createPayPeriodSchedule($type, $start_dow, $transaction_dow, $primary_dom, $secondary_dom, $primary_transaction_dom, $secondary_transaction_dom, $transaction_bd, $day_start_time = '00:00') { $ppsf = new PayPeriodScheduleFactory(); $ppsf->setCompany($this->company_id); Debug::text('zzzCompany ID: ' . $this->company_id, __FILE__, __LINE__, __METHOD__, 10); $ppsf->setName('test_' . rand(1000, 99999)); $ppsf->setDescription('test'); /* 20 => 'Bi-Weekly', 30 => 'Semi-Monthly', 40 => 'Monthly + Advance' */ $ppsf->setType($type); $day_start_time = TTDate::parseTimeUnit($day_start_time); Debug::text('parsed Day Start Time: ' . $day_start_time, __FILE__, __LINE__, __METHOD__, 10); $ppsf->setDayStartTime($day_start_time); if ($type == 10 or $type == 20) { $ppsf->setStartDayOfWeek($start_dow); $ppsf->setTransactionDate($transaction_dow); } elseif ($type == 30) { $ppsf->setPrimaryDayOfMonth($primary_dom); $ppsf->setSecondaryDayOfMonth($secondary_dom); $ppsf->setPrimaryTransactionDayOfMonth($primary_transaction_dom); $ppsf->setSecondaryTransactionDayOfMonth($secondary_transaction_dom); } elseif ($type == 50) { $ppsf->setPrimaryDayOfMonth($primary_dom); $ppsf->setPrimaryTransactionDayOfMonth($primary_transaction_dom); } $ppsf->setTransactionDateBusinessDay((bool) $transaction_bd); $ppsf->setTimeZone('PST8PDT'); $ppsf->setEnableInitialPayPeriods(FALSE); if ($ppsf->isValid()) { $pp_schedule_id = $ppsf->Save(); $ppslf = new PayPeriodScheduleListFactory(); $ret_obj = $ppslf->getById($pp_schedule_id)->getCurrent(); return $ret_obj; } return FALSE; }
function createPayPeriodSchedule($shift_assigned_day = 10) { $ppsf = new PayPeriodScheduleFactory(); $ppsf->setCompany($this->company_id); //$ppsf->setName( 'Bi-Weekly'.rand(1000,9999) ); $ppsf->setName('Bi-Weekly'); $ppsf->setDescription('Pay every two weeks'); $ppsf->setType(20); $ppsf->setStartWeekDay(0); $anchor_date = TTDate::getBeginWeekEpoch(TTDate::getBeginYearEpoch(time()) - 86400 * (7 * 6)); //Start 6 weeks ago $ppsf->setAnchorDate($anchor_date); $ppsf->setStartDayOfWeek(TTDate::getDayOfWeek($anchor_date)); $ppsf->setTransactionDate(7); $ppsf->setTransactionDateBusinessDay(TRUE); $ppsf->setTimeZone('PST8PDT'); $ppsf->setDayStartTime(0); $ppsf->setNewDayTriggerTime(4 * 3600); $ppsf->setMaximumShiftTime(16 * 3600); $ppsf->setShiftAssignedDay($shift_assigned_day); $ppsf->setEnableInitialPayPeriods(FALSE); if ($ppsf->isValid()) { $insert_id = $ppsf->Save(FALSE); Debug::Text('Pay Period Schedule ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10); $ppsf->setUser(array($this->user_id)); $ppsf->Save(); $this->pay_period_schedule_id = $insert_id; return $insert_id; } Debug::Text('Failed Creating Pay Period Schedule!', __FILE__, __LINE__, __METHOD__, 10); return FALSE; }
$ppsf->setPrimaryTransactionDayOfMonth($pay_period_schedule_data['primary_transaction_day_of_month']); $ppsf->setSecondaryTransactionDayOfMonth($pay_period_schedule_data['secondary_transaction_day_of_month']); } elseif ($pay_period_schedule_data['type'] == 50) { $ppsf->setPrimaryDayOfMonth($pay_period_schedule_data['primary_day_of_month']); $ppsf->setPrimaryTransactionDayOfMonth($pay_period_schedule_data['primary_transaction_day_of_month']); } if (isset($pay_period_schedule_data['anchor_date'])) { $ppsf->setAnchorDate($pay_period_schedule_data['anchor_date']); } $ppsf->setTransactionDateBusinessDay($pay_period_schedule_data['transaction_date_bd']); if (isset($pay_period_schedule_data['day_start_time'])) { $ppsf->setDayStartTime($pay_period_schedule_data['day_start_time']); } else { $ppsf->setDayStartTime(0); } $ppsf->setTimeZone($pay_period_schedule_data['time_zone']); $ppsf->setNewDayTriggerTime($pay_period_schedule_data['new_day_trigger_time']); $ppsf->setMaximumShiftTime($pay_period_schedule_data['maximum_shift_time']); $ppsf->setShiftAssignedDay($pay_period_schedule_data['shift_assigned_day_id']); $ppsf->setTimeSheetVerifyBeforeEndDate($pay_period_schedule_data['timesheet_verify_before_end_date']); $ppsf->setTimeSheetVerifyBeforeTransactionDate($pay_period_schedule_data['timesheet_verify_before_transaction_date']); if (isset($pay_period_schedule_data['user_ids'])) { $ppsf->setUser($pay_period_schedule_data['user_ids']); } if ($ppsf->isValid()) { //Pay Period schedule has to be saved before users can be assigned to it, so //do it this way. $ppsf->Save(FALSE); $ppsf->setEnableInitialPayPeriods(FALSE); if (isset($pay_period_schedule_data['user_ids'])) { $ppsf->setUser($pay_period_schedule_data['user_ids']);