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"; } }