public function getLeavesForMeAndSubordinates($req) { $map = json_decode('{"employee":["Employee","id","first_name+last_name"],"leave_type":["LeaveType","id","name"]}'); $employee = $this->baseService->getElement('Employee', $this->getCurrentProfileId(), null, true); $employeeLeave = new EmployeeLeave(); $startDate = date("Y-m-d H:i:s", $req->start); $endDate = date("Y-m-d H:i:s", $req->end); $list = $employeeLeave->Find("status in ('Approved','Pending') and ((date_start >= ? and date_start <= ? ) or (date_end >= ? and date_end <= ?))", array($startDate, $endDate, $startDate, $endDate)); if (!$list) { LogManager::getInstance()->info($employeeLeave->ErrorMsg()); } if (!empty($map)) { $list = $this->baseService->populateMapping($list, $map); } $data = array(); $leaveType = new LeaveType(); $leaveTypesTemp = $leaveType->Find("1=1"); $leaveTypes = array(); foreach ($leaveTypesTemp as $leaveType) { $leaveTypes[$leaveType->name] = $leaveType; } foreach ($list as $leave) { $data[] = $this->leaveToEvent($leave, $leaveTypes); } $holiday = new HoliDay(); $holidays = $holiday->Find("1=1", array()); foreach ($holidays as $holiday) { $data[] = $this->holidayToEvent($holiday); } echo json_encode($data); exit; }
public function getLeavesForMeAndSubordinates($req){ $shareCalendar = $this->baseService->settingsManager->getSetting("Leave: Share Calendar to Whole Company"); $map = json_decode('{"employee":["Employee","id","first_name+last_name"],"leave_type":["LeaveType","id","name"]}'); $employee = $this->baseService->getElement('Employee',$this->getCurrentProfileId(),null,true); if($shareCalendar != "1"){ $subordinate = new Employee(); $subordinates = $subordinate->Find("supervisor = ?",array($employee->id)); $subordinatesIds = $employee->id; foreach($subordinates as $sub){ if($subordinatesIds != ""){ $subordinatesIds.=","; } $subordinatesIds.=$sub->id; } $employeeLeave = new EmployeeLeave(); $startDate = date("Y-m-d H:i:s",$req->start); $endDate = date("Y-m-d H:i:s",$req->end); $list = $employeeLeave->Find("employee in (".$subordinatesIds.") and status in ('Approved','Pending') and ((date_start >= ? and date_start <= ? ) or (date_end >= ? and date_end <= ?))",array($startDate,$endDate,$startDate,$endDate)); }else{ $employeeLeave = new EmployeeLeave(); $startDate = date("Y-m-d H:i:s",$req->start); $endDate = date("Y-m-d H:i:s",$req->end); $list = $employeeLeave->Find("status in ('Approved','Pending') and ((date_start >= ? and date_start <= ? ) or (date_end >= ? and date_end <= ?))",array($startDate,$endDate,$startDate,$endDate)); } if(!$list){ LogManager::getInstance()->info($employeeLeave->ErrorMsg()); } if(!empty($map)){ $list = $this->baseService->populateMapping($list,$map); } $data = array(); foreach($list as $leave){ $data[] = $this->leaveToEvent($leave); } $holiday = new HoliDay(); $holidays = $holiday->Find("1=1",array()); foreach($holidays as $holiday){ $data[] = $this->holidayToEvent($holiday); } echo json_encode($data); exit(); }