public function checkperformanceduedate()
 {
     $app_init_model = new Default_Model_Appraisalinit();
     $app_ratings_model = new Default_Model_Appraisalemployeeratings();
     $active_appraisal_Arr = $app_init_model->getActiveAppraisals();
     $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $app_manager_model = new Default_Model_Appraisalmanager();
     $usersmodel = new Default_Model_Users();
     $current_day = new DateTime('now');
     $current_day->sub(new DateInterval('P1D'));
     if (!empty($active_appraisal_Arr)) {
         foreach ($active_appraisal_Arr as $appval) {
             if ($appval['managers_due_date']) {
                 $manager_due_date = new DateTime($appval['managers_due_date']);
             } else {
                 $manager_due_date = '';
             }
             if ($appval['employees_due_date']) {
                 $emp_due_date = new DateTime($appval['employees_due_date']);
             } else {
                 $emp_due_date = '';
             }
             $due_date = $appval['enable_step'] == 2 ? $emp_due_date : $manager_due_date;
             $interval = $current_day->diff($due_date);
             $interval->format('%d');
             $interval = $interval->days;
             $appIdArr = array();
             $appIdList = '';
             if ($interval <= 2) {
                 if ($appval['enable_step'] == 2) {
                     $employeeidArr = $app_ratings_model->getEmployeeIds($appval['id'], 'cron');
                     if (!empty($employeeidArr)) {
                         $empIdArr = array();
                         $empIdList = '';
                         foreach ($employeeidArr as $empval) {
                             array_push($empIdArr, $empval['employee_id']);
                         }
                         if (!empty($empIdArr)) {
                             $empIdList = implode(',', $empIdArr);
                             $employeeDetailsArr = $app_manager_model->getUserDetailsByEmpID($empIdList);
                             //Fetching employee details
                             if (!empty($employeeDetailsArr)) {
                                 $empArr = array();
                                 foreach ($employeeDetailsArr as $emp) {
                                     array_push($empArr, $emp['emailaddress']);
                                     //preparing Bcc array
                                 }
                                 $optionArr = array('subject' => 'Self Appraisal Submission Pending', 'header' => 'Performance Appraisal', 'toemail' => SUPERADMIN_EMAIL, 'toname' => 'Super Admin', 'bcc' => $empArr, '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;'>Self appraisal submission is pending.</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 to check the details.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ", 'cron' => 'yes');
                                 sapp_PerformanceHelper::saveCronMail($optionArr);
                             }
                         }
                     }
                 } else {
                     $getLine1ManagerId = $appraisalPrivMainModel->getLine1ManagerIdMain($appval['id']);
                     if (!empty($getLine1ManagerId)) {
                         $empArr = array();
                         foreach ($getLine1ManagerId as $val) {
                             array_push($empArr, $val['emailaddress']);
                             //preparing Bcc array
                         }
                         $optionArr = array('subject' => 'Manager Appraisal Submission Pending', 'header' => 'Performance Appraisal', 'toemail' => SUPERADMIN_EMAIL, 'toname' => 'Super Admin', 'bcc' => $empArr, '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;'>Manager appraisal submission is pending.</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 to check the details.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ", 'cron' => 'yes');
                         sapp_PerformanceHelper::saveCronMail($optionArr);
                     }
                 }
             }
         }
     }
 }
 public function saveAction()
 {
     $auth = Zend_Auth::getInstance();
     $loginuserFullName = '';
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
         $loginuserProfileImg = $auth->getStorage()->read()->profileimg;
         $loginuserEmail = $auth->getStorage()->read()->emailaddress;
         $loginuserFullName = $auth->getStorage()->read()->userfullname;
         $loginUserEmpId = $auth->getStorage()->read()->employeeId;
     }
     try {
         $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
         $app_init_model = new Default_Model_Appraisalinit();
         $id = $this->_request->getParam('id');
         $employee_id = $this->_request->getParam('employee_id');
         $initialization_id = $this->_request->getParam('initialization_id');
         $config_id = $this->_request->getParam('config_id');
         $flag = $this->_request->getParam('flag');
         $app_status = $this->_request->getParam('app_status');
         $mgr_levels = $this->_request->getParam('mgr_levels');
         $ratingsData = $appEmpRatingsModel->getAppRatingsDataByConfgId($config_id, $initialization_id);
         $ratingValues = array();
         foreach ($ratingsData as $rd) {
             $ratingValues[$rd['id']] = $rd['rating_value'];
         }
         $appData = array('modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
         $emp_rating_arr = $this->_request->getParam('emp_rating');
         $emp_comment_arr = $this->_request->getParam('emp_comment');
         $emp_response = array();
         if (sizeof($emp_rating_arr) > 0 || sizeof($emp_comment_arr) > 0) {
             foreach ($emp_rating_arr as $qid => $val) {
                 if (isset($emp_rating_arr[$qid])) {
                     $rating_id = array_search($emp_rating_arr[$qid], $ratingValues);
                 } else {
                     $rating_id = '';
                 }
                 $emp_response[$qid] = array('comment' => $emp_comment_arr[$qid], 'rating_id' => $rating_id);
             }
         }
         $appData['employee_response'] = json_encode($emp_response, true);
         $curent_level = array_search($app_status, $this->app_status_array);
         if ($flag == 'submit') {
             $appData['appraisal_status'] = $curent_level + 1;
             $history_desc = $this->app_history_disc_array[$curent_level];
             $appHistoryData = array('employee_id' => $employee_id, 'pa_initialization_id' => $initialization_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);
             /* Update employee response column */
             $appraisaldata = $app_init_model->getConfigData($initialization_id);
             if ($appraisaldata[0]['employee_response'] == 1) {
                 $initdata = array('employee_response' => 2, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 $initwhere = array('id=?' => $initialization_id);
                 $app_init_model->SaveorUpdateAppraisalInitData($initdata, $initwhere);
             }
             /*
              *   Logs Storing
              */
             $menumodel = new Default_Model_Menu();
             $actionflag = '';
             $tableid = '';
             $actionflag = 1;
             $menuidArr = $menumodel->getMenuObjID('/appraisalself');
             $menuID = $menuidArr[0]['id'];
             sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
             /*
              *  Logs storing ends
              */
             /** Start
              * Sending Mails to employees
              */
             //to get initialization details using appraisal Id for Business Unit,Department,To Year
             $appraisalratingsmodel = new Default_Model_Appraisalratings();
             $appraisal_details = $appraisalratingsmodel->getappdata($initialization_id);
             if (!empty($appraisal_details)) {
                 $bunit = $appraisal_details['unitname'];
                 $dept = $appraisal_details['deptname'];
                 $to_year = $appraisal_details['to_year'];
             }
             $dept_str = $dept == '' ? " " : "and <b>{$dept}</b> department";
             $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
             $app_manager_model = new Default_Model_Appraisalmanager();
             $getLineManager = $app_manager_model->getLineMgr($initialization_id, $loginUserId);
             if (!empty($getLineManager)) {
                 $line_mgr = $getLineManager['line_manager_1'];
                 $employeeDetailsArr = $app_manager_model->getUserDetailsByEmpID($line_mgr);
                 $employeeDetailsArr = $employeeDetailsArr[0];
                 // Sending mail to Manager
                 if (!empty($employeeDetailsArr)) {
                     $options['subject'] = APPLICATION_NAME . ': Self Appraisal Submitted';
                     $options['header'] = "Performance Appraisal : {$to_year}";
                     $options['toEmail'] = $employeeDetailsArr['emailaddress'];
                     $options['toName'] = $employeeDetailsArr['userfullname'];
                     $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;'>Dear " . $employeeDetailsArr['userfullname'] . ",</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 . $emp_id_str . " has submitted 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 <b>" . APPLICATION_NAME . "</b>  and check the appraisal ratings and comments.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ";
                     $mail_id = sapp_Global::_sendEmail($options);
                 }
             }
             //Sending mail to Employee
             $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Submitted to Line1 manager';
             $options['header'] = "Performance Appraisal : {$to_year}";
             $options['toEmail'] = $loginuserEmail;
             $options['toName'] = $loginuserFullName;
             $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;'>Dear {$loginuserFullName},</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;'>Your appraisal form is submitted successfully to your Line1 Manager," . $employeeDetailsArr['userfullname'] . "(" . $employeeDetailsArr['employeeId'] . ") </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.</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div> ";
             $mail_id = sapp_Global::_sendEmail($options);
         }
         /**
          * End
          */
         $appWhere = array('id=?' => $id);
         $result1 = $appEmpRatingsModel->SaveorUpdateAppraisalSkillsData($appData, $appWhere);
         if ($result1) {
             $msg = 'saved';
         } else {
             $msg = 'err';
         }
     } catch (Exception $e) {
         //echo $e->getMessage();
         //echo $e->getTrace();
         //echo $e->getTraceAsString();
         $msg = "Something went wrong, please try again.";
     }
     $this->_helper->json(array('msg' => $msg));
 }
 public function savemngresponseAction()
 {
     $post_values = $this->getRequest()->getPost();
     $result = array('status' => 'fail', 'msg' => 'Something went wrong, please try again.');
     if (count($post_values) > 0) {
         if (isset($post_values['hid_employee_id']) && $post_values['hid_employee_id'] != '' && isset($post_values['hid_appraisal_id']) && $post_values['hid_appraisal_id'] != '') {
             //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;
                 $loginuserEmail = $auth->getStorage()->read()->emailaddress;
                 $loginuserProfileImg = $auth->getStorage()->read()->profileimg;
                 $loginuserEmpId = $auth->getStorage()->read()->employeeId;
                 $loginuserArr = array('loginuserid' => $loginUserId, 'loginuserrole' => $loginuserRole, 'loginusergroup' => $loginuserGroup);
             }
             $model = new Default_Model_Appraisalemployeeratings();
             $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
             $consol_rating = isset($post_values['consol_rating']) && trim($post_values['consol_rating']) != 0 ? $post_values['consol_rating'] : NULL;
             $consol_comments = isset($post_values['consol_comments']) ? $post_values['consol_comments'] : '';
             $employee_id = $post_values['hid_employee_id'];
             $appraisal_id = $post_values['hid_appraisal_id'];
             $question_rating = isset($post_values['question_rating']) ? $post_values['question_rating'] : '';
             $question_comments = isset($post_values['question_comments']) ? $post_values['question_comments'] : '';
             $skill_ids = isset($post_values['emp_skills']) ? $post_values['emp_skills'] : '';
             $skill_rating = isset($post_values['skill_rating']) ? $post_values['skill_rating'] : '';
             $flag = $post_values['hid_btn_flag'];
             $ratings_ids_arr = $model->getRatingsByInitId($appraisal_id);
             $mng_response_arr = array();
             $skill_response_arr = array();
             $response_json = '';
             $skill_json = '';
             if (!empty($ratings_ids_arr)) {
                 if (!empty($question_comments)) {
                     foreach ($question_comments as $qid => $qc) {
                         // if($qc!='')
                         $mng_response_arr[$qid]['comment'] = isset($qc) && trim($qc) != '' ? $qc : '';
                         // if($qid!='' && $question_rating[$qid]!='')
                         $mng_response_arr[$qid]['rating'] = isset($ratings_ids_arr[$question_rating[$qid]]) ? $ratings_ids_arr[$question_rating[$qid]] : '';
                     }
                 }
                 if (!empty($skill_ids)) {
                     foreach ($skill_ids as $key => $sk_id) {
                         $skill_response_arr[$sk_id] = isset($ratings_ids_arr[$skill_rating[$key]]) ? $ratings_ids_arr[$skill_rating[$key]] : 0;
                     }
                 }
             }
             if (!empty($mng_response_arr)) {
                 $response_json = json_encode($mng_response_arr);
             }
             if (!empty($skill_response_arr)) {
                 $skill_json = json_encode($skill_response_arr);
             }
             $save_data = array('manager_response' => $response_json != '' ? $response_json : NULL, 'skill_response' => $skill_json != '' ? $skill_json : NULL, 'line_comment_1' => $consol_comments, 'line_rating_1' => $consol_rating, 'consolidated_rating' => $consol_rating, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             if ($flag != 'draft') {
                 $line_2_mgr = '';
                 $appEmpQuesPrivData = $appEmpRatingsModel->getAppEmpQuesPrivData($appraisal_id, $employee_id);
                 $line_2_mgr = $appEmpQuesPrivData[0]['line_manager_2'];
                 if (!isset($line_2_mgr) && $line_2_mgr == '') {
                     $save_data['appraisal_status'] = "Completed";
                     $mail_sub = "Completed";
                     // using for mail sending scenario.
                 } else {
                     $save_data['appraisal_status'] = "Pending L2 ratings";
                     $mail_sub = "Submitted to Line 2 Manager.";
                 }
                 $history_desc = $this->app_history_disc_array[2];
                 $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);
                 //sending mails and Logsmanager action
                 $menumodel = new Default_Model_Menu();
                 $tableid = '';
                 $actionflag = 1;
                 $menuidArr = $menumodel->getMenuObjID('/appraisalself');
                 $menuID = $menuidArr[0]['id'];
                 $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
                 /** Start
                  * Sending Mails to employees
                  */
                 // Sending mail to Employee
                 $employee_id_str = $employee_id;
                 $app_manager_model = new Default_Model_Appraisalmanager();
                 if ($line_2_mgr != '' && is_numeric($line_2_mgr)) {
                     $employee_id_str = $employee_id . ',' . $line_2_mgr;
                 }
                 $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);
                 }
             }
             $save_where = " pa_initialization_id ='" . $appraisal_id . "' and employee_id = '" . $employee_id . "' and appraisal_status = 'Pending L1 ratings' ";
             $save_result = $model->SaveorUpdateAppraisalSkillsData($save_data, $save_where);
             if ($save_result) {
                 $result = array('status' => 'success', 'msg' => 'Employee appraisal process ' . ($flag == 'draft' ? "drafted" : "submitted") . ' successfully');
             }
             //}
         }
     }
     $this->_helper->json($result);
 }
 public function initializeemployeeratings($appraisalid, $initialize_Arr)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
         $loginuserArr = array('loginuserid' => $loginUserId, 'loginuserrole' => $loginuserRole, 'loginusergroup' => $loginuserGroup);
         $loginUserEmpId = $auth->getStorage()->read()->employeeId;
         $loginUserfullname = $auth->getStorage()->read()->userfullname;
     }
     $appraisalinitmodel = new Default_Model_Appraisalinit();
     $appraisalqsmodel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     //$appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $app_manager_model = new Default_Model_Appraisalmanager();
     $usersmodel = new Default_Model_Users();
     $departmentsmodel = new Default_Model_Departments();
     $announcementsModel = new Default_Model_Announcements();
     $deptids = '';
     $title = 'Performance Appraisal';
     $description = 'Performance appraisal initialized';
     $result = array();
     $id = '';
     if ($appraisalid) {
         $trDb = Zend_Db_Table::getDefaultAdapter();
         $trDb->beginTransaction();
         try {
             /** Start
              * Updating initialization table
              */
             //$data = $appraisalinitmodel->getConfigData($appraisalid);
             //$appraisaldata = $data[0];
             if (!empty($initialize_Arr)) {
                 $init_Arr = array('enable_step' => $initialize_Arr['enable_step'], 'managers_due_date' => sapp_Global::change_date($initialize_Arr['managers_due_date'], 'database'), 'employees_due_date' => sapp_Global::change_date($initialize_Arr['employees_due_date'], 'database'), 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 $where = array('id=?' => $appraisalid);
                 $Id = $appraisalinitmodel->SaveorUpdateAppraisalInitData($init_Arr, $where);
             }
             if ($initialize_Arr['enable_step'] == 2) {
                 /**
                  * Start 
                  * Inserting or Updating employee ratings table when enabled to employees
                  * If record exists then updating else inserting
                  */
                 $employeeidArr = $appraisalqsmodel->getemployeeIDs($appraisalid);
                 if (!empty($employeeidArr)) {
                     foreach ($employeeidArr as $emp) {
                         $emprating_Arr = array('pa_initialization_id' => $appraisalid, 'employee_id' => $emp['employee_id'], 'line_manager_1' => $emp['line_manager_1'] != '' ? $emp['line_manager_1'] : NULL, 'line_manager_2' => $emp['line_manager_2'] != '' ? $emp['line_manager_2'] : NULL, 'line_manager_3' => $emp['line_manager_3'] != '' ? $emp['line_manager_3'] : NULL, 'line_manager_4' => $emp['line_manager_4'] != '' ? $emp['line_manager_4'] : NULL, 'line_manager_5' => $emp['line_manager_5'] != '' ? $emp['line_manager_5'] : NULL, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                         $employeeexistArr = $appraisalempratingsmodel->checkEmployeeExists($appraisalid, $emp['employee_id']);
                         if ($employeeexistArr[0]['empcount'] > 0) {
                             $qwhere = " employee_id = '" . $emp['employee_id'] . "' and pa_initialization_id='" . $appraisalid . "' and isactive=1";
                         } else {
                             $emprating_Arr['createdby'] = $loginUserId;
                             $emprating_Arr['createdby_role'] = $loginuserRole;
                             $emprating_Arr['createdby_group'] = $loginuserGroup;
                             $emprating_Arr['createddate'] = gmdate("Y-m-d H:i:s");
                             $qwhere = '';
                         }
                         $appraisalempratingsmodel->SaveorUpdateAppraisalSkillsData($emprating_Arr, $qwhere);
                         /**
                          * End
                          */
                     }
                 }
             }
             //enable_step=2 scenario
             /**
             					End
             */
             //Logs storing
             $actionflag = 1;
             $tableid = '';
             $menuID = INITIALIZE_APPRAISAL;
             sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
             /**
              * Sending mails to managers OR employees based on enable step.
              */
             $app_manager_model = new Default_Model_Appraisalmanager();
             $appraisalratingsmodel = new Default_Model_Appraisalratings();
             //to get initialization details using appraisal Id for Business Unit,Department,To Year
             $appraisal_details = $appraisalratingsmodel->getappdata($appraisalid);
             if (!empty($appraisal_details)) {
                 $businessUnit = $appraisal_details['businessunit_id'];
                 $department = $appraisal_details['deptid'];
                 $bunit = $appraisal_details['unitname'];
                 $dept = $appraisal_details['deptname'];
                 $to_year = $appraisal_details['to_year'];
                 $appraisalconfigmodel = new Default_Model_Appraisalconfig();
                 if ($department != '') {
                     $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
                 } else {
                     $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, '');
                 }
                 $dept_str = $dept == '' ? " " : "and department <b>{$dept}</b> ";
                 $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
                 //Preparing Employee array for Bcc
                 $empArr = array();
                 if (!empty($employeeDetailsArr)) {
                     $empArrList = '';
                     foreach ($employeeDetailsArr as $emp) {
                         array_push($empArr, $emp['emailaddress']);
                     }
                 }
                 $mail_str = $initialize_Arr['enable_step'] == 1 ? 'to managers' : 'to employees';
                 $empmgrArr = array();
                 if ($initialize_Arr['enable_step'] == 1) {
                     $getLine1ManagerId = $appraisalqsmodel->getLine1ManagerIdMain($appraisalid);
                     foreach ($getLine1ManagerId as $mgr) {
                         array_push($empmgrArr, $mgr['emailaddress']);
                     }
                 } else {
                     $empIdArr = array();
                     $empIdList = '';
                     $employeeidArr = $appraisalqsmodel->getemployeeIDs($appraisalid);
                     //fetching Employee Ids
                     if (!empty($employeeidArr)) {
                         foreach ($employeeidArr as $emp) {
                             array_push($empIdArr, $emp['employee_id']);
                             array_push($empIdArr, $emp['line_manager_1']);
                         }
                         $empIdList = implode(',', $empIdArr);
                         //Preparing Employee Id List
                         $empDetailsArr = $app_manager_model->getUserDetailsByEmpID($empIdList);
                         //Fetching employee details
                         if (!empty($empDetailsArr)) {
                             foreach ($empDetailsArr as $emp) {
                                 array_push($empmgrArr, $emp['emailaddress']);
                                 //preparing Bcc array
                             }
                         }
                     }
                 }
                 $totalArr = array_merge($empArr, $empmgrArr);
                 //Sending mail to Super admin,HR,Management
                 $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Initialization';
                 $options['header'] = 'Performance Appraisal Initialization : ' . $to_year;
                 $options['toEmail'] = SUPERADMIN_EMAIL;
                 $options['toName'] = 'Super Admin';
                 $options['bcc'] = $totalArr;
                 $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;'>Performance appraisal has been initialized {$mail_str} for the year <b>{$to_year}</b> for business unit <b>{$bunit}</b>  {$dept_str} by " . $loginUserfullname . $emp_id_str . " </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 to 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);
             }
             $trDb->commit();
             $result['msg'] = 'Appraisal process updated successfully';
             $result['result'] = 'success';
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Appraisal process updated successfully"));
         } catch (Exception $e) {
             $trDb->rollBack();
             $result['msg'] = $e->getMessage();
             $result['result'] = 'error';
         }
     }
     return $result;
 }