function createPayPeriodSchedule($company_id, $user_ids)
 {
     $ppsf = new PayPeriodScheduleFactory();
     $ppsf->setCompany($company_id);
     $ppsf->setName('Bi-Weekly');
     $ppsf->setDescription('Pay every two weeks');
     $ppsf->setType(20);
     $ppsf->setStartWeekDay(0);
     //$anchor_date = TTDate::getBeginWeekEpoch( (time()-(86400*42)) ); //Start 6 weeks ago
     $anchor_date = TTDate::getBeginWeekEpoch(time() - 86400 * 14);
     //Start 6 weeks ago
     $ppsf->setAnchorDate($anchor_date);
     $ppsf->setStartDayOfWeek(TTDate::getDayOfWeek($anchor_date));
     $ppsf->setTransactionDate(7);
     $ppsf->setTransactionDateBusinessDay(TRUE);
     /*
     $ppsf->setPrimaryDate( ($anchor_date+(86400*14)) );
     $ppsf->setPrimaryDateLastDayOfMonth( FALSE );
     $ppsf->setPrimaryTransactionDate( ($anchor_date+(86400*21)) );
     $ppsf->setPrimaryTransactionDateLastDayOfMonth( FALSE );
     $ppsf->setPrimaryTransactionDateBusinessDay( TRUE );
     
     $ppsf->setSecondaryDate( ($anchor_date+(86400*28)) );
     $ppsf->setSecondaryDateLastDayOfMonth( FALSE );
     $ppsf->setSecondaryTransactionDate( ($anchor_date+(86400*35))  );
     $ppsf->setSecondaryTransactionDateLastDayOfMonth( FALSE );
     $ppsf->setSecondaryTransactionDateBusinessDay( TRUE );
     */
     $ppsf->setDayStartTime(0);
     $ppsf->setShiftAssignedDay(10);
     //Day the shift starts on.
     $ppsf->setNewDayTriggerTime(4 * 3600);
     $ppsf->setMaximumShiftTime(16 * 3600);
     if ($ppsf->isValid()) {
         $insert_id = $ppsf->Save(FALSE);
         Debug::Text('Pay Period Schedule ID: ' . $insert_id, __FILE__, __LINE__, __METHOD__, 10);
         //Dont create pay periods twice.
         $ppsf->setEnableInitialPayPeriods(FALSE);
         $ppsf->setUser($user_ids);
         $ppsf->Save();
         return $insert_id;
     }
     Debug::Text('Failed Creating Pay Period Schedule!', __FILE__, __LINE__, __METHOD__, 10);
     return FALSE;
 }
 function createPayPeriodSchedule()
 {
     $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());
     //Start 6 weeks ago
     $ppsf->setAnchorDate($anchor_date);
     $ppsf->setStartDayOfWeek(TTDate::getDayOfWeek($anchor_date));
     $ppsf->setTransactionDate(7);
     $ppsf->setTransactionDateBusinessDay(TRUE);
     $ppsf->setDayStartTime(0);
     $ppsf->setNewDayTriggerTime(4 * 3600);
     $ppsf->setMaximumShiftTime(16 * 3600);
     $ppsf->setShiftAssignedDay(10);
     //$ppsf->setContinuousTime( (4*3600) );
     $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;
 }
 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;
 }
Example #4
0
 function createPayPeriodSchedule()
 {
     $ppsf = new PayPeriodScheduleFactory();
     $ppsf->setCompany($this->company_id);
     $ppsf->setName('Semi-Monthly');
     $ppsf->setDescription('');
     $ppsf->setType(30);
     $ppsf->setStartWeekDay(0);
     $anchor_date = TTDate::getBeginWeekEpoch(TTDate::getBeginYearEpoch(time()) - 86400 * (7 * 6));
     //Start 6 weeks ago
     $ppsf->setAnchorDate($anchor_date);
     $ppsf->setPrimaryDayOfMonth(1);
     $ppsf->setSecondaryDayOfMonth(16);
     $ppsf->setPrimaryTransactionDayOfMonth(20);
     $ppsf->setSecondaryTransactionDayOfMonth(5);
     $ppsf->setTransactionDateBusinessDay(TRUE);
     $ppsf->setTimeZone('PST8PDT');
     $ppsf->setDayStartTime(0);
     $ppsf->setNewDayTriggerTime(4 * 3600);
     $ppsf->setMaximumShiftTime(16 * 3600);
     $ppsf->setShiftAssignedDay(10);
     $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->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']);
         } else {
             $ppsf->setUser(array());
         }
         if ($ppsf->isValid()) {
             $ppsf->Save(TRUE);
             //$ppsf->FailTransaction();
             $ppsf->CommitTransaction();
             Redirect::Page(URLBuilder::getURL(NULL, 'PayPeriodScheduleList.php'));
             break;
         }
     }
     $ppsf->FailTransaction();
 default: