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