예제 #1
0
 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;
 }
예제 #2
0
 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());
     }
 }