Ejemplo n.º 1
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.º 2
0
 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;
     }
 }