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; }
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 save($appraisalInitForm, $is_edit = 0) { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginuserRole = $auth->getStorage()->read()->emprole; $loginuserGroup = $auth->getStorage()->read()->group_id; } $appraisalInitModel = new Default_Model_Appraisalinit(); $dept_model = new Default_Model_Departments(); $msgarray = array(); $errorflag = 'true'; $eligibilityflag = $this->_request->getParam('eligibilityflag'); $eligibility = $this->_request->getParam('eligibility'); $eligibility_hidden = $this->_request->getParam('eligibility_hidden'); $eligibility_value = $this->_request->getParam('eligibility_value'); if ($eligibilityflag == 1) { if (empty($eligibility)) { $msgarray['eligibility'] = "Please select eligiblity."; $errorflag = 'false'; } } $enable_step = $this->_request->getParam('enable_step'); $businessunit_id = $this->_request->getParam('businessunit_id'); $department_id = $this->_request->getParam('department_id', null); $performance_app_flag = $this->_request->getParam('performance_app_flag'); $id = $this->_request->getParam('id'); if ($appraisalInitForm->isValid($this->_request->getPost()) && $errorflag == 'true') { try { $post_values = $this->_request->getPost(); $pa_configured_id = $this->_request->getParam('configuration_id'); $appraisal_mode = $this->_request->getParam('appraisal_mode'); $appraisal_period = $this->_request->getParam('appraisal_period'); $from_year = $this->_request->getParam('from_year'); $to_year = $this->_request->getParam('to_year'); $category_id = $this->_request->getParam('category_id', null); $status = $this->_request->getParam('status'); $disable_arr = $this->_request->getParam('disable_arr', array()); $management_appraisal = $this->_request->getParam('management_appraisal', null); $appraisal_ratings = $this->_request->getParam('appraisal_ratings', null); $managers_due_date = $this->_request->getParam('managers_due_date'); $employee_due_date = $this->_request->getParam('employee_due_date'); $hid_performance_app_flag = $this->_request->getParam('hid_performance_app_flag'); $hid_appraisal_period = $this->_request->getParam('hid_appraisal_period', null); //checking whether the appraisal exists for the given peroid if ($this->getperiodAction($from_year, $to_year, $businessunit_id, $department_id, $hid_performance_app_flag, $appraisal_mode, 1, $is_edit, $id, $appraisal_period) == 'success') { if (count($eligibility) > 0) { $eligibility = implode(',', $eligibility); } else { $eligibility = null; } if (count($eligibility_hidden) > 0) { $eligibility_hidden = implode(',', $eligibility_hidden); } else { $eligibility_hidden = null; } if (count($category_id) > 0) { $category_id = implode(',', $category_id); } else { $category_id = null; } $menumodel = new Default_Model_Menu(); $actionflag = ''; $tableid = ''; $data = array('businessunit_id' => $businessunit_id, 'department_id' => $hid_performance_app_flag == 0 ? $department_id : null, 'enable_step' => $enable_step, 'appraisal_mode' => $appraisal_mode, 'appraisal_period' => $hid_appraisal_period, 'from_year' => $from_year, 'to_year' => $to_year, 'managers_due_date' => sapp_Global::change_date($managers_due_date, 'database'), 'employees_due_date' => sapp_Global::change_date($employee_due_date, 'database'), 'eligibility' => $eligibilityflag == 1 ? $eligibility : $eligibility_value, 'category_id' => $category_id, 'status' => $status, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s")); if ($id != '') { $where = array('id=?' => $id); $actionflag = 2; } else { $app_data = $appraisalInitModel->check_per_implmentation($businessunit_id, $department_id); $data['pa_configured_id'] = !empty($app_data) ? $app_data['id'] : ''; $data['appraisal_ratings'] = !empty($app_data) ? $app_data['appraisal_ratings'] : 1; $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; } $Id = $appraisalInitModel->SaveorUpdateAppraisalInitData($data, $where); if ($Id == 'update') { $tableid = $id; $this->_helper->FlashMessenger()->setNamespace('appinit_success')->addMessage('Appraisal process updated successfully'); } else { $this->_helper->FlashMessenger()->setNamespace('appinit_success')->addMessage('Appraisal process added successfully'); $tableid = $Id; } $menuidArr = $menumodel->getMenuObjID('/appraisalinit'); $menuID = $menuidArr[0]['id']; $result = sapp_Global::logManager($menuID, $actionflag, $loginUserId, $tableid); $this->_redirect('appraisalinit/confmanagers/i/' . sapp_Global::_encrypt($tableid)); } else { if ($loginuserRole == SUPERADMINROLE || $loginuserGroup == MANAGEMENT_GROUP) { if ($performance_app_flag == 0) { if (isset($businessunit_id) && $businessunit_id != '') { $appraisalInitForm->setDefault('businessunit_id', $businessunit_id); $app_init_model = new Default_Model_Appraisalinit(); $appraisalInitForm->department_id->clearMultiOptions(); $appraisalInitForm->department_id->addMultiOption('', 'Select Department'); if ($id == '') { $dept_data = $app_init_model->getdeparmentsadmin($businessunit_id); if (count($dept_data) > 0) { foreach ($dept_data as $dept) { $appraisalInitForm->department_id->addMultiOption($dept['id'], utf8_encode($dept['deptname'])); } } } } if (isset($department_id) && $department_id != 0 && $department_id != '') { if ($id != '') { $dept_data = $dept_model->getParicularDepartmentId($department_id); if (count($dept_data) > 0) { $dept_data = $dept_data[0]; $appraisalInitForm->department_id->addMultiOption($dept_data['id'], $dept_data['deptname']); $appraisalInitForm->department_id->setValue($department_id); } } $appraisalInitForm->setDefault('department_id', $department_id); $app_cnt = $app_init_model->checkappadmin($businessunit_id, $department_id); if ($app_cnt > 0) { $msgarray['department_id'] = 'Appraisal already exists for this department.'; } } } } $msgarray['to_year'] = "Please select a valid year range."; return $msgarray; } } catch (Exception $e) { $msgarray['businessunit_name'] = "Something went wrong, please try again."; return $msgarray; } } else { $messages = $appraisalInitForm->getMessages(); foreach ($messages as $key => $val) { foreach ($val as $key2 => $val2) { $msgarray[$key] = $val2; break; } } if ($loginuserRole == SUPERADMINROLE || $loginuserGroup == MANAGEMENT_GROUP) { if ($performance_app_flag == 0) { if (isset($businessunit_id) && $businessunit_id != '') { $appraisalInitForm->setDefault('businessunit_id', $businessunit_id); $app_init_model = new Default_Model_Appraisalinit(); $appraisalInitForm->department_id->clearMultiOptions(); $appraisalInitForm->department_id->addMultiOption('', 'Select Department'); if ($id == '') { $dept_data = $app_init_model->getdeparmentsadmin($businessunit_id); if (count($dept_data) > 0) { foreach ($dept_data as $dept) { $appraisalInitForm->department_id->addMultiOption($dept['id'], utf8_encode($dept['deptname'])); } } } } if (isset($department_id) && $department_id != 0 && $department_id != '') { if ($id != '') { $dept_data = $dept_model->getParicularDepartmentId($department_id); if (count($dept_data) > 0) { $dept_data = $dept_data[0]; $appraisalInitForm->department_id->addMultiOption($dept_data['id'], $dept_data['deptname']); $appraisalInitForm->department_id->setValue($department_id); } } $appraisalInitForm->setDefault('department_id', $department_id); $app_cnt = $app_init_model->checkappadmin($businessunit_id, $department_id); if ($app_cnt > 0) { $msgarray['department_id'] = 'Appraisal already exists for this department.'; } } } } return $msgarray; } }
/** * 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($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 = $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.")); } /* * Logs Storing */ $menuidArr = $menumodel->getMenuObjID('/appraisalratings'); $menuID = $menuidArr[0]['id']; $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']); } } $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\t\t\t\t\t\t\t\t\t\t\t<span style='color:#3b3b3b;'>Hi,</span><br />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div style='padding:20px 0 0 0;color:#3b3b3b;'>Performance appraisal 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\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 mails sending */ $db->commit(); $this->_redirect('appraisalratings'); //throw new Exception("Some error message"); } catch (Exception $e) { $db->rollBack(); echo $e->getMessage(); echo $e->getTraceAsString(); return $msgarray; } }