예제 #1
0
 public function editAction()
 {
     $popConfigPermission = array();
     $auth = Zend_Auth::getInstance();
     $report_opt = array();
     $role_datap = array();
     $empGroup = "";
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     if (sapp_Global::_checkprivileges(PREFIX, $loginuserGroup, $loginuserRole, 'add') == 'Yes') {
         array_push($popConfigPermission, 'prefix');
     }
     if (sapp_Global::_checkprivileges(PREFIX, $loginuserGroup, $loginuserRole, 'edit') == 'Yes') {
         array_push($popConfigPermission, 'identitycodes');
     }
     if (sapp_Global::_checkprivileges(EMPLOYMENTSTATUS, $loginuserGroup, $loginuserRole, 'add') == 'Yes') {
         array_push($popConfigPermission, 'empstatus');
     }
     if (sapp_Global::_checkprivileges(JOBTITLES, $loginuserGroup, $loginuserRole, 'add') == 'Yes') {
         array_push($popConfigPermission, 'jobtitles');
     }
     if (sapp_Global::_checkprivileges(POSITIONS, $loginuserGroup, $loginuserRole, 'add') == 'Yes') {
         array_push($popConfigPermission, 'position');
     }
     $this->view->popConfigPermission = $popConfigPermission;
     $id = (int) $this->getRequest()->getParam('id');
     $id = abs($id);
     if ($id == '') {
         $id = $loginUserId;
     }
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $employeeform = new Default_Form_employee();
     $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
     $performanceflag = 'true';
     try {
         if ($id != '' && is_numeric($id) && $id > 0 && $id != $loginUserId) {
             $appEmpRatingsData = $appEmpRatingsModel->getSelfAppraisalDataByEmpID($id);
             if (sizeof($appEmpRatingsData) > 0 && $appEmpRatingsData[0]['status'] == 1) {
                 $performanceflag = 'false';
             }
             if ($performanceflag == 'true') {
                 $employeeModal = new Default_Model_Employee();
                 $usersModel = new Default_Model_Users();
                 $employmentstatusModel = new Default_Model_Employmentstatus();
                 $busineesUnitModel = new Default_Model_Businessunits();
                 $deptModel = new Default_Model_Departments();
                 $role_model = new Default_Model_Roles();
                 $user_model = new Default_Model_Usermanagement();
                 $candidate_model = new Default_Model_Candidatedetails();
                 $jobtitlesModel = new Default_Model_Jobtitles();
                 $positionsmodel = new Default_Model_Positions();
                 $prefixModel = new Default_Model_Prefix();
                 $data = array();
                 $empDeptId = "";
                 $empRoleId = "";
                 $data = $employeeModal->getsingleEmployeeData($id);
                 if ($data == 'norows') {
                     $this->view->rowexist = "norows";
                 } else {
                     if (!empty($data)) {
                         $this->view->rowexist = "rows";
                         $employeeform->submit->setLabel('Update');
                         $data = $data[0];
                         /* Earlier code to fetch employee details */
                         $employeeData = $employeeModal->getsingleEmployeeData($id);
                         if ($data['is_orghead'] == 1) {
                             $roles_arr = $role_model->getRolesList_EMP('orghead');
                             if (sizeof($roles_arr) > 0) {
                                 $employeeform->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr);
                             }
                         } else {
                             $roles_arr = $role_model->getRolesList_EMP();
                             if (sizeof($roles_arr) > 0) {
                                 $employeeform->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr);
                             }
                         }
                         $referedby_options = $user_model->getRefferedByForUsers();
                         $employmentStatusData = $employmentstatusModel->getempstatuslist();
                         if (sizeof($employmentStatusData) > 0) {
                             $employeeform->emp_status_id->addMultiOption('', 'Select Employment Status');
                             foreach ($employmentStatusData as $employmentStatusres) {
                                 $employeeform->emp_status_id->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
                             }
                         }
                         $businessunitData = $busineesUnitModel->getDeparmentList();
                         if (sizeof($businessunitData) > 0) {
                             $employeeform->businessunit_id->addMultiOption('0', 'No Business Unit');
                             foreach ($businessunitData as $businessunitres) {
                                 $employeeform->businessunit_id->addMultiOption($businessunitres['id'], $businessunitres['unitname']);
                             }
                         }
                         $departmentsData = $deptModel->getDepartmentList($data['businessunit_id']);
                         if (sizeof($departmentsData) > 0) {
                             $employeeform->department_id->addMultiOption('', 'Select Department');
                             foreach ($departmentsData as $departmentsres) {
                                 $employeeform->department_id->addMultiOption($departmentsres['id'], $departmentsres['deptname']);
                             }
                         }
                         $jobtitleData = $jobtitlesModel->getJobTitleList();
                         if (sizeof($jobtitleData) > 0) {
                             $employeeform->jobtitle_id->addMultiOption('', 'Select Job Title');
                             foreach ($jobtitleData as $jobtitleres) {
                                 $employeeform->jobtitle_id->addMultiOption($jobtitleres['id'], $jobtitleres['jobtitlename']);
                             }
                         }
                         $positionlistArr = $positionsmodel->getPositionList($data['jobtitle_id']);
                         if (sizeof($positionlistArr) > 0) {
                             $employeeform->position_id->addMultiOption('', 'Select Position');
                             foreach ($positionlistArr as $positionlistres) {
                                 $employeeform->position_id->addMultiOption($positionlistres['id'], $positionlistres['positionname']);
                             }
                         }
                         $prefixData = $prefixModel->getPrefixList();
                         if (!empty($prefixData)) {
                             foreach ($prefixData as $prefixres) {
                                 $employeeform->prefix_id->addMultiOption($prefixres['id'], $prefixres['prefix']);
                             }
                         }
                         $employeeform->populate($data);
                         $employeeform->setDefault('user_id', $data['user_id']);
                         $employeeform->setDefault('emp_status_id', $data['emp_status_id']);
                         $employeeform->setDefault('businessunit_id', $data['businessunit_id']);
                         $employeeform->setDefault('jobtitle_id', $data['jobtitle_id']);
                         $employeeform->setDefault('department_id', $data['department_id']);
                         $employeeform->setDefault('position_id', $data['position_id']);
                         $employeeform->setDefault('prefix_id', $data['prefix_id']);
                         //$employeeform->setDefault('emprole',$data['emprole']."_".MANAGEMENT_GROUP);
                         $employeeform->setDefault('emprole', $data['emprole']);
                         $date_of_joining = sapp_Global::change_date($data['date_of_joining'], 'view');
                         $employeeform->date_of_joining->setValue($date_of_joining);
                         if ($data['date_of_leaving'] != '' && $data['date_of_leaving'] != '0000-00-00') {
                             $date_of_leaving = sapp_Global::change_date($data['date_of_leaving'], 'view');
                             $employeeform->date_of_leaving->setValue($date_of_leaving);
                         }
                         if ($data['modeofentry'] != 'Direct') {
                             $employeeform->rccandidatename->setValue($data['userfullname']);
                         }
                         if (sizeof($referedby_options) > 0 && $data['candidatereferredby'] != '' && $data['candidatereferredby'] != 0) {
                             $employeeform->candidatereferredby->setValue($referedby_options[$data['candidatereferredby']]);
                         }
                         if ($data['rccandidatename'] != '' && $data['rccandidatename'] != 0) {
                             $cand_data = $candidate_model->getCandidateById($data['rccandidatename']);
                             $data['requisition_code'] = $cand_data['requisition_code'];
                         }
                         $role_data = $role_model->getRoleDataById($data['emprole']);
                         $employeeform->emprole->setValue($data['emprole'] . "_" . $role_data['group_id']);
                         $employeeform->setAttrib('action', BASE_URL . 'employee/edit/id/' . $id);
                         $reportingManagerData = $usersModel->getReportingManagerList_employees($data['department_id'], $data['id'], $role_data['group_id']);
                         $empDeptId = isset($_POST['department_id']) ? $_POST['department_id'] : $data['department_id'];
                         if (isset($_POST['emprole']) && $_POST['emprole'] != '') {
                             $role_split = preg_split('/_/', $_POST['emprole']);
                             $empRoleId = $role_split[0];
                         } else {
                             $empRoleId = $data['emprole'];
                         }
                         if (isset($empDeptId) && $empDeptId != '' && isset($empRoleId) && $empRoleId != '') {
                             try {
                                 $role_datap = $role_model->getRoleDataById($empRoleId);
                                 $reportingManagerData = $usersModel->getReportingManagerList_employees($empDeptId, $data['id'], $role_datap['group_id']);
                             } catch (Exception $e) {
                                 $reportingManagerData = array();
                             }
                         }
                         if (!empty($reportingManagerData)) {
                             $report_opt = $reportingManagerData;
                         }
                         $employeeform->setDefault('reporting_manager', $data['reporting_manager']);
                         $this->view->id = $id;
                         $this->view->form = $employeeform;
                         $this->view->employeedata = !empty($employeeData) ? $employeeData[0] : "";
                         $this->view->messages = $this->_helper->flashMessenger->getMessages();
                         $this->view->data = $data;
                         if ($data['is_orghead'] == 1) {
                             $employeeform->removeElement('businessunit_id');
                             $employeeform->removeElement('reporting_manager');
                             $employeeform->removeElement('department_id');
                             $employeeform->removeElement('emp_status_id');
                             $employeeform->removeElement('date_of_leaving');
                             //$employeeform->removeElement('emprole');
                         }
                     }
                 }
                 $this->view->report_opt = $report_opt;
             } else {
                 $this->editappraisal($id);
             }
         } else {
             $this->view->rowexist = "norows";
         }
         if ($this->getRequest()->getPost()) {
             $result = $this->save($employeeform);
             $this->view->msgarray = $result;
             $employeeform->modeofentry->setValue($data['modeofentry']);
             $employeeform->other_modeofentry->setValue($data['other_modeofentry']);
             if ($data['modeofentry'] != 'Direct') {
                 $employeeform->rccandidatename->setValue($data['userfullname']);
             }
             if (sizeof($referedby_options) > 0 && $data['candidatereferredby'] != '' && $data['candidatereferredby'] != 0) {
                 $employeeform->candidatereferredby->setValue($referedby_options[$data['candidatereferredby']]);
             }
         }
     } catch (Exception $e) {
         $this->view->rowexist = "norows";
     }
 }
 /**
  * 
  * Show analytics of employees reporting to manager 
  */
 public function employeereportAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     if ($loginuserGroup == MANAGER_GROUP || $loginuserGroup == MANAGEMENT_GROUP || $loginuserRole == SUPERADMINROLE) {
         $norec_arr = array();
         $form = new Default_Form_Employeereport();
         $requi_model = new Default_Model_Requisition();
         $employmentstatusModel = new Default_Model_Employmentstatus();
         $role_model = new Default_Model_Roles();
         $departmentsmodel = new Default_Model_Departments();
         $bu_model = new Default_Model_Businessunits();
         $roles_arr = $role_model->getRolesList_EMP();
         $job_data = $requi_model->getJobTitleList();
         $employmentStatusData = $employmentstatusModel->getempstatuslist();
         if (count($job_data) == 0) {
             $norec_arr['jobtitle_id'] = "Job titles are not configured yet.";
             $norec_arr['position_id'] = "Positions are not configured yet.";
         }
         if (count($employmentStatusData) == 0) {
             $norec_arr['emp_status_id'] = "Employment status is not configured yet.";
         }
         $form->jobtitle_id->addMultiOptions(array('' => 'Select Job Title') + $job_data);
         if (count($employmentStatusData) > 0) {
             $form->emp_status_id->addMultiOption('', 'Select Employment Status');
             foreach ($employmentStatusData as $employmentStatusres) {
                 $form->emp_status_id->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
             }
         }
         if (sizeof($roles_arr) > 0) {
             $form->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr);
         } else {
             $norec_arr['emprole'] = 'Roles are not added yet.';
         }
         $bu_arr = $bu_model->getBU_report();
         if (!empty($bu_arr)) {
             foreach ($bu_arr as $bu) {
                 $form->businessunit_id->addMultiOption($bu['id'], utf8_encode($bu['bu_name']));
             }
         } else {
             $norec_arr['businessunit_id'] = 'Business Units are not added yet.';
         }
         // Show count of employees reporting to manager
         // Get employees data reporting to manager
         $myEmployees_model = new Default_Model_Myemployees();
         $employee_model = new Default_Model_Employee();
         //$this->_helper->layout->setLayout("analyticslayout");
         $this->view->count_emp_reporting = $employee_model->getCountEmpReporting($myEmployees_model->getLoginUserId());
         $this->view->form = $form;
         $this->view->messages = $norec_arr;
         $this->view->ermsg = '';
     } else {
         $this->render('error/error.phtml');
     }
 }
예제 #3
0
 public function employeereportAction()
 {
     $norec_arr = array();
     $form = new Default_Form_Employeereport();
     $requi_model = new Default_Model_Requisition();
     $employmentstatusModel = new Default_Model_Employmentstatus();
     $role_model = new Default_Model_Roles();
     $departmentsmodel = new Default_Model_Departments();
     $bu_model = new Default_Model_Businessunits();
     $roles_arr = $role_model->getRolesList_EMP();
     $job_data = $requi_model->getJobTitleList();
     $employmentStatusData = $employmentstatusModel->getempstatuslist();
     if (count($job_data) == 0) {
         $norec_arr['jobtitle_id'] = "Job titles are not configured yet.";
         $norec_arr['position_id'] = "Positions are not configured yet.";
     }
     if (count($employmentStatusData) == 0) {
         $norec_arr['emp_status_id'] = "Employment status is not configured yet.";
     }
     $form->jobtitle_id->addMultiOptions(array('' => 'Select Job Title') + $job_data);
     if (count($employmentStatusData) > 0) {
         $form->emp_status_id->addMultiOption('', 'Select Employment Status');
         foreach ($employmentStatusData as $employmentStatusres) {
             $form->emp_status_id->addMultiOption($employmentStatusres['workcodename'], $employmentStatusres['statusname']);
         }
     }
     if (sizeof($roles_arr) > 0) {
         $form->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr);
     } else {
         $norec_arr['emprole'] = 'Roles are not added yet.';
     }
     $bu_arr = $bu_model->getBU_report();
     if (!empty($bu_arr)) {
         foreach ($bu_arr as $bu) {
             $form->businessunit_id->addMultiOption($bu['id'], utf8_encode($bu['bu_name']));
         }
     } else {
         $norec_arr['businessunit_id'] = 'Business Units are not added yet.';
     }
     $this->view->form = $form;
     $this->view->messages = $norec_arr;
 }