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; }
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; }