public function savelineresponseAction()
 {
     $post_values = $this->getRequest()->getPost();
     $result = array('status' => 'fail', 'msg' => 'Something went wrong, please try again.');
     if (count($post_values) > 0) {
         // if($post_values['consol_rating'] != '' && $post_values['consol_comments'] != '')
         // {
         $auth = Zend_Auth::getInstance();
         if ($auth->hasIdentity()) {
             $loginUserId = $auth->getStorage()->read()->id;
             $loginuserRole = $auth->getStorage()->read()->emprole;
             $loginuserGroup = $auth->getStorage()->read()->group_id;
             $loginuserFullName = $auth->getStorage()->read()->userfullname;
             $loginuserProfileImg = $auth->getStorage()->read()->profileimg;
             $loginuserEmail = $auth->getStorage()->read()->emailaddress;
             $loginuserEmpId = $auth->getStorage()->read()->employeeId;
             $loginuserArr = array('loginuserid' => $loginUserId, 'loginuserrole' => $loginuserRole, 'loginusergroup' => $loginuserGroup);
         }
         $model = new Default_Model_Appraisalemployeeratings();
         $app_manager_model = new Default_Model_Appraisalmanager();
         $manager_rating = $post_values['consol_rating'];
         $consol_comments = $post_values['consol_comments'];
         $employee_id = $post_values['hid_emp_id'];
         $appraisal_id = $post_values['hid_init_id'];
         $flag = $post_values['hid_btn_flag'];
         $hid_total_lines = $post_values['hid_total_lines'];
         $hid_line_status = $post_values['hid_line_status'];
         $line_mgr1 = '';
         $line_mgr2 = '';
         for ($i = 1; $i < $hid_line_status; $i++) {
             $line_mgr1 .= 'line_rating_' . $i . '+';
             $line_mgr2 .= 'line_rating_' . $i . ',';
         }
         //building variables for query
         $line_mgr1 = rtrim($line_mgr1, "+");
         //to get total ratings line managers given earlier.
         $get_total_rating = $model->get_total_rating($appraisal_id, $employee_id, $line_mgr1, $line_mgr2);
         $total_ratings = $get_total_rating['total_ratings'];
         //Not updating consolidated value for for draft status
         $new_rating = $flag == 'draft' ? $total_ratings / ($hid_line_status - 1) : ($total_ratings + $manager_rating) / $hid_line_status;
         // $rating_arr = $model->getRatingsByInitId($appraisal_id);
         $save_data = array('line_comment_' . $hid_line_status => $consol_comments, 'line_rating_' . $hid_line_status => $manager_rating, 'consolidated_rating' => $new_rating, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         if ($flag != 'draft') {
             /* Using this db call because to get latest value of number of line 
              * managersif line managers levels edited then   '$hid_total_lines' is failing.
              * 
              */
             $employee_id_str = $employee_id;
             //
             $total_lineMgr_count = $model->get_total_lineMgr_count($appraisal_id, $employee_id);
             if ($total_lineMgr_count == $hid_line_status) {
                 $save_data['appraisal_status'] = "Completed";
                 $mail_sub = "Completed";
             } else {
                 $save_data['appraisal_status'] = "Pending L" . ($hid_line_status + 1) . " ratings";
                 $mail_sub = "Submitted to Line " . ($hid_line_status + 1) . " Manager.";
                 $next_mgr_num = $hid_line_status + 1;
                 $next_line_mgr = $app_manager_model->getNextLineMgr($appraisal_id, $employee_id, $next_mgr_num);
                 if (!empty($next_line_mgr)) {
                     $next_line_mgr = $next_line_mgr['line_manager_' . $next_mgr_num];
                 }
                 $employee_id_str = $employee_id . "," . $next_line_mgr;
             }
             //$history_desc : changing the description text according to the draft flag and submit flag(Ref Array:app_history_disc_array)
             $history_desc = $this->app_history_disc_array[$hid_line_status + 1];
             $appHistoryData = array('employee_id' => $employee_id, 'pa_initialization_id' => $appraisal_id, 'description' => $history_desc, 'desc_emp_id' => $loginUserId, 'desc_emp_name' => $loginuserFullName, 'desc_emp_profileimg' => $loginuserProfileImg, 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             $appHistoryModel = new Default_Model_Appraisalhistory();
             $result2 = $appHistoryModel->SaveorUpdateAppraisalHistoryData($appHistoryData);
         }
         $save_where = " pa_initialization_id ='" . $appraisal_id . "' and employee_id = '" . $employee_id . "' and appraisal_status = 'Pending L" . $hid_line_status . " ratings' ";
         $save_result = $model->SaveorUpdateAppraisalSkillsData($save_data, $save_where);
         // Sending mail to Employee
         $employeeDetailsArr = $app_manager_model->getUserDetailsByEmpID($employee_id_str);
         $appraisalratingsmodel = new Default_Model_Appraisalratings();
         $appraisal_details = $appraisalratingsmodel->getappdata($appraisal_id);
         if (!empty($appraisal_details)) {
             $to_year = $appraisal_details['to_year'];
         }
         //Preparing Employee array for Bcc
         $empArr = array();
         if (!empty($employeeDetailsArr)) {
             $empArrList = '';
             $empUserIdArr = array();
             $toEmailId = '';
             $toEmailName = '';
             foreach ($employeeDetailsArr as $emp) {
                 array_push($empArr, $emp['emailaddress']);
                 //preparing Bcc array
                 array_push($empUserIdArr, $emp['user_id']);
                 if ($emp['user_id'] == $employee_id) {
                     $toEmailId = $emp['emailaddress'];
                     $toEmailName = $emp['userfullname'];
                     $toEmpId = $emp['employeeId'];
                     array_pop($empArr);
                 }
             }
             //pushing loginUserEmail to Bcc array
             array_push($empArr, $loginuserEmail);
             $options['subject'] = APPLICATION_NAME . ': Appraisal ' . $mail_sub;
             $options['header'] = 'Performance Appraisal : ' . $to_year;
             $options['toEmail'] = $toEmailId;
             $options['bcc'] = $empArr;
             $options['toName'] = $toEmailName;
             $options['message'] = "<div style='padding: 0; text-align: left; font-size:14px; font-family:Arial, Helvetica, sans-serif;'>\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'>{$loginuserFullName}({$loginuserEmpId}) has Updated {$toEmailName}({$toEmpId}) appraisal form. </div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 10px 0;'>Please <a href=" . BASE_URL . " target='_blank' style='color:#b3512f;'>click here</a> to login  to your <b>" . APPLICATION_NAME . "</b> account and check the details.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ";
             $mail_id = sapp_Global::_sendEmail($options);
         }
         if ($save_result) {
             $result = array('status' => 'success', 'msg' => 'Employee appraisal process ' . ($flag == 'draft' ? "drafted" : "submitted") . ' successfully');
         }
         // }
     }
     $this->_helper->json($result);
 }
 public function savelineresponseAction()
 {
     $post_values = $this->getRequest()->getPost();
     $result = array('status' => 'fail', 'msg' => 'Something went wrong, please try again.');
     if (count($post_values) > 0) {
         // if($post_values['consol_rating'] != '' && $post_values['consol_comments'] != '')
         // {
         $auth = Zend_Auth::getInstance();
         if ($auth->hasIdentity()) {
             $loginUserId = $auth->getStorage()->read()->id;
             $loginuserRole = $auth->getStorage()->read()->emprole;
             $loginuserGroup = $auth->getStorage()->read()->group_id;
             $loginuserFullName = $auth->getStorage()->read()->userfullname;
             $loginuserProfileImg = $auth->getStorage()->read()->profileimg;
             $loginuserArr = array('loginuserid' => $loginUserId, 'loginuserrole' => $loginuserRole, 'loginusergroup' => $loginuserGroup);
         }
         $model = new Default_Model_Appraisalemployeeratings();
         $manager_rating = $post_values['consol_rating'];
         $consol_comments = $post_values['consol_comments'];
         $employee_id = $post_values['hid_emp_id'];
         $appraisal_id = $post_values['hid_init_id'];
         $flag = $post_values['hid_btn_flag'];
         $hid_total_lines = $post_values['hid_total_lines'];
         $hid_line_status = $post_values['hid_line_status'];
         $line_mgr1 = '';
         $line_mgr2 = '';
         for ($i = 1; $i < $hid_line_status; $i++) {
             $line_mgr1 .= 'line_rating_' . $i . '+';
             $line_mgr2 .= 'line_rating_' . $i . ',';
         }
         //building variables for query
         $line_mgr1 = rtrim($line_mgr1, "+");
         //to get total ratings line managers given earlier.
         $get_total_rating = $model->get_total_rating($appraisal_id, $employee_id, $line_mgr1, $line_mgr2);
         $total_ratings = $get_total_rating['total_ratings'];
         //Not updating consolidated value for for draft status
         $new_rating = $flag == 'draft' ? $total_ratings / ($hid_line_status - 1) : ($total_ratings + $manager_rating) / $hid_line_status;
         // $rating_arr = $model->getRatingsByInitId($appraisal_id);
         $save_data = array('line_comment_' . $hid_line_status => $consol_comments, 'line_rating_' . $hid_line_status => $manager_rating, 'consolidated_rating' => $new_rating, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         if ($flag != 'draft') {
             /* Using this db call because to get latest value of number of line 
              * managersif line managers levels edited then   '$hid_total_lines' is failing.
              * 
              */
             $total_lineMgr_count = $model->get_total_lineMgr_count($appraisal_id, $employee_id);
             if ($total_lineMgr_count == $hid_line_status) {
                 $save_data['appraisal_status'] = "Completed";
             } else {
                 $save_data['appraisal_status'] = "Pending L" . ($hid_line_status + 1) . " ratings";
             }
         }
         $save_where = " pa_initialization_id ='" . $appraisal_id . "' and employee_id = '" . $employee_id . "' and appraisal_status = 'Pending L" . $hid_line_status . " ratings' ";
         $save_result = $model->SaveorUpdateAppraisalSkillsData($save_data, $save_where);
         //$history_desc : changing the description text according to the draft flag and submit flag(Ref Array:app_history_disc_array)
         $history_desc = $this->app_history_disc_array[$hid_line_status + 1];
         $appHistoryData = array('employee_id' => $employee_id, 'pa_initialization_id' => $appraisal_id, 'description' => $history_desc, 'desc_emp_id' => $loginUserId, 'desc_emp_name' => $loginuserFullName, 'desc_emp_profileimg' => $loginuserProfileImg, 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         if ($flag != 'draft') {
             $appHistoryModel = new Default_Model_Appraisalhistory();
             $result2 = $appHistoryModel->SaveorUpdateAppraisalHistoryData($appHistoryData);
         }
         if ($save_result) {
             $result = array('status' => 'success', 'msg' => 'Employee appraisal process ' . ($flag == 'draft' ? "drafted" : "submitted") . ' successfully');
         }
         // }
     }
     $this->_helper->json($result);
 }