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