function populate()
 {
     $employee = DataObjectFactory::Factory('Employee');
     $user = getCurrentUser();
     if (!is_null($user->person_id)) {
         $employee->loadBy('person_id', $user->person_id);
     }
     if ($employee->isLoaded()) {
         $authorisor_model = $employee->holiday_model();
         $employee->authorisationPolicy($authorisor_model);
         $authorisees = $employee->getAuthorisees($authorisor_model);
     } else {
         $authorisees = array();
     }
     $holiday = DataObjectFactory::Factory('HolidayRequest');
     $holidays = new HolidayrequestCollection($holiday);
     if (count($authorisees) > 0) {
         $holidays->setParams();
         $sh = new SearchHandler($holidays, false);
         $sh->setFields(array('id', 'employee', 'employee_id', 'start_date', 'end_date', 'num_days'));
         $sh->addConstraint(new Constraint('status', '=', $holiday->newRequest()));
         $sh->addConstraint(new Constraint('employee_id', 'in', '(' . implode(',', $authorisees) . ')'));
         $this->setSearchLimit($sh);
         $sh->setOrderby(array('employee', 'start_date'));
         $holidays->load($sh);
         $holidays->clickcontroller = 'holidayrequests';
         $holidays->editclickaction = 'view';
     }
     $this->contents = $holidays;
 }
Beispiel #2
0
 public function get_totals($date, $employee_id)
 {
     if (!$this->isLoaded()) {
         $this->loadEntitlement($employee_id, $date);
     }
     if (!$this->isLoaded()) {
         return 0;
     }
     $extra_days = DataObjectFactory::Factory('Holidayextraday');
     $totals = array('entitlement' => $this->num_days, 'extra_days' => $extra_days->extraDays($this->id));
     $holidayrequest = DataObjectFactory::Factory('Holidayrequest');
     $holidays = new HolidayrequestCollection();
     $outstanding = $totals['entitlement'] + $totals['extra_days'];
     $holidays->sumByStatus($holidayrequest->setConstraints($employee_id, $this->start_date, $this->end_date));
     if (!empty($holidays)) {
         foreach ($holidays as $holidayrequest) {
             $totals[$holidayrequest->getFormatted('status')] = $holidayrequest->num_days;
             if ($holidayrequest->awaitingAuthorisation() || $holidayrequest->authorised()) {
                 $outstanding -= $holidayrequest->num_days;
             }
         }
     }
     $totals['days_left'] = $outstanding;
     return $totals;
 }