/**
  * This action is used to save/edit group details created by manager.
  * @return json Array of status and message.
  */
 public function savemanagergroupAction()
 {
     $post_values = $this->getRequest()->getPost();
     //echo "<pre>";print_r($post_values);echo "</pre>";exit;
     $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);
     }
     $finalarray = $deleted_emp_arr = $result = array();
     $mgrIndex = 'MC';
     $mgrratIndex = 'MR';
     $empIndex = 'EC';
     $empratIndex = 'ER';
     $questionArr = $post_values['check'];
     $managercmntsArr = isset($post_values['mgrcmnt']) ? $post_values['mgrcmnt'] : array();
     $managerratingsArr = isset($post_values['mgrrating']) ? $post_values['mgrrating'] : array();
     $empratingsArr = isset($post_values['empratings']) ? $post_values['empratings'] : array();
     $empcmntsArr = isset($post_values['empcmnt']) ? $post_values['empcmnt'] : array();
     $empids = $post_values['existetd_mem_str'];
     $groupid = $post_values['groupid'];
     $group_name = $post_values['group_name'];
     $appraisal_id = $post_values['appraisal_id'];
     $manager_id = $post_values['manager_id'];
     $original_mem_str = $post_values['original_mem_str'];
     $action_flag = $post_values['action_flag'];
     $selected_emp_arr = explode(',', $empids);
     $result['flag'] = 'appraisalmanager';
     $trDb = Zend_Db_Table::getDefaultAdapter();
     $trDb->beginTransaction();
     try {
         if ($group_name != '' && !empty($questionArr) && $empids != '') {
             $appraisalGroupModel = new Default_Model_Appraisalgroups();
             $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
             $CheckDuplicateName = $appraisalGroupModel->getDuplicateGroupName($appraisal_id, $group_name, $groupid != '' ? $groupid : '');
             if (!empty($CheckDuplicateName)) {
                 $duplicateGroupName = $CheckDuplicateName[0]['grpcnt'];
             }
             if ($duplicateGroupName > 0) {
                 $result['result'] = 'error';
                 $result['msg'] = 'Group name already exists.';
             } else {
                 if (!empty($original_mem_str)) {
                     $privilegesdata = array('manager_group_id' => null, 'manager_qs' => null, 'manager_qs_privileges' => null, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                     $privielgeswhere = " pa_initialization_id = '" . $appraisal_id . "' and line_manager_1 = '" . $manager_id . "' and employee_id IN ({$original_mem_str}) and module_flag=1 and isactive= 1 ";
                     $updateprivileges = $appraisalPrivMainModel->SaveorUpdatePrivilegeData($privilegesdata, $privielgeswhere);
                 }
                 if (!empty($questionArr)) {
                     for ($i = 0; $i < sizeof($questionArr); $i++) {
                         $managercomments = isset($managercmntsArr[$questionArr[$i]]) ? 1 : 0;
                         $managerratings = isset($managerratingsArr[$questionArr[$i]]) ? 1 : 0;
                         $empratings = isset($empratingsArr[$questionArr[$i]]) ? 1 : 0;
                         $empcomments = isset($empcmntsArr[$questionArr[$i]]) ? 1 : 0;
                         $commntsarry = array($mgrratIndex => $managerratings, $mgrIndex => $managercomments, $empratIndex => $empratings, $empIndex => $empcomments);
                         $finalarray[$questionArr[$i]] = $commntsarry;
                     }
                     $questions = implode(',', $questionArr);
                     $qsprivileges = json_encode($finalarray, true);
                     $groupdata = array('pa_initialization_id' => $appraisal_id, 'group_name' => trim($group_name), 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                     if ($groupid != '') {
                         $where = array('id=?' => $groupid);
                         $actionflag = 2;
                     } else {
                         $groupdata['createdby_role'] = $loginuserRole;
                         $groupdata['createdby_group'] = $loginuserGroup;
                         $groupdata['createdby'] = $loginUserId;
                         $groupdata['createddate'] = gmdate("Y-m-d H:i:s");
                         $groupdata['isactive'] = 1;
                         $where = '';
                         $actionflag = 1;
                     }
                     $Id = $appraisalGroupModel->SaveorUpdateAppraisalGroupsData($groupdata, $where);
                     if ($Id != 'update') {
                         $groupid = $Id;
                     }
                     $privilegesdata = array('manager_group_id' => $groupid, 'manager_qs' => $questions, 'manager_qs_privileges' => $qsprivileges, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                     $privielgeswhere = " pa_initialization_id = '" . $appraisal_id . "' and line_manager_1 = '" . $manager_id . "' and employee_id IN ({$empids}) and module_flag=1 and isactive= 1 ";
                     $updateprivileges = $appraisalPrivMainModel->SaveorUpdatePrivilegeData($privilegesdata, $privielgeswhere);
                     //echo '<pre>';print_r($finalarray);echo "</pre>";
                     $trDb->commit();
                     $result['result'] = 'success';
                     $result['msg'] = "Group " . ($action_flag == 'edit' ? "updated" : "created") . " successfully";
                 } else {
                     $result['result'] = 'error';
                     $result['msg'] = 'No questions to add';
                 }
             }
         } else {
             $result['result'] = 'error';
             $result['msg'] = 'Something went wrong.';
         }
     } catch (Exception $e) {
         $trDb->rollBack();
         $result['result'] = 'error';
         $result['msg'] = $e->getMessage();
     }
     $this->_helper->json($result);
 }
Exemplo n.º 2
0
 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 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;
     }
     $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $result['result'] = 'success';
     $result['msg'] = '';
     $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');
     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, '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);
             $appraisalempratingsmodel->SaveorUpdateAppraisalSkillsData($data, $empratingswhere);
             $trDb->commit();
         } catch (Exception $e) {
             $trDb->rollBack();
             $result['result'] = 'error';
             $result['msg'] = $e->getMessage();
         }
     }
     $this->_helper->json($result);
 }
 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);
 }
Exemplo n.º 5
0
 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();
     $usersmodel = new Default_Model_Users();
     //echo'<pre>';print_r($active_appraisal_Arr);exit;
     $current_day = new DateTime('now');
     $current_day->sub(new DateInterval('P1D'));
     if (!empty($active_appraisal_Arr)) {
         foreach ($active_appraisal_Arr as $appval) {
             if ($appval['enable_step'] == 2) {
                 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 = '';
                 }
                 $employeeidArr = $app_ratings_model->getEmployeeIds($appval['id'], 'cron');
                 if (!empty($employeeidArr)) {
                     foreach ($employeeidArr as $empval) {
                         if ($empval['appraisal_status'] != 7) {
                             $interval = $current_day->diff($emp_due_date);
                             $interval->format('%d');
                             $interval = $interval->days;
                             if ($interval <= 1) {
                                 $employeeDetailsArr = $usersmodel->getUserDetailsByID($empval['employee_id'], '');
                                 $optionArr = array('subject' => 'Performance Appraisal Pending', 'header' => 'Performance Appraisal', 'toemail' => $employeeDetailsArr[0]['userfullname'], 'toname' => $employeeDetailsArr[0]['emailaddress'], 'message' => 'Dear ' . $employeeDetailsArr[0]['userfullname'] . ', performance appraisal is pending.', 'cron' => 'yes');
                                 sapp_PerformanceHelper::saveCronMail($optionArr);
                             }
                         }
                     }
                 }
             } else {
                 if ($appval['managers_due_date']) {
                     $manager_due_date = new DateTime($appval['managers_due_date']);
                 } else {
                     $manager_due_date = '';
                 }
                 if ($appval['manager_ids']) {
                     $manager_comp_array = explode(',', $appval['manager_ids']);
                 } else {
                     $manager_comp_array = array();
                 }
                 $getLine1ManagerId = $appraisalPrivMainModel->getLine1ManagerIdMain($appval['id']);
                 if (!empty($getLine1ManagerId)) {
                     foreach ($getLine1ManagerId as $val) {
                         if (!in_array($val['line_manager_1'], $manager_comp_array)) {
                             $interval = $current_day->diff($manager_due_date);
                             $interval->format('%d');
                             $interval = $interval->days;
                             if ($interval <= 1) {
                                 $optionArr = array('subject' => 'Performance Appraisal Pending', 'header' => 'Performance Appraisal', 'toemail' => $val['emailaddress'], 'toname' => $val['userfullname'], 'message' => 'Dear ' . $val['userfullname'] . ', performance appraisal is pending.', 'cron' => 'yes');
                                 sapp_PerformanceHelper::saveCronMail($optionArr);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 6
0
 public function savemngrorghierarchyAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $app_init_model = new Default_Model_Appraisalinit();
     $ques_temp_model = new Default_Model_Appraisalqstemp();
     $ques_org_model = new Default_Model_Appraisalqsmain();
     $app_rating_model = new Default_Model_Appraisalratings();
     // $init_id = $this->_getParam('init_id',null);
     $init_param = $this->_getParam('i', null);
     $init_id = sapp_Global::_decrypt($init_param);
     $init_data = $app_init_model->getConfigData($init_id);
     if (count($init_data) > 0) {
         $init_data = $init_data[0];
     }
     $this->view->init_id = $init_id;
     $this->view->init_data = $init_data;
     $this->view->msg_arr = array();
     $ratingsflag = 'false';
     $checkRatingsExists = $app_rating_model->getAppraisalRatingsbyInitId($init_id);
     if (!empty($checkRatingsExists)) {
         $ratingsflag = 'true';
     }
     $red_result = "";
     $type_arr = array('line' => 1, 'report' => 2);
     $trDb = Zend_Db_Table::getDefaultAdapter();
     //get manager ids as comma seperated string
     $manager_ids = $this->_getParam('mid', null);
     //break the manager ids into array
     $mngr_ids_array = explode(',', $manager_ids);
     $get_managers_data = array();
     $get_managers_data = $app_init_model->getManagers_report($init_id);
     $final_managers_data = array();
     //get the managers data and build an array with manager id as key
     if (isset($get_managers_data) && count($get_managers_data) > 0) {
         foreach ($get_managers_data as $data) {
             $mngr_id = isset($data['user_id']) ? $data['user_id'] : 0;
             $final_managers_data[$mngr_id] = $data;
         }
     }
     if (isset($mngr_ids_array) && count($mngr_ids_array) > 0) {
         $choose_option = 'report';
         foreach ($mngr_ids_array as $mngr) {
             $tot_ids = array();
             $context = 'add';
             $content = array();
             $content = $app_init_model->getdisplayacontentreportacc($init_id, $mngr);
             if ($context == 'add') {
                 $init_sdata = array('manager_level_type' => $type_arr[$choose_option]);
                 $app_result = array();
                 $app_result = $app_init_model->SaveorUpdateAppraisalInitData($init_sdata, " id = " . $init_id);
                 $qresult = '';
                 if ($app_result === 'update') {
                     if (count($content) > 0) {
                         foreach ($content as $cont) {
                             if (is_numeric($cont['user_id'])) {
                                 array_push($tot_ids, $cont['user_id']);
                             }
                         }
                     }
                     $line_str_arr = array();
                     $line_str_arr['line_manager_1'] = $mngr;
                     if (count($tot_ids) > 0) {
                         foreach ($tot_ids as $emp_id) {
                             $qdata = array('pa_initialization_id' => $init_id, 'manager_levels' => 1, 'employee_id' => $emp_id, 'module_flag' => 1, 'createdby' => $loginUserId, 'createdby_role' => $loginuserRole, 'createdby_group' => $loginuserGroup, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifieddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                             $qdata = array_merge($qdata, $line_str_arr);
                             if ($init_data['initialize_status'] == 1) {
                                 $qresult = $ques_org_model->SaveorUpdatePrivilegeData($qdata, '');
                             } else {
                                 $qresult = $ques_temp_model->SaveorUpdateData($qdata, '');
                             }
                         }
                     }
                 }
                 if ($qresult !== '' && $app_result !== '') {
                     $red_result = 'saved';
                 }
                 $message = "Appraisal process updated successfully";
             }
         }
         if ($red_result === 'saved') {
             $message = "Appraisal process updated successfully";
             $this->_helper->FlashMessenger()->setNamespace('conf_success')->addMessage($message);
             $this->_redirect('appraisalinit/confmanagers/i/' . sapp_Global::_encrypt($init_id));
         }
     }
     $this->view->ratingsflag = $ratingsflag;
     $this->render('configuremanagers');
 }
 public function closeappraisal($appraisalid, $status, $enablestepflag, $buid, $perfflag, $deptid)
 {
     $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);
     }
     $appraisalinitmodel = new Default_Model_Appraisalinit();
     $appraisalqsmodel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $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();
     $employeeidArr = array();
     if ($status == 2) {
         $statustext = 'Closed';
     } else {
         $statustext = 'Forcefully Closed';
     }
     if ($appraisalid) {
         $trDb = Zend_Db_Table::getDefaultAdapter();
         $trDb->beginTransaction();
         try {
             /** Start
              * Updating initialization table
              */
             $init_Arr = array('status' => $status, '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);
             /**
             						End
             */
             /** Start
              * Sending Mails to employees
              */
             if ($enablestepflag == 1) {
                 $employeeidArr = $appraisalqsmodel->getemployeeIDs($appraisalid);
             } else {
                 $employeeidArr = $appraisalempratingsmodel->getEmployeeIds($appraisalid);
             }
             if (!empty($employeeidArr)) {
                 foreach ($employeeidArr as $emp) {
                     $employeeDetailsArr = $usersmodel->getUserDetailsByID($emp['employee_id'], '');
                     if (!empty($employeeDetailsArr)) {
                         $options['subject'] = APPLICATION_NAME . ': Performance Appraisal ' . $statustext;
                         $options['header'] = 'Performance Appraisal ' . $statustext;
                         $options['toEmail'] = $employeeDetailsArr[0]['emailaddress'];
                         $options['toName'] = $employeeDetailsArr[0]['userfullname'];
                         $options['message'] = 'Dear ' . $employeeDetailsArr[0]['userfullname'] . ', performance appraisal ' . $statustext;
                         $options['cron'] = 'yes';
                         // sapp_Global::_sendEmail($options);
                     }
                 }
             }
             /**
              * End
              */
             /** 
              * Mail to performance Appraisal Group
              */
             if (defined('PER_APPRAISAL_' . $buid) && $buid != '') {
                 $options['subject'] = APPLICATION_NAME . ': Performance Appraisal ' . $statustext;
                 $options['header'] = 'Performance Appraisal';
                 $options['toEmail'] = constant('PER_APPRAISAL_' . $buid);
                 $options['toName'] = 'Performance Appraisal';
                 $options['message'] = 'Performance appraisal initiated ' . $statustext;
                 $options['cron'] = 'yes';
                 //  sapp_Global::_sendEmail($options);
             }
             /**
              * End
              */
             /** Start
              * Announecements
              */
             if ($perfflag == 1) {
                 $deptArr = $departmentsmodel->getAllDeptsForUnit($buid);
                 if (!empty($deptArr)) {
                     foreach ($deptArr as $dept) {
                         $deptids .= $dept['id'] . ',';
                     }
                     $deptids = rtrim($deptids, ',');
                 }
             } else {
                 $deptids = $deptid;
             }
             /*	$announcement_arr = array(
                                           'businessunit_id' => $buid!=''?$buid:NULL,
                                           'department_id' => $deptids!=''?$deptids:NULL,
                                           'title' => $title,
                                           'description' => $description,
                                           'attachments' => NULL,
                                           'status' => 2,
                                           'isactive' => 1,
             			'createdby' => $loginUserId,
             						'createdby_role'=>$loginuserRole,
             			'createdby_group'=>$loginuserGroup,
                                           'modifiedby' => $loginUserId,
             						'modifiedby_role'=>$loginuserRole,
             			'modifiedby_group'=>$loginuserGroup,
             			 'createddate'=>gmdate("Y-m-d H:i:s"),
                                           'modifieddate'=>gmdate("Y-m-d H:i:s")
                               			);
                               			
                               	$Id = $announcementsModel->SaveorUpdateAnnouncementsData($announcement_arr, '');		*/
             /**
              * End
              */
             $trDb->commit();
             $result['msg'] = 'Performance Appraisal ' . $statustext;
             $result['result'] = 'success';
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Performance Appraisal " . $statustext));
         } catch (Exception $e) {
             $trDb->rollBack();
             $result['msg'] = $e->getMessage();
             $result['result'] = 'error';
         }
     }
     return $result;
 }