public function addlinemanagerAction() { $ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('addlinemanager', 'html')->initContext(); $init_id = $this->_getParam('init_id', null); $context = $this->_getParam('context'); $employeeid = $this->_getParam('employeeid'); //$line1_id = $this->_getParam('line1_id',null); //$levels = $this->_getParam('levels',null); $app_levels = 1; $app_init_model = new Default_Model_Appraisalinit(); $app_qsmodel = new Default_Model_Appraisalqsmain(); $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings(); $levels = 1; $init_data = $app_init_model->getConfigData($init_id); if (count($init_data) > 0) { $init_data = $init_data[0]; } $employees_cnt = 1; $emp_data_arr = $app_qsmodel->getAllManagerIds($init_id, $employeeid); if (!empty($emp_data_arr)) { if ($emp_data_arr[0]['line_manager_1'] != '' && $emp_data_arr[0]['line_manager_1'] != 'null') { $levels = 1; $line1_id = $emp_data_arr[0]['line_manager_1']; } if ($emp_data_arr[0]['line_manager_2'] != '' && $emp_data_arr[0]['line_manager_2'] != 'null') { $levels = $levels + 1; } if ($emp_data_arr[0]['line_manager_3'] != '' && $emp_data_arr[0]['line_manager_3'] != 'null') { $levels = $levels + 1; } if ($emp_data_arr[0]['line_manager_4'] != '' && $emp_data_arr[0]['line_manager_4'] != 'null') { $levels = $levels + 1; } if ($emp_data_arr[0]['line_manager_5'] != '' && $emp_data_arr[0]['line_manager_5'] != 'null') { $levels = $levels + 1; } } $appEmpRatingsData = $appEmpRatingsModel->getSelectedAppraisalData_notused($init_id, $employeeid); if (!empty($appEmpRatingsData)) { if ($appEmpRatingsData['appstatus'] != 1) { $app_levels = $appEmpRatingsData['appstatus'] - 1; } } $this->view->init_data = $init_data; $this->view->init_id = $init_id; $this->view->context = $context; $this->view->line1_id = $line1_id; $this->view->levels = $levels; $this->view->employees_cnt = $employees_cnt; $this->view->app_levels = $app_levels; $this->view->employeeid = $employeeid; }
public function updatelinemanagerAction() { $this->_helper->layout->disableLayout(); $ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('updatelinemanager', 'json')->initContext(); $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginuserRole = $auth->getStorage()->read()->emprole; $loginuserGroup = $auth->getStorage()->read()->group_id; $loginUserEmpId = $auth->getStorage()->read()->employeeId; $loginUserEmail = $auth->getStorage()->read()->emailaddress; $loginUsername = $auth->getStorage()->read()->userfullname; $loginUserprofileimg = $auth->getStorage()->read()->profileimg; } $appraisalPrivMainModel = new Default_Model_Appraisalqsmain(); $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings(); $result['result'] = 'success'; $result['msg'] = ''; $send_mails = false; $appraisalid = $this->_request->getParam('appraisalid'); $employeeid = $this->_request->getParam('employeeid'); $line_1_mgr = $this->_request->getParam('line_1_mgr'); $line_2_mgr = $this->_request->getParam('line_2_mgr'); $line_3_mgr = $this->_request->getParam('line_3_mgr'); $line_4_mgr = $this->_request->getParam('line_4_mgr'); $line_5_mgr = $this->_request->getParam('line_5_mgr'); $levels = $this->_request->getParam('levels'); //checking equality of manager levels for sending mails if ($appraisalid && $employeeid) { $appraisal_level_arr = $appraisalPrivMainModel->getAllManagerIds($appraisalid, $employeeid); $appraisal_level_arr = $appraisal_level_arr[0]; $levels_pre = $appraisal_level_arr['manager_levels']; if ($levels_pre == $levels) { $preLine_1_mgr = $appraisal_level_arr['line_manager_1']; $preLine_2_mgr = $appraisal_level_arr['line_manager_2']; $preLine_3_mgr = $appraisal_level_arr['line_manager_3']; $preLine_4_mgr = $appraisal_level_arr['line_manager_4']; $preLine_5_mgr = $appraisal_level_arr['line_manager_5']; for ($i = 1; $i <= $levels_pre; $i++) { $preLine_mgr = "preLine_" . $i . "_mgr"; $line_mgr = "line_" . $i . "_mgr"; if (${$line_mgr} != ${$preLine_mgr}) { $send_mails = true; } } } else { $send_mails = true; } } //end checking send mails to employees if ($appraisalid && $employeeid) { $trDb = Zend_Db_Table::getDefaultAdapter(); $trDb->beginTransaction(); try { $data = array('line_manager_1' => $line_1_mgr != '' ? $line_1_mgr : NULL, 'line_manager_2' => $line_2_mgr != '' ? $line_2_mgr : NULL, 'line_manager_3' => $line_3_mgr != '' ? $line_3_mgr : NULL, 'line_manager_4' => $line_4_mgr != '' ? $line_4_mgr : NULL, 'line_manager_5' => $line_5_mgr != '' ? $line_5_mgr : NULL, 'manager_levels' => is_numeric($levels) ? $levels : 1, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); $privilegeswhere = " employee_id = '" . $employeeid . "' and pa_initialization_id='" . $appraisalid . "' and module_flag=1 and isactive=1 "; $empratingswhere = " employee_id = '" . $employeeid . "' and pa_initialization_id='" . $appraisalid . "' and isactive=1 "; $appraisalPrivMainModel->SaveorUpdatePrivilegeData($data, $privilegeswhere); //remove the manager_levels as this column is not there in main_pa_employee_ratings table unset($data['manager_levels']); $appraisalempratingsmodel->SaveorUpdateAppraisalSkillsData($data, $empratingswhere); if ($send_mails == true) { /** Start * Sending Mails to employees */ $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})"; //Preparing string with line manager ids $mgrStr = ''; for ($i = 1; $i <= $levels; $i++) { $mgr_str = 'line_' . $i . '_mgr'; //$line_1_mgr if (is_numeric(${$mgr_str})) { $mgrStr .= ${$mgr_str} . ','; } } $mgrStr = rtrim($mgrStr, ","); $appraisalratingsmodel = new Default_Model_Appraisalratings(); $appraisal_details = $appraisalratingsmodel->getappdata($appraisalid); if (!empty($appraisal_details)) { $to_year = $appraisal_details['to_year']; } $employeeDetailsArr = $appraisalPrivMainModel->getManagerDetailsByIds($employeeid, $mgrStr); $mgr_array = array(); $mgr_array = explode(",", $mgrStr); //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'] == $employeeid) { $toEmailId = $emp['emailaddress']; $toEmailName = $emp['userfullname']; $toEmpId = $emp['employeeId']; array_pop($empArr); } } $index = array_search($employeeid, $empUserIdArr); unset($employeeDetailsArr[$index]); $mail_str = ''; for ($j = 0; $j < sizeof($mgr_array); $j++) { foreach ($employeeDetailsArr as $employee) { if ($mgr_array[$j] == $employee['user_id']) { $profile_pic = $employee['profileimg']; $cnt = $j + 1; if ($profile_pic != '') { $src = DOMAIN . "public/uploads/profile/" . $profile_pic; } else { $src = MEDIA_PATH . "images/default-profile-pic.jpg"; } $mail_str .= "<div style='padding:20px 0 0 0;color:#3b3b3b;'>Line {$cnt} Manager : " . $employee['userfullname'] . " <img src=" . $src . " onError=this.src=" . MEDIA_PATH . "images/default-profile-pic.jpg width='30px' height='30px' /></div>"; } } } } //pushing loginUserEmail to Bcc array array_push($empArr, $loginUserEmail); $options['subject'] = APPLICATION_NAME . ': Change in Line Managers'; $options['header'] = 'Performance Appraisal : ' . $to_year; $options['bcc'] = $empArr; $options['toEmail'] = $toEmailId; $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;'>Line Managers for " . $toEmailName . "(" . $toEmpId . ") have been modified by " . $loginUsername . $emp_id_str . "</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{$mail_str}\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); /** * End mails sending */ } $trDb->commit(); } catch (Exception $e) { $trDb->rollBack(); $result['result'] = 'error'; $result['msg'] = $e->getMessage(); } } $this->_helper->json($result); }