Ejemplo n.º 1
0
 public static function check_per_implmentation($businessunit_id, $department_id)
 {
     $output = array();
     if ($businessunit_id != '') {
         $model = new Default_Model_Appraisalinit();
         $output = $model->check_per_implmentation($businessunit_id, $department_id);
     }
     return $output;
 }
Ejemplo n.º 2
0
 public function editAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $id = $this->getRequest()->getParam('id');
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $appraisalinitform = new Default_Form_Appraisalinit();
     $appraisalinitform->submit->setLabel('Update');
     try {
         if ($id) {
             if (is_numeric($id) && $id > 0) {
                 $appraisalinitmodel = new Default_Model_Appraisalinit();
                 $data = $appraisalinitmodel->getConfigData($id);
                 if (!empty($data)) {
                     $empSummaryModel = new Default_Model_Employee();
                     $empData = $empSummaryModel->getEmp_from_summary($loginUserId);
                     $appraisalinitform->businessunit_name->setValue($empData['businessunit_name']);
                     $appraisalinitform->department_name->setValue($empData['department_name']);
                     $employmentstatusModel = new Default_Model_Employmentstatus();
                     $employmentStatusData = $employmentstatusModel->getempstatusActivelist();
                     if (!empty($employmentStatusData)) {
                         foreach ($employmentStatusData as $employmentStatusres) {
                             $appraisalinitform->eligibility->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
                         }
                     }
                     $data = $data[0];
                     $appraisalinitform->populate($data);
                     $appraisalinitform->setAttrib('action', DOMAIN . 'appraisalinit/edit/id/' . $id);
                     $this->view->data = $data;
                 } else {
                     $this->view->ermsg = 'norecord';
                 }
             } else {
                 $this->view->ermsg = 'norecord';
             }
         } else {
             $this->view->ermsg = '';
         }
     } catch (Exception $e) {
         $this->view->ermsg = 'nodata';
     }
     $this->view->eligibility_value = $data['eligibility'];
     $this->view->form = $appraisalinitform;
     if ($this->getRequest()->getPost()) {
         $result = $this->save($appraisalinitform);
         $this->view->msgarray = $result;
     }
     $this->render('form');
 }
Ejemplo n.º 3
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);
                     }
                 }
             }
         }
     }
 }
 /**
  * This action is used to edit the current available appraisal,where manager will manager his/her
  * employees as groups.
  */
 public function editAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $businessunit_id = $auth->getStorage()->read()->businessunit_id;
         $department_id = $auth->getStorage()->read()->department_id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $id = $this->getRequest()->getParam('id');
     try {
         if ($id != '') {
             //$id = sapp_Global::_decrypt($id);
             if (is_numeric($id) && $id > 0) {
                 $app_manager_model = new Default_Model_Appraisalmanager();
                 $appraisal_init_model = new Default_Model_Appraisalinit();
                 $appraisalQsModel = new Default_Model_Appraisalquestions();
                 $tablename = 'main_pa_questions_privileges';
                 $appraisal_data = $appraisal_init_model->getappdata_forview($id);
                 if ($appraisal_data['status'] == 1 && $appraisal_data['enable_step'] == 1) {
                     $appraisal_data['process_status'] = '';
                     if (!empty($appraisal_data)) {
                         if ($appraisal_data['initialize_status'] == 1) {
                             if ($appraisal_data['enable_step'] == 1) {
                                 $appraisal_data['process_status'] = 'Enabled to Managers';
                             }
                             if ($appraisal_data['enable_step'] == 2) {
                                 $appraisal_data['process_status'] = 'Enabled to Employees';
                             }
                         } else {
                             if ($appraisal_data['initialize_status'] == 2) {
                                 $appraisal_data['process_status'] = 'Initialize Later';
                             } else {
                                 $appraisal_data['process_status'] = 'In progress';
                             }
                         }
                     }
                     $EmpCountArr = $app_manager_model->getManagerGroupCount($id, $loginUserId);
                     if (!empty($EmpCountArr)) {
                         $appraisal_data['empcount'] = $EmpCountArr[0]['empcount'];
                     }
                     $manager_groups = $app_manager_model->getManagergroups($id, $loginUserId);
                     $questionsArr = $appraisalQsModel->getQuestionsByCategory($appraisal_data['category_id'], '');
                     $view = $this->getHelper('ViewRenderer')->view;
                     $view->previ_data = 'no';
                     $view->data = $appraisal_data;
                     $text = $view->render('appraisalinit/view.phtml');
                     $this->view->appraisal_id = $id;
                     $this->view->manager_id = $loginUserId;
                     $this->view->manager_groups = $manager_groups;
                     $this->view->appraisal_data = $appraisal_data;
                     $this->view->app_text = $text;
                     $this->view->questionsArr = $questionsArr;
                 } else {
                     $this->view->ermsg = 'nodata';
                 }
             } else {
                 $this->view->ermsg = 'nodata';
             }
         } else {
             $this->view->ermsg = 'nodata';
         }
     } catch (Exception $ex) {
         $this->view->ermsg = 'nodata';
     }
 }
 public function getappraisalcategoryAction()
 {
     $this->_helper->layout->disableLayout();
     $appraisalCategoryModel = new Default_Model_Appraisalcategory();
     $appraisalinitmodel = new Default_Model_Appraisalinit();
     $result['result'] = 'success';
     $result['data'] = "<option value=''>Select Parameter</option>";
     $categoryids = '';
     $appraisalid = $this->_request->getParam('appraisalid');
     $data = $appraisalinitmodel->getConfigData($appraisalid);
     if (!empty($data)) {
         $categoryids = $data[0]['category_id'];
     }
     if ($categoryids) {
         $appraisalCategoriesData = $appraisalCategoryModel->getCategoryNameByIds($categoryids);
         if (!empty($appraisalCategoriesData)) {
             foreach ($appraisalCategoriesData as $data) {
                 $result['data'] .= "<option value='" . $data['id'] . "'>" . utf8_encode($data['category_name']) . "</option>";
             }
         } else {
             $result['result'] = 'error';
             $result['data'] = "Category names are not configured yet.";
         }
     } else {
         $result['result'] = 'error';
         $result['data'] = "Category names are not configured yet.";
     }
     $this->_helper->json($result);
 }
 public function save($appraisalratingsform)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginRole = $auth->getStorage()->read()->emprole;
         $loginGroup = $auth->getStorage()->read()->group_id;
         $businessUnit = $auth->getStorage()->read()->businessunit_id;
         $department = $auth->getStorage()->read()->department_id;
     }
     $appraisalratingsmodel = new Default_Model_Appraisalratings();
     $app_init_model = new Default_Model_Appraisalinit();
     if ($loginRole != SUPERADMINROLE && $loginGroup != MANAGEMENT_GROUP) {
         $businessUnit = $businessUnit;
         $department = $department;
     } else {
         $businessUnit = $this->_request->getParam('businessunit');
         $department = $this->_request->getParam('departmentid');
     }
     //$res = $appraisalratingsmodel->checkAccessAddratings($businessUnit,$department);
     $res = $app_init_model->check_per_implmentation($businessUnit, $department);
     $implementation = $res['performance_app_flag'];
     $rating_type = $res['appraisal_ratings'];
     $configured_id = $res['id'];
     $msgarray = array();
     $resultArr = array();
     $errorflag = "true";
     $id = $this->_request->getParam('id');
     $appraisalid = $this->_request->getParam('appraisalid');
     // $update_id = $this->_request->getParam('update_id');
     $appraisal_ratings = $rating_type == 1 ? 5 : 10;
     $db = Zend_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     $actionflag = '';
     try {
         if ($id != '') {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . ($i + 1));
                 $update_id = $this->_request->getParam('update_id_' . ($i + 1));
                 /* for Update record  */
                 $where = array('id=?' => $update_id);
                 $actionflag = 2;
                 $menumodel = new Default_Model_Menu();
                 $tableid = '';
                 $data = array('rating_text' => $rating_text, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 //$where = 'isactive=1';
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         } else {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . $i);
                 $menumodel = new Default_Model_Menu();
                 $tableid = '';
                 $data = array('pa_configured_id' => $configured_id, 'pa_initialization_id' => $appraisalid, 'rating_type' => $rating_type, 'rating_value' => $i + 1, 'rating_text' => $rating_text, 'createdby_role' => $loginRole, 'createdby_group' => $loginGroup, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                 $where = '';
                 $actionflag = 1;
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         }
         if ($Id == 'update') {
             $tableid = $id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings updated successfully."));
         } else {
             $tableid = $Id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings added successfully."));
         }
         $menuidArr = $menumodel->getMenuObjID('/appraisalratings');
         $menuID = $menuidArr[0]['id'];
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
         /** Start
          * Sending Mails to employees
          */
         $appraisalconfigmodel = new Default_Model_Appraisalconfig();
         if ($implementation == 0) {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
         } else {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, '');
         }
         $msg_add_update = $Id == 'update' ? "updated" : "added";
         //Sending mail to Super admin
         $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Ratings ' . ucfirst($msg_add_update);
         $options['header'] = 'Performance Appraisal Configuration';
         $options['toEmail'] = SUPERADMIN_EMAIL;
         $options['toName'] = 'Super Admin';
         $options['message'] = 'Dear Super Admin, performance appraisal configuration ' . $msg_add_update;
         // $mail_id =  sapp_Global::_sendEmail($options);
         // Sending mail to others
         if (!empty($employeeDetailsArr)) {
             foreach ($employeeDetailsArr as $emp) {
                 $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Settings Added.';
                 $options['header'] = 'Performance Appraisal Configuration';
                 $options['toEmail'] = $emp['emailaddress'];
                 $options['toName'] = $emp['userfullname'];
                 $options['message'] = 'Dear ' . $emp['userfullname'] . ', performance appraisal configuration ' . $msg_add_update;
                 //  $mail_id =  sapp_Global::_sendEmail($options);
             }
         }
         /**
          * End
          */
         $db->commit();
         $this->_redirect('appraisalratings');
         //throw new Exception("Some error message");
     } catch (Exception $e) {
         $db->rollBack();
         echo $e->getMessage();
         echo $e->getTraceAsString();
         return $msgarray;
     }
 }
 public function saveAction()
 {
     $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;
     }
     try {
         $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
         $app_init_model = new Default_Model_Appraisalinit();
         $menumodel = new Default_Model_Menu();
         $actionflag = '';
         $tableid = '';
         $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);
             }
         }
         $menuidArr = $menumodel->getMenuObjID('/appraisalconfig');
         $menuID = $menuidArr[0]['id'];
         //$result = sapp_Global::logManager($menuID,$actionflag,$loginUserId,$tableid);
         $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 save($appraisalratingsform)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginRole = $auth->getStorage()->read()->emprole;
         $loginGroup = $auth->getStorage()->read()->group_id;
         $businessUnit = $auth->getStorage()->read()->businessunit_id;
         $department = $auth->getStorage()->read()->department_id;
         $loginUserfullname = $auth->getStorage()->read()->userfullname;
         $loginUserEmpId = $auth->getStorage()->read()->employeeId;
     }
     $appraisalratingsmodel = new Default_Model_Appraisalratings();
     $app_init_model = new Default_Model_Appraisalinit();
     if ($loginRole != SUPERADMINROLE && $loginGroup != MANAGEMENT_GROUP) {
         $businessUnit = $businessUnit;
         $department = $department;
     } else {
         $businessUnit = $this->_request->getParam('businessunit');
         $department = $this->_request->getParam('departmentid');
     }
     $res = $app_init_model->checkAppraisalExists($businessUnit, $department);
     $implementation = isset($res[0]['performance_app_flag']) ? $res[0]['performance_app_flag'] : NULL;
     $rating_type = !empty($res[0]['appraisal_ratings']) ? $res[0]['appraisal_ratings'] : NULL;
     $configured_id = 0;
     $msgarray = array();
     $resultArr = array();
     $errorflag = "true";
     $id = $this->_request->getParam('id');
     $dept_id = $this->_request->getParam('departmentid');
     $implementation = is_numeric($dept_id) && $dept_id > 0 ? 0 : 1;
     $appraisal_ratings = $this->_request->getParam('appraisal_rating');
     $appraisalid = $this->_request->getParam('appraisalid');
     $db = Zend_Db_Table::getDefaultAdapter();
     $db->beginTransaction();
     $actionflag = '';
     try {
         if ($id != '') {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . ($i + 1));
                 $update_id = $this->_request->getParam('update_id_' . ($i + 1));
                 /* for Update record  */
                 $where = array('id=?' => $update_id);
                 $actionflag = 2;
                 $tableid = '';
                 $data = array('rating_text' => $rating_text, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         } else {
             for ($i = 0; $i < $appraisal_ratings; $i++) {
                 $rating_text = $this->_request->getParam('rating_text_' . $i);
                 $tableid = '';
                 $data = array('pa_configured_id' => $configured_id, 'pa_initialization_id' => $appraisalid, 'rating_type' => $rating_type, 'rating_value' => $i + 1, 'rating_text' => $rating_text, 'createdby_role' => $loginRole, 'createdby_group' => $loginGroup, 'modifiedby_role' => $loginRole, 'modifiedby_group' => $loginGroup, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'createdby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                 $where = '';
                 $actionflag = 1;
                 $Id = $appraisalratingsmodel->SaveorUpdateAppraisalRatingsData($data, $where);
             }
         }
         if ($Id == 'update') {
             $tableid = $id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings updated successfully."));
         } else {
             $tableid = $Id;
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Ratings added successfully."));
         }
         /*
          *   Logs Storing
          */
         $menuID = APPRAISALRATINGS;
         $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid);
         /*
          *  Logs storing ends
          */
         //to get initialization details using appraisal Id for Business Unit,Department,To Year
         $appraisal_details = $appraisalratingsmodel->getappdata($appraisalid);
         if (!empty($appraisal_details)) {
             $bunit = $appraisal_details['unitname'];
             $dept = $appraisal_details['deptname'];
             $to_year = $appraisal_details['to_year'];
         }
         /** Start
          * Sending Mails to employees
          */
         $appraisalconfigmodel = new Default_Model_Appraisalconfig();
         if ($implementation == 0) {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, $department);
         } else {
             $employeeDetailsArr = $appraisalconfigmodel->getUserDetailsByID($businessUnit, '');
         }
         $msg_add_update = $Id == 'update' ? "updated" : "configured";
         $dept_str = $dept == '' ? " " : "and department <b>{$dept}</b> ";
         $emp_id_str = $loginRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
         //Preparing Employee array for Bcc
         $empArr = array();
         if (!empty($employeeDetailsArr)) {
             $empArrList = '';
             foreach ($employeeDetailsArr as $emp) {
                 array_push($empArr, $emp['emailaddress']);
             }
         }
         //echo "<pre>";print_r($empArr);die();
         $options['subject'] = APPLICATION_NAME . ': Performance Appraisal Ratings ' . ucfirst($msg_add_update);
         $options['header'] = 'Performance Appraisal : Ratings';
         $options['bcc'] = $empArr;
         $options['toEmail'] = SUPERADMIN_EMAIL;
         $options['toName'] = 'Super Admin';
         $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<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'>Performance appraisal ratings have been {$msg_add_update} 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<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</div> ";
         $mail_id = sapp_Global::_sendEmail($options);
         /**
          * End mails sending
          */
         $db->commit();
         $this->_redirect('appraisalratings');
     } catch (Exception $e) {
         $db->rollBack();
         echo $e->getMessage();
         echo $e->getTraceAsString();
         return $msgarray;
     }
 }
Ejemplo n.º 9
0
 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));
 }
Ejemplo n.º 10
0
 /**
  * This method will support getgrid method to get details.
  * @param string $sort         = type of sort like asc,desc
  * @param string $by           = column name to be sort
  * @param type $pageNo         = page number 
  * @param type $perPage        = records per page
  * @param string $searchQuery  = query generated by using search values.
  * @return Resultset Resultset of appraisal manager data.
  */
 public function getAppraisalManagerData($sort, $by, $pageNo, $perPage, $searchQuery)
 {
     $appraisalinit_model = new Default_Model_Appraisalinit();
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $businessunit_id = $auth->getStorage()->read()->businessunit_id;
         $department_id = $auth->getStorage()->read()->department_id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $where = " ai.isactive = 1 ";
     if ($loginuserRole != SUPERADMINROLE && $loginuserGroup != MANAGEMENT_GROUP) {
         $init_data = $appraisalinit_model->check_per_implmentation($businessunit_id, $department_id);
         $where .= " and ai.businessunit_id = '" . $businessunit_id . "'  ";
         if ($init_data['performance_app_flag'] == 0) {
             $where .= " and ai.department_id = '" . $department_id . "' ";
         }
     }
     if ($searchQuery) {
         $where .= " AND " . $searchQuery;
     }
     $db = Zend_Db_Table::getDefaultAdapter();
     $appInitData = $this->select()->setIntegrityCheck(false)->from(array('ai' => 'main_pa_initialization'), array('ai.id', 'ai.enable_step', 'org_status' => 'ai.status', 'managerid_status' => 'find_in_set(' . $loginUserId . ',manager_ids)', new Zend_Db_Expr("concat(from_year,'-',to_year) as fin_year"), 'ai.appraisal_mode', new Zend_Db_Expr("CASE WHEN ai.status=1 THEN 'Open' WHEN ai.status=2 THEN 'Closed' ELSE 'Force Closed' END as status"), new Zend_Db_Expr("case when initialize_status = 1 then case when ai.enable_step = 1 then 'Enabled to Managers' when ai.enable_step = 2 then 'Enabled to Employees' end when initialize_status = 2 then 'Initialize later' when initialize_status is null then 'In progress' end as appraisal_process_status"), new Zend_Db_Expr("case when ai.appraisal_mode = 'Quarterly' then concat('Q',ai.appraisal_period) when ai.appraisal_mode = 'Half-yearly' then concat('H',ai.appraisal_period) when ai.appraisal_mode = 'Yearly' then 'Yearly' end as app_period")))->joinInner(array('p' => 'main_pa_questions_privileges'), "p.isactive = 1 and p.pa_initialization_id = ai.id and p.line_manager_1 = " . $loginUserId, array())->joinLeft(array('b' => 'main_businessunits'), "b.id = ai.businessunit_id and b.isactive=1", array('unitname'))->joinLeft(array('d' => 'main_departments'), "d.id = ai.department_id and d.isactive=1", array('deptname'))->where($where)->group('ai.id')->order("{$by} {$sort}")->limitPage($pageNo, $perPage);
     return $appInitData;
 }
 public function save($feedforwardInitForm)
 {
     $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;
         $loginUserfullname = $auth->getStorage()->read()->userfullname;
     }
     $feedforwardInitModel = new Default_Model_Feedforwardinit();
     $msgarray = array();
     $check_array = array();
     $appraisal_id = '';
     $id = $this->_request->getParam('id');
     $appraisal_mode = $this->_request->getParam('appraisal_mode');
     $ff_due_date = sapp_Global::change_date($this->_request->getParam('ff_due_date'), 'database');
     $employee_name_view = $this->_request->getParam('employee_name_view');
     $enable_to = $this->_request->getParam('enable_to');
     $initialize_status = $this->_request->getParam('initialize_status');
     $status = $this->_request->getParam('status');
     $x_init_status = $this->_request->getParam('x_init_status');
     $check = $this->_request->getParam('check');
     $empcmnt = $this->_request->getParam('empcmnt');
     if ($empcmnt) {
         $empcmnt_keys = array_keys($empcmnt);
     } else {
         $empcmnt_keys = array();
     }
     if (sizeof($check) > 0) {
         foreach ($check as $qid) {
             if (in_array($qid, $empcmnt_keys)) {
                 $check_array[$qid] = array('EC' => 1, 'ER' => 1);
             } else {
                 $check_array[$qid] = array('EC' => 0, 'ER' => 1);
             }
         }
     }
     if (!empty($enable_to)) {
         if (in_array(1, $enable_to)) {
             $enable_to = 1;
         } else {
             $enable_to = 0;
         }
     }
     if ($x_init_status != 1) {
         if ($feedforwardInitForm->isValid($this->_request->getPost())) {
             try {
                 $data = array('ff_due_date' => $ff_due_date, 'employee_name_view' => $employee_name_view, 'enable_to' => $enable_to, 'status' => $status, 'initialize_status' => $initialize_status, 'questions' => $check != '' ? implode(',', $check) : NULL, 'qs_privileges' => count($check_array) > 0 ? json_encode($check_array, true) : NULL, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                 if ($id != '') {
                     $where = array('id=?' => $id);
                     $actionflag = 2;
                     $appraisal_id = $this->_request->getParam('appraisal_id');
                 } else {
                     $appraisalinitmodel = new Default_Model_Appraisalinit();
                     $appData = $appraisalinitmodel->getappdata_forview($appraisal_mode);
                     $data['pa_configured_id'] = $appData['id'];
                     $data['businessunit_id'] = $appData['businessunit_id'];
                     $data['department_id'] = $appData['department_id'];
                     $data['ff_mode'] = $appData['appraisal_mode'];
                     $data['ff_period'] = $appData['appraisal_period'];
                     $data['ff_from_year'] = $appData['from_year'];
                     $data['ff_to_year'] = $appData['to_year'];
                     $data['appraisal_id'] = $appraisal_mode;
                     $data['createdby_role'] = $loginuserRole;
                     $data['createdby_group'] = $loginuserGroup;
                     $data['createdby'] = $loginUserId;
                     $data['createddate'] = gmdate("Y-m-d H:i:s");
                     $data['isactive'] = 1;
                     $where = '';
                     $actionflag = 1;
                     $appraisal_id = $appraisal_mode;
                 }
                 $Id = $feedforwardInitModel->SaveorUpdateFeedforwardInitData($data, $where);
                 if ($Id == 'update') {
                     $tableid = $id;
                     $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization updated successfully."));
                 } else {
                     $tableid = $Id;
                     $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization added successfully."));
                 }
                 if ($initialize_status == 1) {
                     sapp_PerformanceHelper::update_QsParmas_Allemps($data['questions'], '');
                     $this->ffinitialize($appraisal_id, $tableid, $enable_to, $check);
                 }
                 $this->_redirect('feedforwardinit');
             } catch (Exception $e) {
                 $msgarray['appraisal_mode'] = "Something went wrong, please try again.";
                 return $msgarray;
             }
         } else {
             $messages = $feedforwardInitForm->getMessages();
             foreach ($messages as $key => $val) {
                 foreach ($val as $key2 => $val2) {
                     $msgarray[$key] = $val2;
                     break;
                 }
             }
             $msgarray['check_array'] = $check_array;
             return $msgarray;
         }
     } else {
         $data = array('status' => $status, 'ff_due_date' => $ff_due_date);
         $where = array('id=?' => $id);
         $Id = $feedforwardInitModel->SaveorUpdateFeedforwardInitData($data, $where);
         if ($status == 2) {
             if ($Id == 'update') {
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization closed successfully."));
                 $this->_redirect('feedforwardinit');
             }
         } else {
             $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Initialization updated successfully."));
             $this->_redirect('feedforwardinit');
         }
     }
 }
Ejemplo n.º 12
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);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 13
0
 public function validateconfigAction($from_year = 0, $to_year = 0, $bunit = 0, $dept_id = 0, $dept_flag = 0, $mode = 0, $call_flag = 0, $is_edit = 0, $appraisal_id = 0, $existing_period = '')
 {
     //if ajax call(to year on change)
     if ($call_flag == 0) {
         $from_year = $this->_getParam('from_year', null);
         $to_year = $this->_getParam('to_year', null);
         $bunit = $this->_getParam('bunit', null);
         $dept_id = $this->_getParam('dept_id', null);
         $dept_flag = $this->_getParam('flag', null);
         $mode = $this->_getParam('mode', null);
         $is_edit = $this->_getParam('is_edit', null);
         $appraisal_id = $this->_getParam('appraisal_id', null);
         $existing_period = $this->_getParam('existing_period', null);
     }
     $dept = isset($dept_flag) && $dept_flag == 0 ? $dept_id : 0;
     $app_init_model = new Default_Model_Appraisalinit();
     $exist_appraisal = $app_init_model->checkappadmin($bunit, $dept_id);
     $json_status = 'fail';
     $json_msg_str = '';
     $json_app_mode = '';
     $json_app_period = 0;
     $json_app_disp_period = '';
     $json_is_exist = 0;
     $json_rating_type = '';
     $existing_app_flag = $app_init_model->getexistingperformanceappflag($bunit, $from_year, $to_year);
     $app_flag_diff = 0;
     if (isset($existing_app_flag) && $existing_app_flag != $dept_flag) {
         $app_flag_diff++;
     }
     if ($is_edit == 1) {
         //get the data for the appraisal based on id to compare from year, to year and period
         $appraisal_data = $app_init_model->getConfigData($appraisal_id);
         $appr_from_year = isset($appraisal_data[0]['from_year']) ? $appraisal_data[0]['from_year'] : 0;
         $appr_to_year = isset($appraisal_data[0]['to_year']) ? $appraisal_data[0]['to_year'] : 0;
         $appr_mode = isset($appraisal_data[0]['appraisal_mode']) ? $appraisal_data[0]['appraisal_mode'] : '';
         $appr_period = isset($appraisal_data[0]['appraisal_period']) ? $appraisal_data[0]['appraisal_period'] : 0;
         $appraisal_ratings = isset($appraisal_data[0]['appraisal_ratings']) ? $appraisal_data[0]['appraisal_ratings'] : 0;
         $actual_appr_period = $this->period_helper($appr_mode, $appr_period);
         if ($from_year == $appr_from_year && $to_year == $appr_to_year && $existing_period == $actual_appr_period) {
             if ($call_flag == 0) {
                 $this->_helper->json(array('status' => 'success', 'msg_str' => $json_msg_str, 'app_mode' => $appr_mode, 'app_period' => $appr_period, 'app_disp_period' => $actual_appr_period, 'is_exist' => 1, 'rating_type' => $appraisal_ratings));
                 return;
             } else {
                 return 'success';
             }
         }
     }
     if ((!$exist_appraisal || $is_edit == 1) && $app_flag_diff == 0) {
         //get the existing appraisal data using business unit
         $appraisal_data = array();
         $json_status = 'success';
         // $json_mode = '';
         $appraisal_data = $app_init_model->getAppraisalPeriodOnBuDept($bunit, $dept, $from_year, $to_year, 'AND');
         $year_diff_exist = 0;
         if (empty($appraisal_data)) {
             $appraisal_data_diff = array();
             //calculate the difference between toyear and from year
             // if(is_numeric($from_year) && is_numeric($to_year))
             // {
             $year_diff = $to_year - $from_year;
             // }
             //if year difference is 0
             if ($year_diff == 0) {
                 //check with from year or to year
                 $appraisal_data_diff = $app_init_model->getAppraisalPeriodOnBuDept($bunit, $dept, $from_year, $to_year, 'OR');
                 if (!empty($appraisal_data_diff)) {
                     $year_diff_exist++;
                 }
             } else {
                 if ($year_diff == 1) {
                     //check with from year or (to year - 1)
                     $to_in_year = $to_year - 1;
                     $appraisal_data_diff = $app_init_model->getAppraisalPeriodOnBuDept($bunit, $dept, $from_year, $to_in_year, 'AND');
                     if (!empty($appraisal_data_diff)) {
                         $year_diff_exist++;
                     }
                 }
             }
             // if($year_diff_exist == 0 && $dept_flag == 0)
             // {
             // $appraisal_data = $app_init_model->getAppraisalPeriodOnBuDept($bunit,$dept,$from_year,$to_year,'AND',1);
             // }
         }
         $exist_flag = 0;
         $exist_str = '';
         if (!$year_diff_exist) {
             if (!empty($appraisal_data)) {
                 foreach ($appraisal_data as $app_data) {
                     $appraisal_mode = !empty($app_data['appraisal_mode']) ? $app_data['appraisal_mode'] : '';
                     $appraisal_period = !empty($app_data['appraisal_period']) ? $app_data['appraisal_period'] : 0;
                     // $appraisal_id = !empty($app_data['id'])?$app_data['id']:0;
                     switch ($appraisal_mode) {
                         case 'Quarterly':
                             if ($appraisal_period <= 4) {
                                 $exist_flag++;
                                 // $exist_str .= $appraisal_id.',';
                             }
                             break;
                         case 'Half-yearly':
                             if ($appraisal_period <= 2) {
                                 $exist_flag++;
                                 // $exist_str .= $appraisal_id.',';
                             }
                             break;
                         case 'Yearly':
                             if ($appraisal_period <= 1) {
                                 $exist_flag++;
                                 // $exist_str .= $appraisal_id.',';
                             }
                             break;
                     }
                 }
                 if ($exist_flag > 0) {
                     // $json_status = 'fail';
                     $exist_dept_flag = isset($appraisal_data[0]['performance_app_flag']) ? $appraisal_data[0]['performance_app_flag'] : '';
                     //if existing
                     // $json_app_mode = '';
                     // $json_app_period = 0;
                     if ($dept_flag == $exist_dept_flag) {
                         $appraisal_mode = isset($appraisal_data[0]['appraisal_mode']) ? $appraisal_data[0]['appraisal_mode'] : '';
                         $appraisal_period = isset($appraisal_data[0]['appraisal_period']) ? $appraisal_data[0]['appraisal_period'] : 0;
                         $appraisal_rating_type = isset($appraisal_data[0]['appraisal_ratings']) ? $appraisal_data[0]['appraisal_ratings'] : '';
                         $json_status = 'success';
                         switch ($appraisal_mode) {
                             case 'Quarterly':
                                 if ($appraisal_period <= 4) {
                                     $appraisal_period++;
                                     if ($appraisal_period > 4) {
                                         $json_status = 'fail';
                                     }
                                 }
                                 break;
                             case 'Half-yearly':
                                 if ($appraisal_period <= 2) {
                                     $appraisal_period++;
                                     if ($appraisal_period > 2) {
                                         $json_status = 'fail';
                                     }
                                 }
                                 break;
                             case 'Yearly':
                                 if ($appraisal_period <= 1) {
                                     $appraisal_period++;
                                     if ($appraisal_period > 1) {
                                         $json_status = 'fail';
                                     }
                                 }
                                 break;
                         }
                         if ($json_status == 'fail') {
                             $json_msg_str = 'Appraisal is completed for the selected years.';
                         } else {
                             $json_app_period = $appraisal_period;
                             $json_app_mode = $appraisal_mode;
                             $json_app_disp_period = $this->period_helper($json_app_mode, $json_app_period);
                             $json_rating_type = $appraisal_rating_type;
                         }
                         $json_is_exist = 1;
                     } else {
                         $json_status = 'fail';
                         $json_msg_str = 'Appraisal is already configured ' . ($exist_dept_flag == 1 ? 'business unit' : 'department') . ' wise.';
                         $json_app_mode = '';
                         $json_app_period = 1;
                     }
                 } else {
                     $json_status = 'success';
                     $json_msg_str = '';
                     $json_app_mode = '';
                     $json_app_period = 1;
                 }
             } else {
                 $json_status = 'success';
                 $json_msg_str = '';
                 $json_app_mode = '';
                 $json_app_period = 1;
             }
         } else {
             $json_status = 'fail';
             $json_msg_str = 'Please select valid year range.';
             $json_app_mode = '';
             $json_app_period = 0;
         }
     } else {
         $json_msg_str = 'Appraisal already exist.';
     }
     // echo 'status '.$json_status.' msg_str '.$json_msg_str.' app_mode '.$json_app_mode.' app_period '.$json_app_period.' is_exist '.$json_is_exist;
     // die();
     if ($call_flag == 0) {
         $this->_helper->json(array('status' => $json_status, 'msg_str' => $json_msg_str, 'app_mode' => $json_app_mode, 'app_period' => $json_app_period, 'app_disp_period' => $json_app_disp_period, 'is_exist' => $json_is_exist, 'rating_type' => $json_rating_type));
     } else {
         return $json_status;
     }
 }
Ejemplo n.º 14
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');
 }
Ejemplo n.º 15
0
 public static function getbudeptname($appraisalid)
 {
     $appInitModel = new Default_Model_Appraisalinit();
     $businessunitmodel = new Default_Model_Businessunits();
     $deptmodel = new Default_Model_Departments();
     $buname = '';
     $deptname = '';
     $perf_impl_flag = '';
     $appraisaldataArr = array();
     if ($appraisalid) {
         $appraisaldataArr = $appInitModel->getAppDataById($appraisalid);
         if (!empty($appraisaldataArr)) {
             if ($appraisaldataArr['businessunit_id'] != '') {
                 $buDataArr = $businessunitmodel->getSingleUnitData($appraisaldataArr['businessunit_id']);
                 // $perfimplementation = $appInitModel->check_performance_implmentation($appraisaldataArr['businessunit_id']);
                 if (!empty($buDataArr)) {
                     $buname = $buDataArr['unitname'];
                 }
                 /*if(!empty($perfimplementation))
                 		{
                 			$perf_impl_flag = $perfimplementation['performance_app_flag'];
                 		}*/
                 $perf_impl_flag = isset($appraisaldataArr['performance_app_flag']) ? $appraisaldataArr['performance_app_flag'] : 1;
             }
             if ($perf_impl_flag == 0) {
                 if ($appraisaldataArr['department_id'] != '') {
                     $deptArr = $deptmodel->getSingleDepartmentData($appraisaldataArr['department_id']);
                 }
                 if (!empty($deptArr)) {
                     $deptname = $deptArr['deptname'];
                 }
             }
         }
     }
     return array('buname' => $buname, 'deptname' => $deptname, 'perf_app_flag' => $perf_impl_flag, 'appdata' => $appraisaldataArr);
 }
 public function displaymanagersAction()
 {
     $ajaxContext = $this->_helper->getHelper('AjaxContext');
     $ajaxContext->addActionContext('displaymanagers', 'html')->initContext();
     $line1_data = array();
     $line_managers = array();
     $type = $this->_getParam('type', null);
     $levels = $this->_getParam('levels', null);
     $init_id = $this->_getParam('init_id', null);
     $line1_id = $this->_getParam('line1_id', null);
     $context = $this->_getParam('context', 'add');
     $employeeid = $this->_getParam('employeeid');
     $app_levels = 1;
     $app_init_model = new Default_Model_Appraisalinit();
     $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
     $init_data = $app_init_model->getConfigData($init_id);
     if (count($init_data) > 0) {
         $init_data = $init_data[0];
     }
     $managers = $app_init_model->getRepManagers_new($type, $init_id, $init_data);
     if ($context == 'edit') {
         $emp_model = new Default_Model_Employee();
         $line1_data = $emp_model->getEmp_from_summary($line1_id);
         $line_managers = $app_init_model->getLineManagers_new($init_id, $employeeid);
         $line_managers = array_filter($line_managers);
     }
     $appEmpRatingsData = $appEmpRatingsModel->getSelectedAppraisalData_notused($init_id, $employeeid);
     if (!empty($appEmpRatingsData)) {
         if ($appEmpRatingsData['appstatus'] != 1) {
             $app_levels = $appEmpRatingsData['appstatus'] - 1;
         }
     }
     $this->view->levels = $levels;
     $this->view->managers = $managers;
     $this->view->init_id = $init_id;
     $this->view->context = $context;
     $this->view->line1_data = $line1_data;
     $this->view->line_managers = $line_managers;
     $this->view->line1_id = $line1_id;
     $this->view->app_levels = $app_levels;
     $this->render('displaymanagers');
 }
 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;
 }