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));
         }
     }
 }
Пример #6
0
 /**
  *
  * @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;
 }
Пример #7
0
 /**
  * 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));
     }
 }
Пример #8
0
 /**
  *
  * @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;
 }