public function getData() { $department = $this->FilterDepartment->getSelectedValue(); if ($department > 0) { $department = " AND u.department=" . $department; } else { $department = ""; } $year = $this->FilterYear->getSelectedValue(); $month = $this->FilterMonth->getSelectedValue(); $date = $year . "-" . $month . "-" . date('t', mktime(0, 0, 0, $month, 1, $year)); $cmd = $this->db->createCommand("SELECT w.user_id FROM hr_timux_workingtime AS w LEFT JOIN hr_user AS u ON u.id=w.user_id WHERE w.endOfActivity=0 AND w.startDate<='{$date}' {$department} GROUP BY w.user_id ORDER BY u.name,u.firstname"); $data = $cmd->query(); $data = $data->readAll(); $result = array(); foreach ($data as $d) { $employee = new employee($d['user_id']); $count = 0; if ($this->FilterYear->getSelectedValue() >= date('Y') && $this->FilterMonth->getSelectedValue() >= date('n')) { $count = -1; } else { $cmd = $this->db->createCommand("SELECT* FROM hr_timux_activity_counter WHERE user_id=" . $d['user_id'] . " AND year={$year} AND month={$month} AND isClosedMonth=1"); $data = $cmd->query(); $data = $data->readAll(); // if we have data, this means that the month is already closed if (count($data) > 0) { $count = -2; } else { //check if the last month is closed $m = $month; $y = $year; // check if the last month is closed if ($m == 1) { $m = 12; $y--; } else { $m--; } $cmd = $this->db->createCommand("SELECT* FROM hr_timux_activity_counter WHERE user_id=" . $d['user_id'] . " AND year={$y} AND month={$m} AND isClosedMonth=1"); $data = $cmd->query(); $data = $data->readAll(); if (count($data) > 0) { $isError = $employee->getError($this->FilterYear->getSelectedValue(), $this->FilterMonth->getSelectedValue()); $count = count($isError); } else { $count = -3; } } } if ($count != -4) { $result[] = array('user_id' => $d['user_id'], 'employee' => $employee->getFullName(), 'canBeClosed' => $count); } } return $result; }
public function getData() { if ($this->FilterEmployee->getSelectedValue() == 0) { $items = $this->FilterEmployee->getItems(); $data = array(); for ($i = 0; $i < $items->count(); $i++) { $item = $items->itemAt($i); $employee = new employee($item->Value); $errors = $employee->getError($this->FilterYear->getSelectedValue(), $this->FilterMonth->getSelectedValue()); $data = array_merge($data, $errors); } return $data; } else { $this->employee = new employee($this->FilterEmployee->getSelectedValue()); return $this->employee->getError($this->FilterYear->getSelectedValue(), $this->FilterMonth->getSelectedValue()); } }