Exemplo n.º 1
0
 /**
  * Testing getCandidateRecordsCount
  */
 public function testGetCandidateRecordsCount()
 {
     $searchParam = new CandidateSearchParameters();
     $searchParam->setJobTitleCode('JOB002');
     $candidateService = $this->getMock('CandidateService', array('buildSearchCountQuery'));
     $candidateService->expects($this->once())->method('buildSearchCountQuery')->with($searchParam)->will($this->returnValue('searchCountQuery'));
     $candidateDao = $this->getMock('CandidateDao', array('getCandidateRecordsCount'));
     $candidateDao->expects($this->once())->method('getCandidateRecordsCount')->with('searchCountQuery')->will($this->returnValue(4));
     $candidateService->setCandidateDao($candidateDao);
     $result = $candidateService->getCandidateRecordsCount($searchParam);
     $this->assertEquals($result, 4);
 }
Exemplo n.º 2
0
 /**
  * Testing  getCandidateList when Hiring manager, Candidate name and keywords are provided
  */
 public function testGetCandidateListForHiringManagerCandidateAndKeywords()
 {
     $searchParam = new CandidateSearchParameters();
     $searchParam->setHiringManagerId(1);
     $searchParam->setCandidateName('Yasitha Pandi');
     $searchParam->setKeywords("java,oracle");
     $candidateVacancyList = $this->candidateDao->searchCandidates($this->candidateDao->buildSearchQuery($searchParam));
     $this->assertTrue($candidateVacancyList[0] instanceof CandidateSearchParameters);
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $userRoleManager = $this->getContext()->getUserRoleManager();
     $requiredPermissions = array(BasicUserRoleManager::PERMISSION_TYPE_DATA_GROUP => array('recruitment_candidates' => new ResourcePermission(true, false, false, false)));
     $allowedVacancyList = $userRoleManager->getAccessibleEntityIds('Vacancy', null, null, array(), array(), $requiredPermissions);
     $usrObj = $this->getUser()->getAttribute('user');
     $allowedCandidateList = $usrObj->getAllowedCandidateList();
     $allowedCandidateListToDelete = $usrObj->getAllowedCandidateListToDelete();
     $this->candidaatePermissions = $this->getDataGroupPermissions('recruitment_candidates');
     $isAdmin = $usrObj->isAdmin();
     if (!($usrObj->isAdmin() || $usrObj->isHiringManager() || $usrObj->isInterviewer() || $this->candidaatePermissions->canRead())) {
         $this->redirect('pim/viewPersonalDetails');
     }
     $param = array('allowedCandidateList' => $allowedCandidateList, 'allowedVacancyList' => $allowedVacancyList, 'allowedCandidateListToDelete' => $allowedCandidateListToDelete);
     list($this->messageType, $this->message) = $this->getUser()->getFlash('candidateListMessageItems');
     $candidateId = $request->getParameter('candidateId');
     $sortField = $request->getParameter('sortField');
     $sortOrder = $request->getParameter('sortOrder');
     $isPaging = $request->getParameter('pageNo');
     $pageNumber = $isPaging;
     if (!is_null($this->getUser()->getAttribute('pageNumber')) && !($pageNumber >= 1)) {
         $pageNumber = $this->getUser()->getAttribute('pageNumber');
     }
     $this->getUser()->setAttribute('pageNumber', $pageNumber);
     $searchParam = new CandidateSearchParameters();
     $searchParam->setIsAdmin($isAdmin);
     $searchParam->setEmpNumber($usrObj->getEmployeeNumber());
     $noOfRecords = $searchParam->getLimit();
     $offset = $pageNumber >= 1 ? ($pageNumber - 1) * $noOfRecords : ($request->getParameter('pageNo', 1) - 1) * $noOfRecords;
     $searchParam->setAdditionalParams($request->getParameter('additionalParams', array()));
     $this->setForm(new viewCandidatesForm(array(), $param, true));
     if (!empty($sortField) && !empty($sortOrder) || $isPaging > 0 || $candidateId > 0) {
         if ($this->getUser()->hasAttribute('searchParameters')) {
             $searchParam = $this->getUser()->getAttribute('searchParameters');
             $this->form->setDefaultDataToWidgets($searchParam);
         }
         $searchParam->setSortField($sortField);
         $searchParam->setSortOrder($sortOrder);
     } else {
         $this->getUser()->setAttribute('searchParameters', $searchParam);
         $offset = 0;
         $pageNumber = 1;
     }
     $searchParam->setAllowedCandidateList($allowedCandidateList);
     $searchParam->setAllowedVacancyList($allowedVacancyList);
     $searchParam->setOffset($offset);
     $candidates = $this->getCandidateService()->searchCandidates($searchParam);
     if ($this->candidaatePermissions->canRead()) {
         $this->_setListComponent($usrObj, $candidates, $noOfRecords, $searchParam, $pageNumber, $this->candidaatePermissions);
     }
     $params = array();
     $this->parmetersForListCompoment = $params;
     if (empty($isPaging)) {
         if ($request->isMethod('post')) {
             $pageNumber = 1;
             $searchParam->setOffset(0);
             $this->getUser()->setAttribute('pageNumber', $pageNumber);
             $this->form->bind($request->getParameter($this->form->getName()));
             if ($this->form->isValid()) {
                 $srchParams = $this->form->getSearchParamsBindwithFormData($searchParam);
                 $this->getUser()->setAttribute('searchParameters', $srchParams);
                 $candidates = $this->getCandidateService()->searchCandidates($srchParams);
                 $this->_setListComponent($usrObj, $candidates, $noOfRecords, $searchParam, $pageNumber, $this->candidaatePermissions);
             }
         }
     }
 }
 /**
  *
  * @param CandidateSearchParameters $searchParam
  */
 public function setDefaultDataToWidgets(CandidateSearchParameters $searchParam)
 {
     $newSearchParam = new CandidateSearchParameters();
     $this->setDefault('jobTitle', $searchParam->getJobTitleCode());
     $this->setDefault('jobVacancy', $searchParam->getVacancyId());
     $this->setDefault('hiringManager', $searchParam->getHiringManagerId());
     $this->setDefault('status', $searchParam->getStatus());
     $this->setDefault('selectedCandidate', $searchParam->getCandidateId());
     $this->setDefault('modeOfApplication', $searchParam->getModeOfApplication());
     $displayFromDate = $searchParam->getFromDate() == $newSearchParam->getFromDate() ? "" : $searchParam->getFromDate();
     $displayToDate = $searchParam->getToDate() == $newSearchParam->getToDate() ? "" : $searchParam->getToDate();
     $this->setDefault('from_date', $displayFromDate);
     $this->setDefault('to_date', $displayToDate);
     $this->setDefault('keywords', $searchParam->getKeywords());
     $this->setDefault('candidateName', $searchParam->getCandidateName());
 }
Exemplo n.º 5
0
 /**
  * Check that search works for a candidate name that has leading/trailing spaces (due to a bug in jobs.php).
  * UI will display the trimmed version and pass the trimmed version to the search function.
  * 
  * eg: Name in DB (quoted here to show spaces): ' John ', ' D ', ' Conner'
  * search method gets 'John D Conner' and has to compare it with the values in the db.
  *  
  */
 public function testGetCandidateListForCandidateNameWithSpaces()
 {
     $searchParam = new CandidateSearchParameters();
     $searchParam->setCandidateName('John Denis Connor');
     $searchParam->setCandidateStatus(JobCandidate::ACTIVE);
     $searchQuery = $this->candidateDao->buildSearchQuery($searchParam);
     $candidateVacancyList = $this->candidateDao->searchCandidates($searchQuery);
     $this->assertEquals(1, count($candidateVacancyList));
     $this->assertTrue($candidateVacancyList[0] instanceof CandidateSearchParameters);
     $this->assertEquals(11, $candidateVacancyList[0]->getCandidateId());
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $usrObj = $this->getUser()->getAttribute('user');
     $allowedCandidateList = $usrObj->getAllowedCandidateList();
     $allowedVacancyList = $usrObj->getAllowedVacancyList();
     $allowedCandidateListToDelete = $usrObj->getAllowedCandidateListToDelete();
     $isAdmin = $usrObj->isAdmin();
     if (!($usrObj->isAdmin() || $usrObj->isHiringManager() || $usrObj->isInterviewer())) {
         $this->redirect('pim/viewPersonalDetails');
     }
     $param = array('allowedCandidateList' => $allowedCandidateList, 'allowedVacancyList' => $allowedVacancyList, 'allowedCandidateListToDelete' => $allowedCandidateListToDelete);
     list($this->messageType, $this->message) = $this->getUser()->getFlash('candidateListMessageItems');
     $candidateId = $request->getParameter('candidateId');
     $sortField = $request->getParameter('sortField');
     $sortOrder = $request->getParameter('sortOrder');
     $isPaging = $request->getParameter('pageNo');
     $pageNumber = $isPaging;
     if (!is_null($this->getUser()->getAttribute('pageNumber')) && !($pageNumber >= 1)) {
         $pageNumber = $this->getUser()->getAttribute('pageNumber');
     }
     $this->getUser()->setAttribute('pageNumber', $pageNumber);
     $searchParam = new CandidateSearchParameters();
     $searchParam->setIsAdmin($isAdmin);
     $searchParam->setEmpNumber($request->getParameter('referralId'));
     $searchParam->setReferralName($request->getParameter('referralName'));
     $noOfRecords = $searchParam->getLimit();
     $offset = $pageNumber >= 1 ? ($pageNumber - 1) * $noOfRecords : ($request->getParameter('pageNo', 1) - 1) * $noOfRecords;
     $searchParam->setAdditionalParams($request->getParameter('additionalParams', array()));
     $this->setForm(new viewCandidatesForm(array(), $param, true));
     if (!empty($sortField) && !empty($sortOrder) || $isPaging > 0 || $candidateId > 0) {
         if ($this->getUser()->hasAttribute('searchParameters')) {
             $searchParam = $this->getUser()->getAttribute('searchParameters');
             $this->form->setDefaultDataToWidgets($searchParam);
         }
         $searchParam->setSortField($sortField);
         $searchParam->setSortOrder($sortOrder);
     } else {
         $this->getUser()->setAttribute('searchParameters', $searchParam);
         $offset = 0;
         $pageNumber = 1;
     }
     $searchParam->setAllowedCandidateList($allowedCandidateList);
     $searchParam->setAllowedVacancyList($allowedVacancyList);
     $searchParam->setOffset($offset);
     $candidates = $this->getCandidateService()->searchCandidates($searchParam);
     $this->_setListComponent($usrObj, $candidates, $noOfRecords, $searchParam, $pageNumber);
     $params = array();
     $this->parmetersForListCompoment = $params;
     if (empty($isPaging)) {
         if ($request->isMethod('post')) {
             $pageNumber = 1;
             $searchParam->setOffset(0);
             $this->getUser()->setAttribute('pageNumber', $pageNumber);
             $this->form->bind($request->getParameter($this->form->getName()));
             if ($this->form->isValid()) {
                 $srchParams = $this->form->getSearchParamsBindwithFormData($searchParam);
                 $this->getUser()->setAttribute('searchParameters', $srchParams);
                 $candidates = $this->getCandidateService()->searchCandidates($srchParams);
                 $this->_setListComponent($usrObj, $candidates, $noOfRecords, $searchParam, $pageNumber);
             }
         }
     }
 }
Exemplo n.º 7
0
 /**
  * @param CandidateSearchParameters $paramObject
  * @return string
  */
 private function _buildAdditionalWhereClauses(CandidateSearchParameters $paramObject)
 {
     $allowedCandidateList = $paramObject->getAllowedCandidateList();
     $jobTitleCode = $paramObject->getJobTitleCode();
     $jobVacancyId = $paramObject->getVacancyId();
     $hiringManagerId = $paramObject->getHiringManagerId();
     $status = $paramObject->getStatus();
     $allowedVacancyList = $paramObject->getAllowedVacancyList();
     $isAdmin = $paramObject->getIsAdmin();
     $empNumber = $paramObject->getEmpNumber();
     $whereClause = '';
     $whereFilters = array();
     if ($allowedVacancyList != null && !$isAdmin) {
         $this->_addAdditionalWhereClause($whereFilters, 'jv.id', '(' . implode(',', $allowedVacancyList) . ')', 'IN');
     }
     if ($allowedCandidateList != null && !$isAdmin) {
         $this->_addAdditionalWhereClause($whereFilters, 'jc.id', '(' . implode(',', $allowedCandidateList) . ')', 'IN');
     }
     if (!empty($jobTitleCode) || !empty($jobVacancyId) || !empty($hiringManagerId) || !empty($status)) {
         $this->_addAdditionalWhereClause($whereFilters, 'jv.status', $paramObject->getVacancyStatus());
     }
     $this->_addAdditionalWhereClause($whereFilters, 'jv.job_title_code', $paramObject->getJobTitleCode());
     $this->_addAdditionalWhereClause($whereFilters, 'jv.id', $paramObject->getVacancyId());
     $this->_addAdditionalWhereClause($whereFilters, 'jv.hiring_manager_id', $paramObject->getHiringManagerId());
     $this->_addAdditionalWhereClause($whereFilters, 'jcv.status', $paramObject->getStatus());
     $this->_addCandidateNameClause($whereFilters, $paramObject);
     $this->_addAdditionalWhereClause($whereFilters, 'jc.mode_of_application', $paramObject->getModeOfApplication());
     $this->_addAdditionalWhereClause($whereFilters, 'jc.added_person', $paramObject->getEmpNumber());
     $whereClause .= count($whereFilters) > 0 ? ' AND ' . implode('AND ', $whereFilters) : '';
     //        if($paramObject->getHiringManagerId() != null){
     //        	 $whereClause .= " AND jv.hiring_manager_id = ".$paramObject->getHiringManagerId()." OR jv.hiring_manager1_id = ".$paramObject->getHiringManagerId();
     //        }
     if ($empNumber != null) {
         $whereClause .= " OR jc.id NOT IN (SELECT ojcv.candidate_id FROM ohrm_job_candidate_vacancy ojcv) ";
     }
     if (!empty($status)) {
         $whereClause .= " AND NOT ISNULL(jcv.status)";
     }
     return $whereClause;
 }