Example #1
0
 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";
     }
 }