public function setReportCriteriaInfoInRequest($formValues) { $employeeService = new EmployeeService(); $jobService = new JobService(); $empStatusService = new EmploymentStatusService(); $companyStructureService = new CompanyStructureService(); if (isset($formValues["employee"])) { $empNumber = $formValues["employee"]; $employee = $employeeService->getEmployee($empNumber); $empName = $employee->getFirstAndLastNames(); $this->getRequest()->setParameter('empName', $empName); } if (isset($formValues["employment_status"]) && $formValues["employment_status"] != 0) { $estatCode = $formValues["employment_status"]; $estat = $empStatusService->getEmploymentStatusById($estatCode); $estatName = $estat->getName(); $this->getRequest()->setParameter("empStatusName", $estatName); } if (isset($formValues["job_title"]) && $formValues["job_title"] != 0) { $jobTitCode = $formValues["job_title"]; $jobTitle = $jobService->readJobTitle($jobTitCode); $jobTitName = $jobTitle->getJobTitName(); $this->getRequest()->setParameter("jobTitName", $jobTitName); } if (isset($formValues["sub_unit"]) && $formValues["job_title"] != 0) { $value = $formValues["sub_unit"]; $id = $value; $subunit = $companyStructureService->getSubunitById($id); $subUnitName = $subunit->getName(); $this->getRequest()->setParameter("subUnit", $subUnitName); } $this->getRequest()->setParameter('attendanceDateRangeFrom', $formValues["attendance_date_range"]["from"]); $this->getRequest()->setParameter('attendanceDateRangeTo', $formValues["attendance_date_range"]["to"]); }
/** * Retrieve employment status list. * @return array() $choice */ private function _getChoiceData() { $choice = array(); $choice['0'] = __('All'); $companyStructureService = new CompanyStructureService(); $treeObject = $companyStructureService->getSubunitTreeObject(); $tree = $treeObject->fetchTree(); foreach ($tree as $node) { if ($node->getId() != 1) { $value = $this->getSubUnitsChain($node); $choice[$value] = str_repeat(' ', $node['level'] - 1) . $node['name']; } } // asort($choice); return $choice; }
/** * Retrieve employment status list. * @return array() $choice */ private function _getChoiceData() { $choice = array(); $choice['0'] = __('All'); $companyStructureService = new CompanyStructureService(); $treeObject = $companyStructureService->getSubunitTreeObject(); $tree = $treeObject->fetchTree(); foreach ($tree as $node) { if ($node->getId() != 1) { $value = $node->getId(); $children = $node->getNode()->getChildren(); if ($children !== false) { foreach ($children as $childNode) { $value = $value . "," . $childNode->getId(); } } $choice[$value] = str_repeat(' ', $node['level'] - 1) . $node['name']; } } // asort($choice); return $choice; }
public function setReportCriteriaInfoInRequest($formValues) { $employeeService = new EmployeeService(); $empStatusService = new EmploymentStatusService(); $jobTitleService = new JobTitleService(); $companyStructureService = new CompanyStructureService(); if (isset($formValues["employeeId"]) || $formValues["employeeId"] == '-1') { if ($formValues["employeeId"] != '-1') { $empNumber = $formValues["employeeId"]; $employee = $employeeService->getEmployee($empNumber); $empName = $employee->getFirstAndLastNames(); } else { $empName = __("All"); } $this->getRequest()->setParameter('empName', $empName); } if (isset($formValues["employeeStatus"]) && $formValues["employeeStatus"] != 0) { $estatCode = $formValues["employeeStatus"]; $estat = $empStatusService->getEmploymentStatusById($estatCode); $estatName = $estat->getName(); $this->getRequest()->setParameter("employeeStatus", $estatName); } if (isset($formValues["jobTitle"]) && $formValues["jobTitle"] != 0) { $jobTitCode = $formValues["jobTitle"]; $jobTitle = $jobTitleService->getJobTitleById($jobTitCode); $jobTitName = $jobTitle->getJobTitleName(); $this->getRequest()->setParameter("jobTitle", $jobTitName); } if (isset($formValues["subUnit"]) && $formValues["subUnit"] != 0) { $value = $formValues["subUnit"]; $id = $value; $subunit = $companyStructureService->getSubunitById($id); $subUnitName = $subunit->getName(); $this->getRequest()->setParameter("subUnit", $subUnitName); } $this->getRequest()->setParameter('attendanceDateRangeFrom', $formValues["fromDate"]); $this->getRequest()->setParameter('attendanceDateRangeTo', $formValues["toDate"]); }
public function execute($request) { $usrObj = $this->getUser()->getAttribute('user'); if (!$usrObj->isAdmin()) { $this->redirect('pim/viewPersonalDetails'); } $this->setForm(new OrganizationGeneralInformationForm()); $employeeService = new EmployeeService(); $this->employeeCount = $employeeService->getEmployeeCount(); if ($this->getUser()->hasFlash('templateMessage')) { list($this->messageType, $this->message) = $this->getUser()->getFlash('templateMessage'); } if ($request->isMethod('post')) { $this->form->bind($request->getParameter($this->form->getName())); if ($this->form->isValid()) { $result = $this->form->save(); $name = $this->form->getValue('name'); $organizationName = !empty($name) ? $name : __("Organization"); $companyStructureService = new CompanyStructureService(); $companyStructureService->setOrganizationName($organizationName); list($this->messageType, $this->message) = array('success', __(TopLevelMessages::SAVE_SUCCESS)); } } }
/** * * @param type $employeeIds * @param type $dateFrom * @param type $dateTo * @param type $subDivision * @param type $employeementStatus * @return type array */ public function searchTimesheetItems($employeeIds = null, $employeementStatus = null, $supervisorIds = null, $subDivision = null, $dateFrom = null, $dateTo = null) { $q = Doctrine_Query::create()->select("e.emp_middle_name, e.termination_id , e.emp_lastname, e.emp_firstname, i.date, cust.name, prj.name, act.name, i.comment, SUM(i.duration) AS total_duration ")->from("ProjectActivity act")->leftJoin("act.Project prj")->leftJoin("prj.Customer cust")->leftJoin("act.TimesheetItem i")->leftJoin("i.Employee e"); $q->where("act.activity_id = i.activity_id "); if ($employeeIds != null) { if (is_array($employeeIds)) { $q->whereIn("e.emp_number", $employeeIds); } else { $q->andWhere(" e.emp_number = ?", $employeeIds); } } if (is_array($supervisorIds) && sizeof($supervisorIds) > 0) { $q->whereIn("e.emp_number", $supervisorIds); } if ($employeementStatus > 0) { $q->andWhere("e.emp_status = ?", $employeementStatus); } else { if ($employeeIds <= 0) { $q->andWhere("(e.termination_id IS NULL)"); } } if ($subDivision > 0) { $companyService = new CompanyStructureService(); $subDivisions = $companyService->getCompanyStructureDao()->getSubunitById($subDivision); $subUnitIds = array($subDivision); if (!empty($subDivisions)) { $descendents = $subDivisions->getNode()->getDescendants(); foreach ($descendents as $descendent) { $subUnitIds[] = $descendent->id; } } $q->andWhereIn("e.work_station", $subUnitIds); } if ($dateFrom != null) { $q->andWhere("i.date >=?", $dateFrom); } if ($dateTo != null) { $q->andWhere("i.date <=?", $dateTo); } $q->groupBy("e.emp_number, i.date, act.activity_id"); $q->orderBy("e.lastName ASC, i.date DESC, cust.name, act.name ASC "); $result = $q->execute(array(), Doctrine::HYDRATE_SCALAR); return $result; }
/** * Handles showing review search form and * listing searched reviews. */ public function executeViewReview(sfWebRequest $request) { $performanceReviewService = $this->getPerformanceReviewService(); /* Job title list */ $this->jobList = $this->getJobTitleService()->getJobTitleList("", "", false); /* Employee list */ if ($this->loggedAdmin) { $employeeService = new EmployeeService(); $this->empJson = $employeeService->getEmployeeListAsJson(); } elseif ($this->loggedReviewer) { $this->empJson = $performanceReviewService->getRevieweeListAsJson($this->loggedEmpId, true); } /* Showing Performance Review Search form * ====================================== */ $this->form = new ViewReviewForm(array(), array('empJson' => $this->empJson), true); /* Subdivision list */ $compStructure = new CompanyStructureService(); $treeObject = $compStructure->getSubunitTreeObject(); $this->tree = $treeObject->fetchTree(); /* Checking whether a newly invoked search form */ $newSearch = false; if ($request->getParameter('mode') == 'new') { $newSearch = true; } /* Preserving search clues */ $hdnEmpId = $request->getParameter("hdnEmpId"); if (isset($hdnEmpId) && !$newSearch) { // If the user has performed a new search $this->clues = $this->getReviewSearchClues($request); } else { if ($this->getUser()->hasAttribute('prSearchClues') && !$newSearch) { $this->clues = $this->getUser()->getAttribute('prSearchClues'); } if ($this->getUser()->hasFlash('prClues') && !$newSearch) { $this->clues = $this->getUser()->getFlash('prClues'); } } /* Processing reviews * ================== */ if ($request->isMethod('post')) { $page = 1; $this->clues['pageNo'] = 1; } elseif ($request->getParameter('page')) { $page = $request->getParameter('page'); $this->clues['pageNo'] = $page; } elseif ($this->clues['pageNo']) { $page = $this->clues['pageNo']; } /* Preserving search clues */ if (!isset($this->clues)) { $this->clues = $this->getReviewSearchClues($request); } $this->getUser()->setAttribute('prSearchClues', $this->clues); /* Checking whether wrong seacrch criteria */ if (!$this->_isCorrectEmployee($this->clues['empId'], $this->clues['empName']) || !$this->_isCorrectEmployee($this->clues['reviewerId'], $this->clues['reviewerName'])) { $this->templateMessage = array('WARNING', __(TopLevelMessages::NO_RECORDS_FOUND)); return; } /* Setting logged in user type */ if (!$this->loggedAdmin && $this->loggedReviewer) { $this->clues['loggedReviewerId'] = $this->loggedEmpId; } elseif (!$this->loggedAdmin && !$this->loggedReviewer) { $this->clues['loggedEmpId'] = $this->loggedEmpId; } /* Pagination */ if (!isset($page)) { $page = 1; } $this->pager = new SimplePager('PerformanceReview', sfConfig::get('app_items_per_page')); $this->pager->setPage($page); $this->pager->setNumResults($performanceReviewService->countReviews($this->clues)); $this->pager->init(); /* Fetching reviews */ $offset = $this->pager->getOffset(); $offset = empty($offset) ? 0 : $offset; $limit = $this->pager->getMaxPerPage(); $this->reviews = $performanceReviewService->searchPerformanceReview($this->clues, $offset, $limit); /* Setting template message */ if ($this->getUser()->hasFlash('templateMessage')) { $this->templateMessage = $this->getUser()->getFlash('templateMessage'); } elseif (count($this->reviews) == 0) { $this->templateMessage = array('WARNING', __(TopLevelMessages::NO_RECORDS_FOUND)); } }
/** * * @param int $employeeId * @param string $employeementStatus * @param int $subDivision * @param date $dateFrom * @param date $dateTo * @return array */ public function searchAttendanceRecords($employeeIds = null, $employeementStatus = null, $subDivision = null, $dateFrom = null, $dateTo = null) { $q = Doctrine_Query::create()->select("e.emp_number, e.termination_id, e.emp_firstname, e.emp_middle_name, e.emp_lastname, a.punch_in_user_time as in_date_time, a.punch_out_user_time as out_date_time, punch_in_note, punch_out_note, TIMESTAMPDIFF(MINUTE, a.punch_in_user_time, a.punch_out_user_time) as duration")->from("AttendanceRecord a")->leftJoin("a.Employee e")->orderBy('a.punch_in_user_time DESC'); if ($employeeIds != null) { if (is_array($employeeIds)) { $q->andWhereIn("e.emp_number", $employeeIds); } else { $q->andWhere(" e.emp_number = ?", $employeeIds); } } if ($employeementStatus != null) { $q->andWhere("e.emp_status = ?", $employeementStatus); } else { if ($employeeIds <= 0) { $q->andWhere("(e.termination_id IS NULL)"); } } if ($subDivision > 0) { $companyService = new CompanyStructureService(); $subDivisions = $companyService->getCompanyStructureDao()->getSubunitById($subDivision); $subUnitIds = array($subDivision); if (!empty($subDivisions)) { $descendents = $subDivisions->getNode()->getDescendants(); foreach ($descendents as $descendent) { $subUnitIds[] = $descendent->id; } } $q->andWhereIn("e.work_station", $subUnitIds); } if ($dateFrom != null) { $q->andWhere("a.punch_in_user_time >=?", $dateFrom); } if ($dateTo != null) { $q->andWhere("a.punch_out_user_time <=?", $dateTo); } $result = $q->execute(array(), Doctrine::HYDRATE_SCALAR); return $result; }