public function addAction()
 {
     $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;
     }
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $errorMsg = '';
     $empSummaryModel = new Default_Model_Employee();
     $empData = $empSummaryModel->getEmp_from_summary($loginUserId);
     $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessunit_id, $department_id);
     //echo "<pre>";print_r($appImpleData);echo "</pre>";
     $appInitModel = new Default_Model_Appraisalinit();
     $appraisalInitForm = new Default_Form_Appraisalinit();
     if (count($appImpleData) > 0) {
         $this->view->imple_data = $appImpleData;
         $checkActiveApp = $appInitModel->checkAppraisalExists($businessunit_id, $department_id);
         if (count($checkActiveApp) == 0) {
             $appraisalInitForm->businessunit_name->setValue($empData['businessunit_name']);
             if ($appImpleData['performance_app_flag'] == 0) {
                 $appraisalInitForm->department_name->setValue($empData['department_name']);
             } else {
                 $appraisalInitForm->removeElement("department_name");
             }
             $appraisalInitForm->businessunit_id->setValue($empData['businessunit_id']);
             $appraisalInitForm->department_id->setValue($empData['department_id']);
             $appraisalInitForm->appraisal_mode->setValue($appImpleData['appraisal_mode']);
             $employmentstatusModel = new Default_Model_Employmentstatus();
             $employmentStatusData = $employmentstatusModel->getempstatusActivelist();
             if (!empty($employmentStatusData)) {
                 foreach ($employmentStatusData as $employmentStatusres) {
                     $appraisalInitForm->eligibility->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
                 }
             } else {
                 $msgarray['eligibility'] = 'Employment status is not configured yet.';
             }
         } else {
             $errorMsg = 'Appraisal process is already initialized.';
         }
     } else {
         $errorMsg = 'Appraisal process is not yet configured.';
     }
     $msgarray = array();
     $appraisalInitForm->setAttrib('action', DOMAIN . 'appraisalinit/add');
     $this->view->form = $appraisalInitForm;
     $this->view->msgarray = $msgarray;
     $this->view->ermsg = $errorMsg;
     if ($this->getRequest()->getPost()) {
         $result = $this->save($appraisalInitForm);
         $this->view->msgarray = $result;
     }
     $this->render('form');
 }
 public function addAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
         $businessUnit = $auth->getStorage()->read()->businessunit_id;
         $department = $auth->getStorage()->read()->department_id;
     }
     $callval = $this->getRequest()->getParam('call');
     $errorMsg = '';
     $msgarray = array();
     $buOptions = '';
     $deptOptions = '';
     $performanceappflag = '';
     $appraisalratingsform = new Default_Form_Appraisalratings();
     $appInitModel = new Default_Model_Appraisalinit();
     if ($loginuserRole != SUPERADMINROLE && $loginuserGroup != MANAGEMENT_GROUP) {
         $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessUnit, $department);
         if (count($appImpleData) > 0) {
             $this->view->imple_data = $appImpleData;
             $checkActiveApp = $appInitModel->checkAppraisalExists($businessUnit, $department, $appImpleData['performance_app_flag']);
             if (count($checkActiveApp) > 0) {
                 $checkActiveApp = $checkActiveApp[0];
                 $appraisalratingsmodel = new Default_Model_Appraisalratings();
                 $appraisal_rating = $appImpleData['appraisal_ratings'];
                 $id = $appImpleData['id'];
                 $initializationid = $checkActiveApp['id'];
                 $appraisal_rating = $appraisal_rating == 1 ? 5 : 10;
                 $data = $appraisalratingsmodel->getAppraisalRatingsbyInitId($initializationid);
                 if (!empty($data)) {
                     //$edit = self::editAction($initializationid);
                     $appInitdata = $appInitModel->getConfigData($data[0]['pa_initialization_id']);
                     $appraisalratingsform->setAttrib('action', DOMAIN . 'appraisalratings/edit/id/' . $id);
                     $this->view->data = $data;
                     $this->view->checkActiveApp = $appInitdata[0];
                 } else {
                     $appraisalratingsform->setAttrib('action', DOMAIN . 'appraisalratings/add');
                     $this->view->appraisal_rating = $appraisal_rating;
                     $this->view->checkActiveApp = $checkActiveApp;
                 }
                 if ($this->getRequest()->getPost()) {
                     $result = $this->save($appraisalratingsform);
                     $this->view->msgarray = $result;
                 }
                 /* Fetch business unit and department name*/
                 $appImpleData = sapp_PerformanceHelper::check_per_implmentation($businessUnit, $department);
                 $performanceappflag = $appImpleData['performance_app_flag'];
                 $optionsArray = $this->buildoptions($businessUnit, $department, $performanceappflag);
                 $buOptions = $optionsArray['buoptions'];
                 $deptOptions = isset($optionsArray['deptoptions']) ? $optionsArray['deptoptions'] : '';
                 /* End */
                 $this->view->performanceappflag = $performanceappflag;
                 $this->view->buOptions = $buOptions;
                 $this->view->deptOptions = $deptOptions;
                 $this->view->form = $appraisalratingsform;
                 $this->view->msgarray = $msgarray;
                 $this->view->appraisal_rating = $appraisal_rating;
             } else {
                 $errorMsg = 'Active Appraisal process is not there.';
             }
         } else {
             $errorMsg = 'Appraisal process is not yet configured.';
         }
         $this->view->ermsg = $errorMsg;
         $this->render('form');
     } else {
         $bunitModel = new Default_Model_Businessunits();
         $flag = 1;
         //$bunitdataArr = $bunitModel->fetchAll('isactive=1','unitname')->toArray();
         $bunitdataArr = $appInitModel->getbusinnessunits_initialized('');
         $this->view->bunitdataarr = $bunitdataArr;
         $this->view->flag = $flag;
         if ($this->getRequest()->getPost()) {
             $result = $this->save($appraisalratingsform);
             $this->view->msgarray = $result;
         }
         $this->render('managementform');
     }
 }
 public function employeestatusAction()
 {
     $ajaxContext = $this->_helper->getHelper('AjaxContext');
     $ajaxContext->addActionContext('employeestatus', 'html')->initContext();
     $flag = $this->_request->getParam('flag');
     $appraisalid = $this->_request->getParam('appraisalid');
     $department_id = $this->_request->getParam('deptid');
     $businessunit_id = $this->_request->getParam('bunitid');
     $performanceappflag = $this->_request->getParam('perf_app_flag');
     $app_status = $this->_request->getParam('app_status');
     $appqsprivilegesModel = new Default_Model_Appraisalqsmain();
     $appempModel = new Default_Model_Appraisalgroupemployees();
     $appInitModel = new Default_Model_Appraisalinit();
     $empratingsModel = new Default_Model_Appraisalemployeeratings();
     $employeeIds = '';
     $msgarray = array();
     $employeeArr = array();
     $getEmployeeRatingsArr = array();
     $errorMsg = '';
     $budeptArr = array();
     if ($flag == 1) {
         if ($appraisalid) {
             $getEmployeeRatingsArr = $empratingsModel->getEmployeeIds($appraisalid, '', $app_status);
             if (!empty($getEmployeeRatingsArr)) {
                 foreach ($getEmployeeRatingsArr as $ids) {
                     $employeeIds .= $ids['employee_id'] . ',';
                 }
                 $employeeIds = rtrim($employeeIds, ',');
             }
             if ($employeeIds != '') {
                 $employeedetailsArr = $appempModel->getEmployeeList(array(), $employeeIds, 2);
             }
             if (!empty($employeedetailsArr)) {
                 foreach ($employeedetailsArr as $key => $val) {
                     $employeeArr[$val['user_id']] = $val;
                 }
             }
             //$budeptArr = $this->getbudeptname($appraisalid);
             $budeptArr = sapp_Global::getbudeptname($appraisalid);
         }
     } else {
         $checkActiveApp = $appInitModel->checkAppraisalExists($businessunit_id, $department_id, $performanceappflag);
         if (count($checkActiveApp) > 0) {
             $checkActiveApp = $checkActiveApp[0];
             if ($checkActiveApp['enable_step'] == 2 && $checkActiveApp['status'] == 1) {
                 $appraisalid = $checkActiveApp['id'];
                 $getEmployeeRatingsArr = $empratingsModel->getEmployeeIds($checkActiveApp['id'], '', $app_status);
                 if (!empty($getEmployeeRatingsArr)) {
                     foreach ($getEmployeeRatingsArr as $ids) {
                         $employeeIds .= $ids['employee_id'] . ',';
                     }
                     $employeeIds = rtrim($employeeIds, ',');
                 }
                 if ($employeeIds != '') {
                     $employeedetailsArr = $appempModel->getEmployeeList(array(), $employeeIds, 2);
                 }
                 if (!empty($employeedetailsArr)) {
                     foreach ($employeedetailsArr as $key => $val) {
                         $employeeArr[$val['user_id']] = $val;
                     }
                 }
             } else {
                 if ($checkActiveApp['enable_step'] == 1) {
                     $errorMsg = 'Appraisal process is enabled to managers.';
                 }
                 if ($checkActiveApp['status'] == 2) {
                     $errorMsg = 'Appraisal process is closed.';
                 }
             }
             //$budeptArr = $this->getbudeptname($checkActiveApp['id']);
             $budeptArr = sapp_Global::getbudeptname($checkActiveApp['id']);
         } else {
             $errorMsg = 'Appraisal process is not yet configured.';
         }
     }
     $this->view->flag = $flag;
     $this->view->msgarray = $msgarray;
     $this->view->ermsg = $errorMsg;
     $this->view->employeeArr = $employeeArr;
     $this->view->employeeratingsArr = $getEmployeeRatingsArr;
     $this->view->appraisalid = $appraisalid;
     $this->view->budeptArr = $budeptArr;
 }
 public function addAction()
 {
     $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;
     }
     $this->view->loginuserRole = $loginuserRole;
     $this->view->loginuserGroup = $loginuserGroup;
     $ratings = '';
     $eligibilityvalue = '';
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $errorMsg = '';
     $appraisalInitForm = new Default_Form_Appraisalinit();
     $appInitModel = new Default_Model_Appraisalinit();
     if ($loginuserRole != SUPERADMINROLE && $loginuserGroup != MANAGEMENT_GROUP) {
         $empSummaryModel = new Default_Model_Employee();
         $empData = $empSummaryModel->getEmp_from_summary($loginUserId);
         $this->view->businessunit_id = $businessunit_id;
         $checkActiveApp = $appInitModel->checkAppraisalExists($businessunit_id, $department_id);
         if (count($checkActiveApp) == 0) {
             $appraisalInitForm->businessunit_name->setValue($empData['businessunit_name']);
             $appraisalInitForm->department_name->setValue($empData['department_name']);
             $appraisalInitForm->department_id->setValue($empData['department_id']);
             $appraisalInitForm->businessunit_id->setValue($empData['businessunit_id']);
         } else {
             $errorMsg = 'Appraisal process is already initialized.';
         }
     } else {
         $businessunits = $appInitModel->getbusinnessunits_admin('');
         $this->view->businessunits = $businessunits;
         $this->view->businessunit_id = $businessunit_id;
     }
     $employmentstatusModel = new Default_Model_Employmentstatus();
     $employmentStatusData = $employmentstatusModel->getempstatusActivelist();
     if (!empty($employmentStatusData)) {
         foreach ($employmentStatusData as $employmentStatusres) {
             $appraisalInitForm->eligibility->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
             $appraisalInitForm->eligibility_hidden->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
             $eligibilityvalue .= $employmentStatusres['workcodename'] . ',';
         }
         $eligibilityvalue = rtrim($eligibilityvalue, ',');
     } else {
         $msgarray['eligibility'] = 'Employment status is not configured yet.';
     }
     if ($eligibilityvalue != '') {
         $appraisalInitForm->eligibility_value->setValue($eligibilityvalue);
     }
     $appraisalInitForm->eligibilityflag->setValue('1');
     $appraisalInitForm->eligibility_hidden->setAttrib("disabled", "disabled");
     $category_model = new Default_Model_Appraisalcategory();
     $category_data = $category_model->getAppraisalCategorysData();
     foreach ($category_data as $cdata) {
         $appraisalInitForm->category_id->addMultiOption($cdata['id'], $cdata['category_name']);
     }
     $msgarray = array();
     $appraisalInitForm->setAttrib('action', BASE_URL . 'appraisalinit/add');
     $this->view->form = $appraisalInitForm;
     $this->view->msgarray = $msgarray;
     $this->view->ermsg = $errorMsg;
     $this->view->ratingsflag = 'true';
     $this->view->employmentStatusData = $employmentStatusData;
     $this->view->eligibilityvalue = $eligibilityvalue;
     if ($this->getRequest()->getPost()) {
         $result = $this->save($appraisalInitForm);
         $this->view->msgarray = $result;
     }
     $this->render('form');
 }
 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;
     }
 }
示例#6
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->checkAppraisalExists($businessunit_id, $department_id);
         $where .= " and ai.businessunit_id = '" . $businessunit_id . "'  ";
         $flag = isset($init_data[0]['performance_app_flag']) ? $init_data[0]['performance_app_flag'] : '';
         if ($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;
 }