public function indexAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $businessUnitId = $auth->getStorage()->read()->businessunit_id;
         $departmentId = $auth->getStorage()->read()->department_id;
     }
     $appraisalSkillsModel = new Default_Model_Appraisalemployeeratings();
     $call = $this->_getParam('call');
     if ($call == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $view = Zend_Layout::getMvcInstance()->getView();
     $objname = $this->_getParam('objname');
     $refresh = $this->_getParam('refresh');
     $dashboardcall = $this->_getParam('dashboardcall');
     $data = array();
     $searchQuery = '';
     $searchArray = array();
     $tablecontent = '';
     if ($refresh == 'refresh') {
         if ($dashboardcall == 'Yes') {
             $perPage = DASHBOARD_PERPAGE;
         } else {
             $perPage = PERPAGE;
         }
         $sort = 'DESC';
         $by = 'aer.modifieddate';
         $pageNo = 1;
         $searchData = '';
         $searchQuery = '';
         $searchArray = '';
     } else {
         $sort = $this->_getParam('sort') != '' ? $this->_getParam('sort') : 'DESC';
         $by = $this->_getParam('by') != '' ? $this->_getParam('by') : 'aer.modifieddate';
         if ($dashboardcall == 'Yes') {
             $perPage = $this->_getParam('per_page', DASHBOARD_PERPAGE);
         } else {
             $perPage = $this->_getParam('per_page', PERPAGE);
         }
         $pageNo = $this->_getParam('page', 1);
         /** search from grid - START * */
         $searchData = $this->_getParam('searchData');
         $searchData = rtrim($searchData, ',');
         /** search from grid - END * */
     }
     $dataTmp = $appraisalSkillsModel->getSelfAppraisalGrid($sort, $by, $perPage, $pageNo, $searchData, $call, $dashboardcall, $businessUnitId, $departmentId, $loginUserId);
     array_push($data, $dataTmp);
     $this->view->dataArray = $data;
     $this->view->call = $call;
     $this->view->messages = $this->_helper->flashMessenger->getMessages();
     $this->render('commongrid/index', null, true);
 }
 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);
                     }
                 }
             }
         }
     }
 }
Example #3
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";
     }
 }
Example #4
0
 /**
  ** get individual 
  **/
 public function getselectedappraisaldataAction()
 {
     try {
         $appId = $this->_request->getParam('appId');
         $empId = $this->_request->getParam('empId');
         $empAppraisalData = "";
         $questionsData = "";
         $categoriesData = "";
         $empData = "";
         $ratingsData = "";
         if ($appId && $empId) {
             $empAppraisalModel = new Default_Model_Appraisalemployeeratings();
             $empAppraisals = $empAppraisalModel->getSelectedAppraisalData($appId, $empId);
             $configId = isset($empAppraisals[0]['pa_configured_id']) ? $empAppraisals[0]['pa_configured_id'] : 0;
             // get rating details using configuration id
             $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
             $ratingsData = $appEmpRatingsModel->getAppRatingsDataByConfgId($configId, $appId);
             $ratingType = "";
             if (!empty($ratingsData)) {
                 $ratingType = $ratingsData[0]['rating_type'];
             }
             $ratingText = array();
             $ratingTextDisplay = array();
             $ratingValues = array();
             foreach ($ratingsData as $rd) {
                 $ratingText[] = $rd['rating_text'];
                 $ratingTextDisplay[$rd['id']] = $rd['rating_text'];
                 $ratingValues[$rd['id']] = $rd['rating_value'];
             }
             //$empAppraisalData = $empAppraisalModel->getEmpQuestionsData($appId,$empId);
             if (!empty($empAppraisals)) {
                 if (!empty($empAppraisals[0]['employee_response'])) {
                     $empResponse = json_decode($empAppraisals[0]['employee_response']);
                     $empResponseArray = get_object_vars($empResponse);
                     $strQuestionIds = implode(",", array_keys($empResponseArray));
                     $questionsData = $empAppraisalModel->getQuestionsData($strQuestionIds);
                     $tmpRatingIdsObject = array_values($empResponseArray);
                     $tmpRatingIdsArr = array();
                     foreach ($tmpRatingIdsObject as $ratingArr) {
                         $tmpRatings = get_object_vars($ratingArr);
                         $tmpRatingIdsArr[] = $tmpRatings['rating_id'];
                     }
                     if (!empty($empAppraisals[0]['manager_response'])) {
                         $managerResponse = json_decode($empAppraisals[0]['manager_response']);
                         $managerResponseArray = get_object_vars($managerResponse);
                         $managerRatingIdsObject = array_values($managerResponseArray);
                         foreach ($managerRatingIdsObject as $ratingArr) {
                             $tmpRatings = get_object_vars($ratingArr);
                             $tmpRatingIdsArr[] = $tmpRatings['rating'];
                         }
                     }
                     $tmpRatingIdsStr = !empty($tmpRatingIdsArr) ? implode(",", $tmpRatingIdsArr) : "";
                     if (!empty($tmpRatingIdsStr)) {
                         $ratingsData = $empAppraisalModel->getRatingsData($tmpRatingIdsStr);
                     }
                     if (!empty($ratingsData)) {
                         $r = 0;
                         foreach ($ratingsData as $rdata) {
                             $ratingsData[$rdata['id']] = $rdata;
                             unset($ratingsData[$r]);
                             $r++;
                         }
                     }
                 }
                 $strCategories = $empAppraisals[0]['category_id'];
                 $categoriesData = $empAppraisalModel->getCategories($strCategories);
                 /** for getting line managers name, business unit, department details
                 					**
                 					$strEmpId = $empId.',';
                 
                 					if(!empty($empAppraisals[0]['line_manager_1']))
                 					{
                 							$strEmpId .= $empAppraisals[0]['line_manager_1'];
                 							$strEmpId .= ',';
                 					}
                 					if(!empty($empAppraisals[0]['line_manager_2']))
                 					{
                 						$strEmpId .= $empAppraisals[0]['line_manager_2'];
                 						$strEmpId .= ',';
                 					}
                 					if(!empty($empAppraisals[0]['line_manager_3']))
                 					{
                 						$strEmpId .= $empAppraisals[0]['line_manager_3'];
                 						$strEmpId .= ',';
                 					}
                 					if(!empty($empAppraisals[0]['line_manager_4']))
                 					{
                 						$strEmpId .= $empAppraisals[0]['line_manager_4'];
                 						$strEmpId .= ',';
                 					}
                 					if(!empty($empAppraisals[0]['line_manager_5']))
                 					{
                 						$strEmpId .= $empAppraisals[0]['line_manager_5'];
                 						$strEmpId .= ',';
                 					}
                 					
                 					$strEmpId = trim($strEmpId,",");
                 					$empData = $empAppraisalModel->getEmployeeData($strEmpId);
                 					**/
             }
         }
         $this->view->selectedAppraisals = $empAppraisals;
         $this->view->categoriesData = $categoriesData;
         $this->view->empData = $empData;
         $this->view->questionsData = $questionsData;
         $this->view->ratingsData = $ratingsData;
         $this->view->ratingType = $ratingType;
         $this->view->ratingTextDisplay = $ratingTextDisplay;
         $this->view->ratingText = json_encode($ratingText);
         $this->view->ratingValues = $ratingValues;
     } catch (Exception $e) {
         print_r($e);
     }
 }
 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 getempcontentAction()
 {
     $post_values = $this->getRequest()->getPost();
     if (count($post_values) > 0) {
         $appraisal_id = sapp_Global::_decrypt($post_values['appraisal_id']);
         $manager_id = sapp_Global::_decrypt($post_values['manager_id']);
         $user_id = sapp_Global::_decrypt($post_values['user_id']);
         $flag = sapp_Global::_decrypt($post_values['flag']);
         $app_config_id = sapp_Global::_decrypt($post_values['app_config_id']);
         $app_ratings = sapp_Global::_decrypt($post_values['app_rating']);
         $emp_status = sapp_Global::_decrypt($post_values['emp_status']);
         $key = $post_values['key'];
         $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
         $data = array();
         if ($appraisal_id != '' && $manager_id != '' && $user_id != '' && $flag != '') {
             $model = new Default_Model_Appraisalmanager();
             $data = $model->getempcontent($appraisal_id, $manager_id, $user_id, $flag, $app_config_id);
         }
         $appEmpQuesPrivData = $appEmpRatingsModel->getAppEmpQuesPrivData($appraisal_id, $user_id);
         $hr_ques_previs = array();
         $mgr_ques_previs = array();
         $ratingType = array();
         if ($appEmpQuesPrivData[0]['hr_group_qs_privileges']) {
             $hr_ques_previs = json_decode($appEmpQuesPrivData[0]['hr_group_qs_privileges'], true);
         }
         if ($appEmpQuesPrivData[0]['manager_qs_privileges']) {
             $mgr_ques_previs = json_decode($appEmpQuesPrivData[0]['manager_qs_privileges'], true);
         }
         $question_previs = $hr_ques_previs + $mgr_ques_previs;
         // Get 'My Team Appraisal - Employee' skills
         $emp_skills = $appEmpRatingsModel->getAppEmpSkills($appraisal_id, $user_id);
         $this->view->data = $data;
         $this->view->key = $key;
         $this->view->flag = $flag;
         $this->view->user_id = $user_id;
         $this->view->emp_skills = $emp_skills;
         $this->view->appraisal_id = $appraisal_id;
         $this->view->emp_status = $emp_status;
         $this->view->app_ratings = $app_ratings;
         $this->view->question_previs = $question_previs;
     }
 }
 public function updatelinemanagerAction()
 {
     $this->_helper->layout->disableLayout();
     $ajaxContext = $this->_helper->getHelper('AjaxContext');
     $ajaxContext->addActionContext('updatelinemanager', 'json')->initContext();
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $result['result'] = 'success';
     $result['msg'] = '';
     $appraisalid = $this->_request->getParam('appraisalid');
     $employeeid = $this->_request->getParam('employeeid');
     $line_1_mgr = $this->_request->getParam('line_1_mgr');
     $line_2_mgr = $this->_request->getParam('line_2_mgr');
     $line_3_mgr = $this->_request->getParam('line_3_mgr');
     $line_4_mgr = $this->_request->getParam('line_4_mgr');
     $line_5_mgr = $this->_request->getParam('line_5_mgr');
     $levels = $this->_request->getParam('levels');
     if ($appraisalid && $employeeid) {
         $trDb = Zend_Db_Table::getDefaultAdapter();
         $trDb->beginTransaction();
         try {
             $data = array('line_manager_1' => $line_1_mgr != '' ? $line_1_mgr : NULL, 'line_manager_2' => $line_2_mgr != '' ? $line_2_mgr : NULL, 'line_manager_3' => $line_3_mgr != '' ? $line_3_mgr : NULL, 'line_manager_4' => $line_4_mgr != '' ? $line_4_mgr : NULL, 'line_manager_5' => $line_5_mgr != '' ? $line_5_mgr : NULL, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             $privilegeswhere = " employee_id = '" . $employeeid . "' and pa_initialization_id='" . $appraisalid . "' and module_flag=1 and isactive=1 ";
             $empratingswhere = " employee_id = '" . $employeeid . "' and pa_initialization_id='" . $appraisalid . "' and isactive=1 ";
             $appraisalPrivMainModel->SaveorUpdatePrivilegeData($data, $privilegeswhere);
             $appraisalempratingsmodel->SaveorUpdateAppraisalSkillsData($data, $empratingswhere);
             $trDb->commit();
         } catch (Exception $e) {
             $trDb->rollBack();
             $result['result'] = 'error';
             $result['msg'] = $e->getMessage();
         }
     }
     $this->_helper->json($result);
 }
 public function updatelinemanagerAction()
 {
     $this->_helper->layout->disableLayout();
     $ajaxContext = $this->_helper->getHelper('AjaxContext');
     $ajaxContext->addActionContext('updatelinemanager', 'json')->initContext();
     $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;
         $loginUserEmail = $auth->getStorage()->read()->emailaddress;
         $loginUsername = $auth->getStorage()->read()->userfullname;
         $loginUserprofileimg = $auth->getStorage()->read()->profileimg;
     }
     $appraisalPrivMainModel = new Default_Model_Appraisalqsmain();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $result['result'] = 'success';
     $result['msg'] = '';
     $send_mails = false;
     $appraisalid = $this->_request->getParam('appraisalid');
     $employeeid = $this->_request->getParam('employeeid');
     $line_1_mgr = $this->_request->getParam('line_1_mgr');
     $line_2_mgr = $this->_request->getParam('line_2_mgr');
     $line_3_mgr = $this->_request->getParam('line_3_mgr');
     $line_4_mgr = $this->_request->getParam('line_4_mgr');
     $line_5_mgr = $this->_request->getParam('line_5_mgr');
     $levels = $this->_request->getParam('levels');
     //checking equality of manager levels for sending mails
     if ($appraisalid && $employeeid) {
         $appraisal_level_arr = $appraisalPrivMainModel->getAllManagerIds($appraisalid, $employeeid);
         $appraisal_level_arr = $appraisal_level_arr[0];
         $levels_pre = $appraisal_level_arr['manager_levels'];
         if ($levels_pre == $levels) {
             $preLine_1_mgr = $appraisal_level_arr['line_manager_1'];
             $preLine_2_mgr = $appraisal_level_arr['line_manager_2'];
             $preLine_3_mgr = $appraisal_level_arr['line_manager_3'];
             $preLine_4_mgr = $appraisal_level_arr['line_manager_4'];
             $preLine_5_mgr = $appraisal_level_arr['line_manager_5'];
             for ($i = 1; $i <= $levels_pre; $i++) {
                 $preLine_mgr = "preLine_" . $i . "_mgr";
                 $line_mgr = "line_" . $i . "_mgr";
                 if (${$line_mgr} != ${$preLine_mgr}) {
                     $send_mails = true;
                 }
             }
         } else {
             $send_mails = true;
         }
     }
     //end checking send mails to employees
     if ($appraisalid && $employeeid) {
         $trDb = Zend_Db_Table::getDefaultAdapter();
         $trDb->beginTransaction();
         try {
             $data = array('line_manager_1' => $line_1_mgr != '' ? $line_1_mgr : NULL, 'line_manager_2' => $line_2_mgr != '' ? $line_2_mgr : NULL, 'line_manager_3' => $line_3_mgr != '' ? $line_3_mgr : NULL, 'line_manager_4' => $line_4_mgr != '' ? $line_4_mgr : NULL, 'line_manager_5' => $line_5_mgr != '' ? $line_5_mgr : NULL, 'manager_levels' => is_numeric($levels) ? $levels : 1, 'modifiedby' => $loginUserId, 'modifiedby_role' => $loginuserRole, 'modifiedby_group' => $loginuserGroup, 'modifieddate' => gmdate("Y-m-d H:i:s"));
             $privilegeswhere = " employee_id = '" . $employeeid . "' and pa_initialization_id='" . $appraisalid . "' and module_flag=1 and isactive=1 ";
             $empratingswhere = " employee_id = '" . $employeeid . "' and pa_initialization_id='" . $appraisalid . "' and isactive=1 ";
             $appraisalPrivMainModel->SaveorUpdatePrivilegeData($data, $privilegeswhere);
             //remove the manager_levels as this column is not there in main_pa_employee_ratings table
             unset($data['manager_levels']);
             $appraisalempratingsmodel->SaveorUpdateAppraisalSkillsData($data, $empratingswhere);
             if ($send_mails == true) {
                 /** Start
                  * Sending Mails to employees
                  */
                 $emp_id_str = $loginuserRole == SUPERADMINROLE ? " " : "({$loginUserEmpId})";
                 //Preparing string with line manager ids
                 $mgrStr = '';
                 for ($i = 1; $i <= $levels; $i++) {
                     $mgr_str = 'line_' . $i . '_mgr';
                     //$line_1_mgr
                     if (is_numeric(${$mgr_str})) {
                         $mgrStr .= ${$mgr_str} . ',';
                     }
                 }
                 $mgrStr = rtrim($mgrStr, ",");
                 $appraisalratingsmodel = new Default_Model_Appraisalratings();
                 $appraisal_details = $appraisalratingsmodel->getappdata($appraisalid);
                 if (!empty($appraisal_details)) {
                     $to_year = $appraisal_details['to_year'];
                 }
                 $employeeDetailsArr = $appraisalPrivMainModel->getManagerDetailsByIds($employeeid, $mgrStr);
                 $mgr_array = array();
                 $mgr_array = explode(",", $mgrStr);
                 //Preparing Employee array for Bcc
                 $empArr = array();
                 if (!empty($employeeDetailsArr)) {
                     $empArrList = '';
                     $empUserIdArr = array();
                     $toEmailId = '';
                     $toEmailName = '';
                     foreach ($employeeDetailsArr as $emp) {
                         array_push($empArr, $emp['emailaddress']);
                         //preparing Bcc array
                         array_push($empUserIdArr, $emp['user_id']);
                         if ($emp['user_id'] == $employeeid) {
                             $toEmailId = $emp['emailaddress'];
                             $toEmailName = $emp['userfullname'];
                             $toEmpId = $emp['employeeId'];
                             array_pop($empArr);
                         }
                     }
                     $index = array_search($employeeid, $empUserIdArr);
                     unset($employeeDetailsArr[$index]);
                     $mail_str = '';
                     for ($j = 0; $j < sizeof($mgr_array); $j++) {
                         foreach ($employeeDetailsArr as $employee) {
                             if ($mgr_array[$j] == $employee['user_id']) {
                                 $profile_pic = $employee['profileimg'];
                                 $cnt = $j + 1;
                                 if ($profile_pic != '') {
                                     $src = DOMAIN . "public/uploads/profile/" . $profile_pic;
                                 } else {
                                     $src = MEDIA_PATH . "images/default-profile-pic.jpg";
                                 }
                                 $mail_str .= "<div style='padding:20px 0 0 0;color:#3b3b3b;'>Line {$cnt} Manager : " . $employee['userfullname'] . " <img src=" . $src . " onError=this.src=" . MEDIA_PATH . "images/default-profile-pic.jpg width='30px' height='30px' /></div>";
                             }
                         }
                     }
                 }
                 //pushing loginUserEmail to Bcc array
                 array_push($empArr, $loginUserEmail);
                 $options['subject'] = APPLICATION_NAME . ': Change in Line Managers';
                 $options['header'] = 'Performance Appraisal : ' . $to_year;
                 $options['bcc'] = $empArr;
                 $options['toEmail'] = $toEmailId;
                 $options['toName'] = $toEmailName;
                 $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;'>Line Managers for " . $toEmailName . "(" . $toEmpId . ") have been modified by " . $loginUsername . $emp_id_str . "</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{$mail_str}\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 and check the details.</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
                  */
             }
             $trDb->commit();
         } catch (Exception $e) {
             $trDb->rollBack();
             $result['result'] = 'error';
             $result['msg'] = $e->getMessage();
         }
     }
     $this->_helper->json($result);
 }
 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));
 }
 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);
                             }
                         }
                     }
                 }
             }
         }
     }
 }
 public function checkemployeeresponseAction()
 {
     $this->_helper->layout->disableLayout();
     $appraisalempratingsmodel = new Default_Model_Appraisalemployeeratings();
     $result['result'] = 'success';
     $appraisalid = $this->_request->getParam('appraisalid');
     if ($appraisalid) {
         $empresponseArr = $appraisalempratingsmodel->checkEmployeeResponse($appraisalid);
         if (!empty($empresponseArr)) {
             if ($empresponseArr[0]['empresponse'] > 0) {
                 $result['result'] = 'error';
             }
         }
     }
     $this->_helper->json($result);
 }
 /**
  ** get individual 
  **/
 public function getselectedappraisaldataAction()
 {
     try {
         $appId = $this->_request->getParam('appId');
         $empId = $this->_request->getParam('empId');
         $period = $this->_request->getParam('period');
         $empAppraisalData = "";
         $questionsData = "";
         $categoriesData = "";
         $empData = "";
         $ratingsData = "";
         $empAppraisals = array();
         $ratingType = "";
         $ratingText = array();
         $ratingTextDisplay = array();
         $ratingValues = array();
         if ($appId && $empId && $period) {
             $empAppraisalModel = new Default_Model_Appraisalemployeeratings();
             $empAppraisals = $empAppraisalModel->getSelectedAppraisalData($appId, $empId, $period);
             $configId = isset($empAppraisals[0]['pa_configured_id']) ? $empAppraisals[0]['pa_configured_id'] : 0;
             // get rating details using configuration id
             $appEmpRatingsModel = new Default_Model_Appraisalemployeeratings();
             $ratingsData = $appEmpRatingsModel->getAppRatingsDataByConfgId($configId, $appId);
             if (!empty($ratingsData)) {
                 $ratingType = $ratingsData[0]['rating_type'];
             }
             foreach ($ratingsData as $rd) {
                 $ratingText[] = $rd['rating_text'];
                 $ratingTextDisplay[$rd['id']] = $rd['rating_text'];
                 $ratingValues[$rd['id']] = $rd['rating_value'];
             }
             if (!empty($empAppraisals)) {
                 if (!empty($empAppraisals[0]['employee_response'])) {
                     $empResponse = json_decode($empAppraisals[0]['employee_response']);
                     $empResponseArray = get_object_vars($empResponse);
                     $strQuestionIds = implode(",", array_keys($empResponseArray));
                     $questionsData = $empAppraisalModel->getQuestionsData($strQuestionIds);
                     $tmpRatingIdsObject = array_values($empResponseArray);
                     $tmpRatingIdsArr = array();
                     foreach ($tmpRatingIdsObject as $ratingArr) {
                         $tmpRatings = get_object_vars($ratingArr);
                         $tmpRatingIdsArr[] = $tmpRatings['rating_id'];
                     }
                     if (!empty($empAppraisals[0]['manager_response'])) {
                         $managerResponse = json_decode($empAppraisals[0]['manager_response']);
                         $managerResponseArray = get_object_vars($managerResponse);
                         $managerRatingIdsObject = array_values($managerResponseArray);
                         foreach ($managerRatingIdsObject as $ratingArr) {
                             $tmpRatings = get_object_vars($ratingArr);
                             $tmpRatingIdsArr[] = $tmpRatings['rating'];
                         }
                     }
                     $tmpRatingIdsStr = !empty($tmpRatingIdsArr) ? implode(",", $tmpRatingIdsArr) : "";
                     if (!empty($tmpRatingIdsStr)) {
                         $ratingsData = $empAppraisalModel->getRatingsData($tmpRatingIdsStr);
                     }
                     if (!empty($ratingsData)) {
                         $r = 0;
                         foreach ($ratingsData as $rdata) {
                             $ratingsData[$rdata['id']] = $rdata;
                             unset($ratingsData[$r]);
                             $r++;
                         }
                     }
                 }
                 $strCategories = $empAppraisals[0]['category_id'];
                 $categoriesData = $empAppraisalModel->getCategories($strCategories);
             }
         }
         $appSkillsModel = new Default_Model_Appraisalskills();
         $skills = array();
         $skills = $appSkillsModel->getAppraisalSkillsData();
         $skills_arr = array();
         foreach ($skills as $skill) {
             $skills_arr[$skill['id']] = $skill;
         }
         $this->view->skills_arr = $skills_arr;
         $this->view->selectedAppraisals = $empAppraisals;
         $this->view->categoriesData = $categoriesData;
         $this->view->empData = $empData;
         $this->view->questionsData = $questionsData;
         $this->view->ratingsData = $ratingsData;
         $this->view->ratingType = $ratingType;
         $this->view->ratingTextDisplay = $ratingTextDisplay;
         $this->view->ratingText = json_encode($ratingText);
         $this->view->ratingValues = $ratingValues;
         $this->view->appraisalId = $appId;
     } catch (Exception $e) {
         print_r($e);
     }
 }