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