public function editAction() { $popConfigPermission = array(); $auth = Zend_Auth::getInstance(); $report_opt = array(); $role_datap = array(); $empGroup = ""; if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginuserRole = $auth->getStorage()->read()->emprole; $loginuserGroup = $auth->getStorage()->read()->group_id; } if (sapp_Global::_checkprivileges(PREFIX, $loginuserGroup, $loginuserRole, 'add') == 'Yes') { array_push($popConfigPermission, 'prefix'); } if (sapp_Global::_checkprivileges(PREFIX, $loginuserGroup, $loginuserRole, 'edit') == 'Yes') { array_push($popConfigPermission, 'identitycodes'); } if (sapp_Global::_checkprivileges(EMPLOYMENTSTATUS, $loginuserGroup, $loginuserRole, 'add') == 'Yes') { array_push($popConfigPermission, 'empstatus'); } if (sapp_Global::_checkprivileges(JOBTITLES, $loginuserGroup, $loginuserRole, 'add') == 'Yes') { array_push($popConfigPermission, 'jobtitles'); } if (sapp_Global::_checkprivileges(POSITIONS, $loginuserGroup, $loginuserRole, 'add') == 'Yes') { array_push($popConfigPermission, 'position'); } $this->view->popConfigPermission = $popConfigPermission; $id = (int) $this->getRequest()->getParam('id'); $id = abs($id); if ($id == '') { $id = $loginUserId; } $callval = $this->getRequest()->getParam('call'); if ($callval == 'ajaxcall') { $this->_helper->layout->disableLayout(); } $employeeform = new Default_Form_employee(); $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings(); $performanceflag = 'true'; try { if ($id != '' && is_numeric($id) && $id > 0 && $id != $loginUserId) { $appEmpRatingsData = $appEmpRatingsModel->getSelfAppraisalDataByEmpID($id); if (sizeof($appEmpRatingsData) > 0 && $appEmpRatingsData[0]['status'] == 1) { $performanceflag = 'false'; } if ($performanceflag == 'true') { $employeeModal = new Default_Model_Employee(); $usersModel = new Default_Model_Users(); $employmentstatusModel = new Default_Model_Employmentstatus(); $busineesUnitModel = new Default_Model_Businessunits(); $deptModel = new Default_Model_Departments(); $role_model = new Default_Model_Roles(); $user_model = new Default_Model_Usermanagement(); $candidate_model = new Default_Model_Candidatedetails(); $jobtitlesModel = new Default_Model_Jobtitles(); $positionsmodel = new Default_Model_Positions(); $prefixModel = new Default_Model_Prefix(); $data = array(); $empDeptId = ""; $empRoleId = ""; $data = $employeeModal->getsingleEmployeeData($id); if ($data == 'norows') { $this->view->rowexist = "norows"; } else { if (!empty($data)) { $this->view->rowexist = "rows"; $employeeform->submit->setLabel('Update'); $data = $data[0]; /* Earlier code to fetch employee details */ $employeeData = $employeeModal->getsingleEmployeeData($id); if ($data['is_orghead'] == 1) { $roles_arr = $role_model->getRolesList_EMP('orghead'); if (sizeof($roles_arr) > 0) { $employeeform->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr); } } else { $roles_arr = $role_model->getRolesList_EMP(); if (sizeof($roles_arr) > 0) { $employeeform->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr); } } $referedby_options = $user_model->getRefferedByForUsers(); $employmentStatusData = $employmentstatusModel->getempstatuslist(); if (sizeof($employmentStatusData) > 0) { $employeeform->emp_status_id->addMultiOption('', 'Select Employment Status'); foreach ($employmentStatusData as $employmentStatusres) { $employeeform->emp_status_id->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']); } } $businessunitData = $busineesUnitModel->getDeparmentList(); if (sizeof($businessunitData) > 0) { $employeeform->businessunit_id->addMultiOption('0', 'No Business Unit'); foreach ($businessunitData as $businessunitres) { $employeeform->businessunit_id->addMultiOption($businessunitres['id'], $businessunitres['unitname']); } } $departmentsData = $deptModel->getDepartmentList($data['businessunit_id']); if (sizeof($departmentsData) > 0) { $employeeform->department_id->addMultiOption('', 'Select Department'); foreach ($departmentsData as $departmentsres) { $employeeform->department_id->addMultiOption($departmentsres['id'], $departmentsres['deptname']); } } $jobtitleData = $jobtitlesModel->getJobTitleList(); if (sizeof($jobtitleData) > 0) { $employeeform->jobtitle_id->addMultiOption('', 'Select Job Title'); foreach ($jobtitleData as $jobtitleres) { $employeeform->jobtitle_id->addMultiOption($jobtitleres['id'], $jobtitleres['jobtitlename']); } } $positionlistArr = $positionsmodel->getPositionList($data['jobtitle_id']); if (sizeof($positionlistArr) > 0) { $employeeform->position_id->addMultiOption('', 'Select Position'); foreach ($positionlistArr as $positionlistres) { $employeeform->position_id->addMultiOption($positionlistres['id'], $positionlistres['positionname']); } } $prefixData = $prefixModel->getPrefixList(); if (!empty($prefixData)) { foreach ($prefixData as $prefixres) { $employeeform->prefix_id->addMultiOption($prefixres['id'], $prefixres['prefix']); } } $employeeform->populate($data); $employeeform->setDefault('user_id', $data['user_id']); $employeeform->setDefault('emp_status_id', $data['emp_status_id']); $employeeform->setDefault('businessunit_id', $data['businessunit_id']); $employeeform->setDefault('jobtitle_id', $data['jobtitle_id']); $employeeform->setDefault('department_id', $data['department_id']); $employeeform->setDefault('position_id', $data['position_id']); $employeeform->setDefault('prefix_id', $data['prefix_id']); //$employeeform->setDefault('emprole',$data['emprole']."_".MANAGEMENT_GROUP); $employeeform->setDefault('emprole', $data['emprole']); $date_of_joining = sapp_Global::change_date($data['date_of_joining'], 'view'); $employeeform->date_of_joining->setValue($date_of_joining); if ($data['date_of_leaving'] != '' && $data['date_of_leaving'] != '0000-00-00') { $date_of_leaving = sapp_Global::change_date($data['date_of_leaving'], 'view'); $employeeform->date_of_leaving->setValue($date_of_leaving); } if ($data['modeofentry'] != 'Direct') { $employeeform->rccandidatename->setValue($data['userfullname']); } if (sizeof($referedby_options) > 0 && $data['candidatereferredby'] != '' && $data['candidatereferredby'] != 0) { $employeeform->candidatereferredby->setValue($referedby_options[$data['candidatereferredby']]); } if ($data['rccandidatename'] != '' && $data['rccandidatename'] != 0) { $cand_data = $candidate_model->getCandidateById($data['rccandidatename']); $data['requisition_code'] = $cand_data['requisition_code']; } $role_data = $role_model->getRoleDataById($data['emprole']); $employeeform->emprole->setValue($data['emprole'] . "_" . $role_data['group_id']); $employeeform->setAttrib('action', BASE_URL . 'employee/edit/id/' . $id); $reportingManagerData = $usersModel->getReportingManagerList_employees($data['department_id'], $data['id'], $role_data['group_id']); $empDeptId = isset($_POST['department_id']) ? $_POST['department_id'] : $data['department_id']; if (isset($_POST['emprole']) && $_POST['emprole'] != '') { $role_split = preg_split('/_/', $_POST['emprole']); $empRoleId = $role_split[0]; } else { $empRoleId = $data['emprole']; } if (isset($empDeptId) && $empDeptId != '' && isset($empRoleId) && $empRoleId != '') { try { $role_datap = $role_model->getRoleDataById($empRoleId); $reportingManagerData = $usersModel->getReportingManagerList_employees($empDeptId, $data['id'], $role_datap['group_id']); } catch (Exception $e) { $reportingManagerData = array(); } } if (!empty($reportingManagerData)) { $report_opt = $reportingManagerData; } $employeeform->setDefault('reporting_manager', $data['reporting_manager']); $this->view->id = $id; $this->view->form = $employeeform; $this->view->employeedata = !empty($employeeData) ? $employeeData[0] : ""; $this->view->messages = $this->_helper->flashMessenger->getMessages(); $this->view->data = $data; if ($data['is_orghead'] == 1) { $employeeform->removeElement('businessunit_id'); $employeeform->removeElement('reporting_manager'); $employeeform->removeElement('department_id'); $employeeform->removeElement('emp_status_id'); $employeeform->removeElement('date_of_leaving'); //$employeeform->removeElement('emprole'); } } } $this->view->report_opt = $report_opt; } else { $this->editappraisal($id); } } else { $this->view->rowexist = "norows"; } if ($this->getRequest()->getPost()) { $result = $this->save($employeeform); $this->view->msgarray = $result; $employeeform->modeofentry->setValue($data['modeofentry']); $employeeform->other_modeofentry->setValue($data['other_modeofentry']); if ($data['modeofentry'] != 'Direct') { $employeeform->rccandidatename->setValue($data['userfullname']); } if (sizeof($referedby_options) > 0 && $data['candidatereferredby'] != '' && $data['candidatereferredby'] != 0) { $employeeform->candidatereferredby->setValue($referedby_options[$data['candidatereferredby']]); } } } catch (Exception $e) { $this->view->rowexist = "norows"; } }
public function editAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; } try { $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings(); $app_rating_model = new Default_Model_Appraisalratings(); $appEmpRatingsData = $appEmpRatingsModel->getSelfAppraisalDataByEmpID($loginUserId); if (sizeof($appEmpRatingsData) > 0 && $appEmpRatingsData[0]['employee_id'] == $loginUserId && $appEmpRatingsData[0]['status'] == 1 && $appEmpRatingsData[0]['appraisal_status'] == APP_PENDING_EMP) { // Check rating exist for appraisal. $checkRatingsExists = $app_rating_model->getAppraisalRatingsbyInitId($appEmpRatingsData[0]['pa_initialization_id']); // get all Categories Data based on category ids $categories_data = $appEmpRatingsModel->getAppCateDataByIDs($appEmpRatingsData[0]['category_id']); // get question previleges data of employee for that initialization $appEmpQuesPrivData = $appEmpRatingsModel->getAppEmpQuesPrivData($appEmpRatingsData[0]['pa_initialization_id'], $appEmpRatingsData[0]['employee_id']); // merging HR and Manager questions $ques_csv = ''; if ($appEmpQuesPrivData[0]['hr_qs']) { $ques_csv .= $appEmpQuesPrivData[0]['hr_qs']; } if ($appEmpQuesPrivData[0]['manager_qs']) { if ($ques_csv) { $ques_csv .= ','; } $ques_csv .= $appEmpQuesPrivData[0]['manager_qs']; } // get all questions data based on above question ids $questions_data = $appEmpRatingsModel->getAppQuesDataByIDs($ques_csv); // merging HR and Manager questions privileges $hr_ques_previs = array(); $mgr_ques_previs = array(); $ratingType = array(); if ($appEmpQuesPrivData[0]['hr_group_qs_privileges']) { $hr_ques_previs = json_decode($appEmpQuesPrivData[0]['hr_group_qs_privileges'], true); } if ($appEmpQuesPrivData[0]['manager_qs_privileges']) { $mgr_ques_previs = json_decode($appEmpQuesPrivData[0]['manager_qs_privileges'], true); } $question_previs = $hr_ques_previs + $mgr_ques_previs; // Employee and Manager response $emp_response = array(); $mgr_response = array(); if ($appEmpRatingsData[0]['employee_response']) { $emp_response = json_decode($appEmpRatingsData[0]['employee_response'], true); } if ($appEmpRatingsData[0]['manager_response']) { $mgr_response = json_decode($appEmpRatingsData[0]['manager_response'], true); } // get rating details using configuration id $ratingsData = $appEmpRatingsModel->getAppRatingsDataByConfgId($appEmpRatingsData[0]['pa_configured_id'], $appEmpRatingsData[0]['pa_initialization_id']); if (count($ratingsData) > 0) { $ratingType = $ratingsData[0]['rating_type']; } $ratingText = array(); $ratingValues = array(); foreach ($ratingsData as $rd) { $ratingText[] = $rd['rating_text']; $ratingValues[$rd['id']] = $rd['rating_value']; } // building managers names from Emp-Ques-Privileges data $managerIDs = array(); $managerNames = array(); $line_unique_arr = array_filter(array_unique(array(1 => $appEmpQuesPrivData[0]['line_manager_1'], 2 => $appEmpQuesPrivData[0]['line_manager_2'], 3 => $appEmpQuesPrivData[0]['line_manager_3'], 4 => $appEmpQuesPrivData[0]['line_manager_4'], 5 => $appEmpQuesPrivData[0]['line_manager_5'])), 'strlen'); if (!empty($line_unique_arr)) { for ($i = 1; $i <= count($line_unique_arr); $i++) { $managerIDs[] = $line_unique_arr[$i]; } $usersData = $appEmpRatingsModel->getUserNamesByIDs(implode($managerIDs, ',')); foreach ($managerIDs as $mi) { foreach ($usersData as $ud) { if ($ud['id'] == $mi) { $managerNames[] = $ud['userfullname']; } } } } $this->view->managerNames = $managerNames; $this->view->mgrLevels = $appEmpQuesPrivData[0]['manager_levels']; $this->view->appEmpRatingsData = $appEmpRatingsData; $this->view->categories_data = $categories_data; $this->view->questions_data = $questions_data; $this->view->question_previs = $question_previs; $this->view->ratingType = $ratingType; $this->view->ratingText = json_encode($ratingText); $this->view->ratingValues = $ratingValues; $this->view->emp_response = $emp_response; $this->view->mgr_response = $mgr_response; $this->view->check_ratings_exists = $checkRatingsExists; } else { $this->view->rowexist = "norows"; } } catch (Exception $e) { $this->view->rowexist = "norows"; } }