public function getuniqueDepartment($businessunit_id) { $leavemanagementmodel = new Default_Model_Leavemanagement(); $departmentidsArr = $leavemanagementmodel->getActiveDepartmentIds(); $departmentsmodel = new Default_Model_Departments(); $depatrmentidstr = ''; $newarr = array(); if (!empty($departmentidsArr)) { $where = ''; for ($i = 0; $i < sizeof($departmentidsArr); $i++) { $newarr1[] = array_push($newarr, $departmentidsArr[$i]['deptid']); } $depatrmentidstr = implode(",", $newarr); foreach ($newarr as $deparr) { $where .= " id!= {$deparr} AND "; } $where = trim($where, " AND"); $querystring = "Select d.id,d.deptname from main_departments as d where d.unitid={$businessunit_id} and d.isactive=1 and {$where} "; $uniquedepartmentids = $departmentsmodel->getUniqueDepartments($querystring); return $uniquedepartmentids; } else { $departmentlistArr = $departmentsmodel->getDepartmentList($businessunit_id); return $departmentlistArr; } }
public function calculatecalendardaysAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; } $noOfDays = 0; $weekDay = ''; $result['message'] = ''; $result['days'] = ''; $result['from_date_view'] = ''; $result['to_date_view'] = ''; $result['result'] = ''; $employeeDepartmentId = ''; $employeeGroupId = ''; $weekend1 = ''; $weekend2 = ''; $availableleaves = ''; $holidayDatesArr = array(); $fromDatejs = $this->_request->getParam('fromDate'); $fromDate = sapp_Global::change_date($fromDatejs, 'database'); $toDatejs = $this->_request->getParam('toDate'); $toDate = sapp_Global::change_date($toDatejs, 'database'); //Calculating the no of days in b/w from date & to date with out taking weekend & holidays.... $from_obj = new DateTime($fromDatejs); $from_date = $from_obj->format('Y-m-d'); $to_obj = new DateTime($toDatejs); $to_date = $to_obj->format('Y-m-d'); if ($to_date >= $from_date) { $employeesmodel = new Default_Model_Employees(); $leavemanagementmodel = new Default_Model_Leavemanagement(); $holidaydatesmodel = new Default_Model_Holidaydates(); $leaverequestmodel = new Default_Model_Leaverequest(); $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId); $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId); if (!empty($getavailbaleleaves)) { $availableleaves = $getavailbaleleaves[0]['remainingleaves']; } if (!empty($loggedInEmployeeDetails)) { $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id']; $employeeGroupId = $loggedInEmployeeDetails[0]['holiday_group']; if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) { $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($employeeDepartmentId); } if (!empty($weekendDetailsArr)) { if ($weekendDetailsArr[0]['is_skipholidays'] == 1 && isset($employeeGroupId) && $employeeGroupId != '') { $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId); if (!empty($holidayDateslistArr)) { for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) { $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate']; } } } $weekend1 = $weekendDetailsArr[0]['daystartname']; $weekend2 = $weekendDetailsArr[0]['dayendname']; } $fromdate_obj = new DateTime($fromDate); $weekDay = $fromdate_obj->format('l'); while ($fromDate <= $toDate) { if (count($holidayDatesArr) > 0) { if ($weekDay != $weekend1 && $weekDay != $weekend2 && !in_array($fromDate, $holidayDatesArr)) { $noOfDays++; } } else { if ($weekDay != $weekend1 && $weekDay != $weekend2) { $noOfDays++; } } $fromdate_obj->add(new DateInterval('P1D')); //Increment from date by one day... $fromDate = $fromdate_obj->format('Y-m-d'); $weekDay = $fromdate_obj->format('l'); } } $result['result'] = 'success'; $result['days'] = $noOfDays; $result['message'] = ''; $result['loginUserId'] = $loginUserId; $result['availableleaves'] = $availableleaves; } $this->_helper->_json($result); }
public function leavesAction() { if (defined('EMPTABCONFIGS')) { $empOrganizationTabs = explode(",", EMPTABCONFIGS); if (in_array('emp_leaves', $empOrganizationTabs)) { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginUserRole = $auth->getStorage()->read()->emprole; $loginuserGroup = $auth->getStorage()->read()->group_id; } $id = $loginUserId; $call = $this->_getParam('call'); if ($call == 'ajaxcall') { $this->_helper->layout->disableLayout(); $userID = $this->_getParam('unitId') != '' ? $this->_getParam('unitId') : $this->_getParam('userid'); } $Uid = $id ? $id : $userID; $employeeleavesModel = new Default_Model_Employeeleaves(); $leavemanagementModel = new Default_Model_Leavemanagement(); $employeeModal = new Default_Model_Employee(); try { $empdata = $employeeModal->getsingleEmployeeData($Uid); if ($empdata == 'norows') { $this->view->rowexist = "norows"; $this->view->empdata = ""; } else { $this->view->rowexist = "rows"; if (!empty($empdata)) { if ($Uid) { $empleavesform = new Default_Form_empleaves(); $employeeleavesModal = new Default_Model_Employeeleaves(); $currentdata = ''; $leavetransferArr = $leavemanagementModel->getWeekendDetails($empdata[0]['department_id']); $prevyeardata = $employeeleavesModal->getPreviousYearEmployeeleaveData($Uid); $currentyeardata = $employeeleavesModal->getsingleEmployeeleaveData($Uid); if (empty($currentyeardata)) { $currentdata = "empty"; $currentyearleavecount = ''; } else { $currentdata = "notempty"; $currentyearleavecount = $currentyeardata[0]['emp_leave_limit']; } $this->view->currentdata = $currentdata; $leavetransfercount = ''; $previousyear = ''; $isleavetrasnferset = ''; $data = $employeeleavesModal->getsingleEmployeeleaveData($id); $used_leaves = 0; $date = date('Y'); if (!empty($data)) { $empleavesform->populate($data[0]); $used_leaves = $data[0]['used_leaves']; } $empleavesform->alloted_year->setValue($date); if (!empty($leavetransferArr) && $leavetransferArr[0]['is_leavetransfer'] == 1 && !empty($prevyeardata) && is_numeric($prevyeardata[0]['remainingleaves']) && (int) $prevyeardata[0]['remainingleaves'] > 0 && $prevyeardata[0]['alloted_year'] != '' && empty($currentyeardata)) { $leavetransfercount = $prevyeardata[0]['remainingleaves']; $previousyear = $prevyeardata[0]['alloted_year']; $isleavetrasnferset = 1; $empleavesform->submitbutton->setAttrib('onClick', 'return showleavealert(' . $leavetransfercount . ',' . $previousyear . ')'); $empleavesform->setAttrib('action', DOMAIN . 'mydetails/leaves/'); } else { $empleavesform->setAttrib('action', DOMAIN . 'mydetails/leaves/'); } $this->view->form = $empleavesform; $this->view->data = $data; $this->view->id = $Uid; $this->view->leavetransfercount = $leavetransfercount; } //Post values.... if ($this->getRequest()->getPost()) { $result = $this->empaddorremoveleaves($empleavesform, $Uid, $used_leaves, $leavetransfercount, $isleavetrasnferset, $currentyearleavecount); $this->view->msgarray = $result; } $objname = $this->_getParam('objname'); $refresh = $this->_getParam('refresh'); $data = array(); $searchQuery = ''; $searchArray = array(); $tablecontent = ''; if ($refresh == 'refresh') { $sort = 'DESC'; $by = 'e.modifieddate'; $perPage = 10; $pageNo = 1; $searchData = ''; } else { $sort = $this->_getParam('sort') != '' ? $this->_getParam('sort') : 'DESC'; $by = $this->_getParam('by') != '' ? $this->_getParam('by') : 'e.modifieddate'; $perPage = $this->_getParam('per_page', 10); $pageNo = $this->_getParam('page', 1); $searchData = $this->_getParam('searchData'); $searchData = rtrim($searchData, ','); /** search from grid - START **/ $searchData = $this->_getParam('searchData'); if ($searchData != '' && $searchData != 'undefined') { $searchValues = json_decode($searchData); foreach ($searchValues as $key => $val) { $searchQuery .= " " . $key . " like '%" . $val . "%' AND "; $searchArray[$key] = $val; } $searchQuery = rtrim($searchQuery, " AND"); } /** search from grid - END **/ } $objName = 'empleaves'; $tableFields = array('action' => 'Action', 'emp_leave_limit' => 'Alloted leave limit', 'used_leaves' => 'Used leaves', 'remainingleaves' => 'Leave balance', 'alloted_year' => 'Alloted year'); $tablecontent = $employeeleavesModel->getEmpLeavesData($sort, $by, $pageNo, $perPage, $searchQuery, $Uid); $dataTmp = array('userid' => $Uid, 'sort' => $sort, 'by' => $by, 'pageNo' => $pageNo, 'perPage' => $perPage, 'tablecontent' => $tablecontent, 'objectname' => $objName, 'extra' => array(), 'tableheader' => $tableFields, 'jsGridFnName' => 'getEmployeeAjaxgridData', 'jsFillFnName' => '', 'searchArray' => $searchArray, 'add' => 'add', 'menuName' => 'Employee Leaves', 'formgrid' => 'true', 'unitId' => $Uid, 'call' => $call, 'context' => 'mydetails'); array_push($data, $dataTmp); $permission = sapp_Global::_checkprivileges(EMPLOYEE, $loginuserGroup, $loginUserRole, 'edit'); $this->view->dataArray = $data; $this->view->call = $call; $this->view->id = $Uid; $this->view->messages = $this->_helper->flashMessenger->getMessages(); $this->view->employeedata = $empdata[0]; $this->view->usergroup = $loginuserGroup; $this->view->permission = $permission; } $this->view->empdata = $empdata; } } catch (Exception $e) { $this->view->rowexist = "norows"; } $this->view->usergroup = $loginuserGroup; } else { $this->_redirect('error'); } } else { $this->_redirect('error'); } }
public function viewpopupAction() { Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH . "/layouts/scripts/popup/"); $id = $this->getRequest()->getParam('id'); if ($id == '') { $id = $loginUserId; } $callval = $this->getRequest()->getParam('call'); if ($callval == 'ajaxcall') { $this->_helper->layout->disableLayout(); } $objName = 'empleaves'; $empleavesform = new Default_Form_empleaves(); $employeeleavesModal = new Default_Model_Employeeleaves(); $leavemanagementModel = new Default_Model_Leavemanagement(); $empleavesform->removeElement("submit"); $elements = $empleavesform->getElements(); if (count($elements) > 0) { foreach ($elements as $key => $element) { if ($key != "Cancel" && $key != "Edit" && $key != "Delete" && $key != "Attachments") { $element->setAttrib("disabled", "disabled"); } } } $data = $employeeleavesModal->getsingleEmpleavesrow($id); if (!empty($data)) { $leaveTypeCount = $leavemanagementModel->getEmployeeUsedLeavesName($data['user_id'], $data['alloted_year']); } if (!empty($data)) { $empleavesform->populate($data); $empleavesform->leave_limit->setValue($data['emp_leave_limit']); } $this->view->controllername = $objName; $this->view->leaveTypeCount = $leaveTypeCount; $this->view->id = $id; $this->view->form = $empleavesform; }
public function editpopupAction() { //For opening the form in pop up..... Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH . "/layouts/scripts/popup/"); $leavemanagementmodel = new Default_Model_Leavemanagement(); $employeesmodel = new Default_Model_Employees(); $empMedicalclaimsform = new Default_Form_Medicalclaims(); $empMedicalclaimsModel = new Default_Model_Medicalclaims(); $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginUserGroup = $auth->getStorage()->read()->id; } $id = $this->getRequest()->getParam('id'); //Id (PK) from form URL $user_id = $this->getRequest()->getParam('unitId'); //This is User_id taking from URL set to form... if ($user_id) { $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($user_id); $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id']; $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId); $this->view->weekendDatailsArr = $weekendDatailsArr; } $empMedicalclaimsform->removeElement('injuryindicator'); $empMedicalclaimsform->removeElement('type'); if ($id) { $data = $empMedicalclaimsModel->getmedicalclaimsdetails($id); if (!empty($data)) { $empMedicalclaimsform->setDefault("id", $data[0]["id"]); $empMedicalclaimsform->setDefault("user_id", $data[0]["user_id"]); $empMedicalclaimsform->setDefault("injuryindicator", $data[0]["injury_indicator"]); $empMedicalclaimsform->setDefault("type", $data[0]["injury_type"]); $empMedicalclaimsform->setDefault("description", $data[0]["injury_description"]); $empMedicalclaimsform->setDefault("injury_name", $data[0]["injury_name"]); $empMedicalclaimsform->setDefault("injury_severity", $data[0]["injury_severity"]); $empMedicalclaimsform->setDefault("disability_type", $data[0]["disability_type"]); $empMedicalclaimsform->setDefault("other_disability_type", $data[0]["other_disability_type"]); $empMedicalclaimsform->setDefault("insurer_name", $data[0]["medical_insurer_name"]); $empMedicalclaimsform->setDefault("gp_name", $data[0]["concerned_physician_name"]); $empMedicalclaimsform->setDefault("hospital_name", $data[0]["hospital_name"]); $empMedicalclaimsform->setDefault("hospital_addr", $data[0]["hospital_address"]); $empMedicalclaimsform->setDefault("treatment_details", $data[0]["treatment_details"]); $empMedicalclaimsform->setDefault("room_num", $data[0]["room_number"]); $empMedicalclaimsform->setDefault("total_cost", $data[0]["total_cost"]); $empMedicalclaimsform->setDefault("amount_claimed", $data[0]["amount_claimed_for"]); $empMedicalclaimsform->setDefault("amount_approved", $data[0]["amount_approved"]); $empMedicalclaimsform->setDefault("leavebyemp_days", $data[0]["leavebyemployeer_days"]); $empMedicalclaimsform->setDefault("empleave_days", $data[0]["leaveappliedbyemployee_days"]); if ($data[0]["injured_date"] != "" && $data[0]["injured_date"] != 00 - 00 - 00) { $injureddate = sapp_Global::change_date($data[0]["injured_date"], 'view'); $empMedicalclaimsform->setDefault('injured_date', $injureddate); } if ($data[0]["expected_date_join"] != "" && $data[0]["expected_date_join"] != 00 - 00 - 00) { $exp_dateofjoin = sapp_Global::change_date($data[0]["expected_date_join"], 'view'); $empMedicalclaimsform->setDefault('expected_date_join', $exp_dateofjoin); } if ($data[0]["leavebyemployeer_to_date"] != "" && $data[0]["leavebyemployeer_to_date"] != 00 - 00 - 00) { $leavebyemployeer_to_date = sapp_Global::change_date($data[0]["leavebyemployeer_to_date"], 'view'); $empMedicalclaimsform->setDefault("leavebyemp_to_date", $leavebyemployeer_to_date); } if ($data[0]["leavebyemployeer_from_date"] != "" && $data[0]["leavebyemployeer_from_date"] != 00 - 00 - 00) { $leavebyemployeer_from_date = sapp_Global::change_date($data[0]["leavebyemployeer_from_date"], 'view'); $empMedicalclaimsform->setDefault("leavebyemp_from_date", $leavebyemployeer_from_date); } if ($data[0]["leaveappliedbyemployee_to_date"] != "" && $data[0]["leaveappliedbyemployee_to_date"] != 00 - 00 - 00) { $leaveappliedbyemployeetodate = sapp_Global::change_date($data[0]["leaveappliedbyemployee_to_date"], 'view'); $empMedicalclaimsform->setDefault("empleave_to_date", $leaveappliedbyemployeetodate); } if ($data[0]["leaveappliedbyemployee_from_date"] != "" && $data[0]["leaveappliedbyemployee_from_date"] != 00 - 00 - 00) { $leaveappliedbyemployeefromdate = sapp_Global::change_date($data[0]["leaveappliedbyemployee_from_date"], 'view'); $empMedicalclaimsform->setDefault("empleave_from_date", $leaveappliedbyemployeefromdate); } $this->view->data = $data; } $this->view->id = $id; $empMedicalclaimsform->setAttrib('action', DOMAIN . 'medicalclaims/editpopup/unitId/' . $user_id); } $this->view->form = $empMedicalclaimsform; if ($this->getRequest()->getPost()) { $errorResult = $this->medicalclaimsvalidations(); if (empty($errorResult['msgarray'])) { $result = $this->save($empMedicalclaimsform, $user_id); $this->view->msgarray = $result; $this->view->fieldValues = $errorResult['fieldValues']; } else { $this->view->msgarray = $errorResult['msgarray']; $this->view->fieldValues = $errorResult['fieldValues']; } } }
public function getdepartmentsAction() { $ajaxContext = $this->_helper->getHelper('AjaxContext'); $ajaxContext->addActionContext('getdepartments', 'html')->initContext(); $businessunit_id = $this->_request->getParam('business_id'); $con = $this->_request->getParam('con'); $employeeform = new Default_Form_employee(); $leavemanagementform = new Default_Form_leavemanagement(); $flag = ''; $departmentsmodel = new Default_Model_Departments(); if ($con == 'leavemanagement') { $leavemanagementmodel = new Default_Model_Leavemanagement(); $departmentidsArr = $leavemanagementmodel->getActiveDepartmentIds(); $depatrmentidstr = ''; $newarr = array(); if (!empty($departmentidsArr)) { $where = ''; for ($i = 0; $i < sizeof($departmentidsArr); $i++) { $newarr1[] = array_push($newarr, $departmentidsArr[$i]['deptid']); } $depatrmentidstr = implode(",", $newarr); foreach ($newarr as $deparr) { $where .= " id!= {$deparr} AND "; } $where = trim($where, " AND"); $querystring = "Select d.id,d.deptname from main_departments as d where d.unitid={$businessunit_id} and d.isactive=1 and {$where} "; $uniquedepartmentids = $departmentsmodel->getUniqueDepartments($querystring); if (empty($uniquedepartmentids)) { $flag = 'true'; } $this->view->uniquedepartmentids = $uniquedepartmentids; } else { $departmentlistArr = $departmentsmodel->getDepartmentList($businessunit_id); if (empty($departmentlistArr)) { $flag = 'true'; } $this->view->departmentlistArr = $departmentlistArr; } } else { $departmentlistArr = $departmentsmodel->getDepartmentList($businessunit_id); if (empty($departmentlistArr)) { $flag = 'true'; } $this->view->departmentlistArr = $departmentlistArr; } $this->view->employeeform = $employeeform; $this->view->leavemanagementform = $leavemanagementform; $this->view->flag = $flag; if ($con != '') { $this->view->con = $con; } }
function gethalfdaydetailsAction() { $this->_helper->layout->disableLayout(); $result['result'] = ''; $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; } $employeesmodel = new Default_Model_Employees(); $leavemanagementmodel = new Default_Model_Leavemanagement(); $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId); $ishalf_day = ''; if (!empty($loggedInEmployeeDetails)) { $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id']; $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId); if (!empty($weekendDatailsArr)) { $ishalf_day = $weekendDatailsArr[0]['is_halfday']; } else { $ishalf_day = 'error'; } } $result['result'] = $ishalf_day; $this->_helper->_json($result); }
public function weekAction() { $usersModel = new Timemanagement_Model_Users(); $storage = new Zend_Auth_Storage_Session(); $now = new DateTime(); $data = $storage->read(); $selYrMon = $this->_getParam('selYrMon'); $week = $this->_getParam('week') != '' ? $this->_getParam('week') : 1; $calWeek = $this->_getParam('calWeek'); $timeFlag = $this->_getParam('flag'); $selDay = $this->_getParam('day'); if ($data->id == 1) { $this->_redirect('error'); } $selYrMon = $selYrMon != '' ? $selYrMon : $now->format('Y-m'); $yrMon = explode('-', $selYrMon); if ($timeFlag == 'time' && $selYrMon == $now->format('Y-m') && $calWeek == '') { $calWeek = strftime('%U', strtotime($selYrMon . '-' . $now->format('d'))); $startCalWeek = strftime('%U', strtotime($selYrMon . '-01')); $week = $calWeek - $startCalWeek + 1; } $empDoj = $usersModel->getEmployeeDoj($data->id); $selYrMonArray = explode('-', $selYrMon); if ($selDay != '') { $calWeek = strftime('%U', strtotime($selYrMon . '-' . $selDay)); $startCalWeek = strftime('%U', strtotime($selYrMon . '-01')); $week = $calWeek - $startCalWeek + 1; } else { if ($calWeek == '') { $calWeek = strftime('%U', strtotime($selYrMon . '-01')); } } $myTsModel = new Timemanagement_Model_MyTimesheet(); if ($timeFlag == 'time') { $myTsWeekData = $myTsModel->getWeeklyTimesheetData($data->id, $selYrMonArray[0], $selYrMonArray[1], $week); } else { $myTsWeekData = $myTsModel->getWeeklyTimesheetData($data->id, $selYrMonArray[0], $selYrMonArray[1], $week, 'view'); } $empHolidaysWeekendsData = $usersModel->getEmployeeHolidaysNWeekends($data->id, $yrMon[0], $yrMon[1], $calWeek); $startDate = date("Y-m-d", strtotime("{$yrMon[0]}-W{$calWeek}-7")); $endDate = date("Y-m-d", strtotime('next saturday', strtotime($startDate))); $empLeavesData = $usersModel->getEmpLeaves($data->id, $startDate, $endDate, 'all'); $weekNotes = $myTsModel->getWeekNotes($data->id, $selYrMonArray[0], $selYrMonArray[1], $week); $weekDaysStatus = $myTsModel->getWeekDaysStatus($data->id, $selYrMonArray[0], $selYrMonArray[1], $week); $weekDaysProjStatus = $myTsModel->getWeekDaysProjStatus($data->id, $selYrMonArray[0], $selYrMonArray[1], $week); $noOfDaysMonth = date("t", mktime(0, 0, 0, $selYrMonArray[1], 1, $selYrMonArray[0])); $cronStartDay = ""; $cronEndDay = ""; $mon = $yrMon[1] + 1; $yr = $mon == 12 ? $selYrMonArray[0] + 1 : $selYrMonArray[0]; if ($selDay != '') { $this->view->selDay = date("D", strtotime($selYrMon . '-' . $selDay)); } $this->view->empDoj = $empDoj['date_of_joining']; $this->view->selYrMon = $selYrMon; $this->view->selWeek = $week; $this->view->myTsWeekData = $myTsWeekData; $this->view->weekNotesData = $weekNotes; $this->view->empHolidaysWeekends = $empHolidaysWeekendsData[0]; $this->view->leavesData = $empLeavesData; $this->view->weekDaysStatus = $weekDaysStatus; $this->view->weekDaysProjStatus = $weekDaysProjStatus; $this->view->cronStartDay = $cronStartDay; $this->view->cronEndDay = $cronEndDay; //START code to show pending weeks for submit in current month $projmodel = new Timemanagement_Model_Projects(); $prevweeks = $projmodel->getprevmonthweeks(date('Y-m'), date('d')); /*Leave request code starts*/ $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; } $leaverequestform = new Default_Form_leaverequest(); $leaverequestform->setAttrib('action', BASE_URL . 'leaverequest'); $leaverequestmodel = new Default_Model_Leaverequest(); $employeeleavetypemodel = new Default_Model_Employeeleavetypes(); $leavemanagementmodel = new Default_Model_Leavemanagement(); $usersmodel = new Default_Model_Users(); $employeesmodel = new Default_Model_Employees(); $weekdaysmodel = new Default_Model_Weekdays(); $holidaydatesmodel = new Default_Model_Holidaydates(); $msgarray = array(); $dateofjoiningArr = array(); $holidayDateslistArr = array(); $rMngr = 'No'; $availableleaves = ''; $rep_mang_id = ''; $employeeemail = ''; $reportingManageremail = ''; $week_startday = ''; $week_endday = ''; $ishalf_day = ''; $userfullname = ''; $reportingmanagerName = ''; $businessunitid = ''; $hremailgroup = ''; /* Start Queries to fetch user details,reporting manager details and weekend details from users table and employees table */ if ($loginUserId != '' && $loginUserId != NULL) { $loggedinEmpId = $usersmodel->getUserDetailsByID($loginUserId); $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId); if (!empty($loggedInEmployeeDetails)) { if ($loggedInEmployeeDetails[0]['date_of_joining'] != '') { $date = new DateTime($loggedInEmployeeDetails[0]['date_of_joining']); $datofjoiningtimestamp = $date->getTimestamp(); $dateofjoining = explode("-", $loggedInEmployeeDetails[0]['date_of_joining']); $year = $dateofjoining[0]; $month = $dateofjoining[1]; $day = $dateofjoining[2]; $dateofjoiningArr = array('year' => $year, 'month' => $month, 'day' => $day, 'datetimestamp' => $datofjoiningtimestamp); } $reportingmanagerId = $loggedInEmployeeDetails[0]['reporting_manager']; $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id']; $employeeEmploymentStatusId = $loggedInEmployeeDetails[0]['emp_status_id']; $employeeHolidayGroupId = $loggedInEmployeeDetails[0]['holiday_group']; $reportingManagerDetails = $usersmodel->getUserDetailsByID($reportingmanagerId); $weekendDatailsArr = $leavemanagementmodel->getWeekendDetails($employeeDepartmentId); $employeeemail = $loggedinEmpId[0]['emailaddress']; $userfullname = $loggedinEmpId[0]['userfullname']; $businessunitid = $loggedInEmployeeDetails[0]['businessunit_id']; if (!empty($reportingManagerDetails)) { $leaverequestform->rep_mang_id->setValue($reportingManagerDetails[0]['userfullname']); $reportingManageremail = $reportingManagerDetails[0]['emailaddress']; $reportingmanagerName = $reportingManagerDetails[0]['userfullname']; $rep_mang_id = $reportingManagerDetails[0]['id']; $rMngr = 'Yes'; } else { $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.'; } if (!empty($weekendDatailsArr)) { $week_startday = $weekendDatailsArr[0]['weekendstartday']; $week_endday = $weekendDatailsArr[0]['weekendday']; $ishalf_day = $weekendDatailsArr[0]['is_halfday']; $isskip_holidays = $weekendDatailsArr[0]['is_skipholidays']; } else { $msgarray['from_date'] = 'Leave management options are not configured yet.'; $msgarray['to_date'] = 'Leave management options are not configured yet.'; } if ($employeeHolidayGroupId != '' && $employeeHolidayGroupId != NULL) { $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeHolidayGroupId); } if (defined('LV_HR_' . $businessunitid)) { $hremailgroup = 'hremailgroupexists'; } else { $hremailgroup = ''; } /* Search Filters */ $isReportingManagerFlag = 'false'; $searchRepFlag = 'false'; $searchMeFlag = 'true'; $filter = $this->_request->getParam('filter'); if (!empty($filter)) { if (in_array(2, $filter)) { $searchRepFlag = 'true'; } if (in_array(1, $filter)) { $searchMeFlag = 'true'; } else { $searchMeFlag = 'false'; } } if ($searchMeFlag == 'true') { $leaverequestdetails = $leaverequestmodel->getUserApprovedOrPendingLeavesData($loginUserId); } /* Start -For Checking if logged in user is reporting manager */ $isReportingManager = $employeesmodel->CheckIfReportingManager($loginUserId); if (!empty($isReportingManager) && $isReportingManager[0]['count'] > 0) { if ($searchRepFlag == 'true') { $managerrequestdetails = $leaverequestmodel->getManagerApprovedOrPendingLeavesData($loginUserId); } $isReportingManagerFlag = 'true'; } /* End */ $this->view->userfullname = $userfullname; $this->view->loggedinEmpId = $loggedinEmpId; $this->view->weekendDatailsArr = $weekendDatailsArr; $this->view->reportingManagerDetails = $reportingManagerDetails; $this->view->rMngr = $rMngr; $this->view->hremailgroup = $hremailgroup; $this->view->dateofjoiningArr = $dateofjoiningArr; $this->view->leaverequestdetails = !empty($leaverequestdetails) ? $leaverequestdetails : array(); $this->view->holidayDateslistArr = $holidayDateslistArr; $this->view->managerrequestdetails = !empty($managerrequestdetails) ? $managerrequestdetails : array(); $this->view->isReportingManagerFlag = $isReportingManagerFlag; $this->view->searchRepFlag = $searchRepFlag; $this->view->searchMeFlag = $searchMeFlag; } else { $msgarray['rep_mang_id'] = 'Reporting manager is not assigned yet. Please contact your HR.'; $msgarray['from_date'] = 'Leave management options are not configured yet.'; $msgarray['to_date'] = 'Leave management options are not configured yet.'; } } /* End */ /* Start Query to fetch and build multioption for Leavetype dropdown */ $leavetype = $employeeleavetypemodel->getactiveleavetype(); if (!empty($leavetype)) { if (sizeof($leavetype) > 0) { foreach ($leavetype as $leavetyperes) { $leaverequestform->leavetypeid->addMultiOption($leavetyperes['id'] . '!@#' . $leavetyperes['numberofdays'] . '!@#' . utf8_encode($leavetyperes['leavetype']), utf8_encode($leavetyperes['leavetype'])); } } } else { $msgarray['leavetypeid'] = ' Leave types are not configured yet.'; } $this->view->leavetype = $leavetype; /* End */ /* START Query to get the number of available leaves for the employee */ $getavailbaleleaves = $leaverequestmodel->getAvailableLeaves($loginUserId); if (!empty($getavailbaleleaves)) { $leaverequestform->no_of_days->setValue($getavailbaleleaves[0]['remainingleaves']); $availableleaves = $getavailbaleleaves[0]['remainingleaves']; } else { $msgarray['no_of_days'] = 'You have not been allotted leaves for this financial year. Please contact your HR.'; } $this->view->getavailbaleleaves = $getavailbaleleaves; /* END */ $this->view->form = $leaverequestform; $this->view->msgarray = $msgarray; $this->view->loginUserId = $loginUserId; $this->view->messages = $this->_helper->flashMessenger->getMessages(); /*leave request code ends*/ if ($timeFlag != '') { $this->_helper->viewRenderer('entertime'); } }
public function update($addEmpLeavesForm, $currentYearData, $loginUserId, $userDepartment) { if ($addEmpLeavesForm->isValid($this->_request->getPost())) { $userId = $this->getRequest()->getParam('user_id'); $emp_leave_limit = $this->_request->getParam('leave_limit'); $alloted_year = $this->_request->getParam('alloted_year'); $addemployeeleavesModel = new Default_Model_Addemployeeleaves(); $employeeleavesModel = new Default_Model_Employeeleaves(); $leavemanagementModel = new Default_Model_Leavemanagement(); $isleavetrasnferset = 0; $leavetransfercount = 0; if (!empty($userDepartment)) { $leavetransferArr = $leavemanagementModel->getWeekendDetails($userDepartment); } $prevyeardata = $employeeleavesModel->getPreviousYearEmployeeleaveData($userId); if (!empty($leavetransferArr) && $leavetransferArr[0]['is_leavetransfer'] == 1 && !empty($prevyeardata)) { $leavetransfercount = $prevyeardata[0]['remainingleaves']; $isleavetrasnferset = 1; } if (empty($currentYearData)) { $emp_leave_limit = $emp_leave_limit + $leavetransfercount; $postedArr = array('leave_limit' => $emp_leave_limit, 'alloted_year' => $alloted_year); $logID = $employeeleavesModel->saveallotedleaves($postedArr, $emp_leave_limit, $userId, $loginUserId); } else { $emp_leave_limit = $emp_leave_limit + $currentYearData[0]['emp_leave_limit']; } $Id = $employeeleavesModel->SaveorUpdateEmployeeLeaves($userId, $emp_leave_limit, $isleavetrasnferset, $loginUserId); $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Employee Leave details updated successfully.")); $this->_redirect('addemployeeleaves'); } else { $messages = $addEmpLeavesForm->getMessages(); foreach ($messages as $key => $val) { foreach ($val as $key2 => $val2) { $msgarray[$key] = $val2; break; } } $addEmpLeavesForm->alloted_year->setValue(date('Y')); return $msgarray; } }
public function getWeekend($startday, $endday, $dept_id) { $wkend_dates_arr = array(); $leavemanagementmodel = new Default_Model_Leavemanagement(); $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($dept_id); if (!empty($weekendDetailsArr)) { $weekend_arr = array($weekendDetailsArr[0]['daystartname'], $weekendDetailsArr[0]['dayendname']); $wkend_dates_arr = array(); while ($startday <= $endday) { $nday = new DateTime($startday); if (in_array($nday->format('l'), $weekend_arr)) { $wkend_dates_arr[] = $startday; } $nday->add(new DateInterval('P1D')); $startday = $nday->format('Y-m-d'); } } return $wkend_dates_arr; }
public function calculatebusinessdays($fromDate, $toDate) { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; } $noOfDays = 0; $weekDay = ''; $employeeDepartmentId = ''; $employeeGroupId = ''; $weekend1 = ''; $weekend2 = ''; $holidayDatesArr = array(); //Calculating the no of days in b/w from date & to date with out taking weekend & holidays.... $employeesmodel = new Default_Model_Employees(); $leavemanagementmodel = new Default_Model_Leavemanagement(); $holidaydatesmodel = new Default_Model_Holidaydates(); $loggedInEmployeeDetails = $employeesmodel->getLoggedInEmployeeDetails($loginUserId); if (!empty($loggedInEmployeeDetails)) { $employeeDepartmentId = $loggedInEmployeeDetails[0]['department_id']; $employeeGroupId = $loggedInEmployeeDetails[0]['holiday_group']; if ($employeeDepartmentId != '' && $employeeDepartmentId != NULL) { $weekendDetailsArr = $leavemanagementmodel->getWeekendNamesDetails($employeeDepartmentId); } if (!empty($weekendDetailsArr)) { if ($weekendDetailsArr[0]['is_skipholidays'] == 1 && isset($employeeGroupId) && $employeeGroupId != '') { $holidayDateslistArr = $holidaydatesmodel->getHolidayDatesListForGroup($employeeGroupId); if (!empty($holidayDateslistArr)) { for ($i = 0; $i < sizeof($holidayDateslistArr); $i++) { $holidayDatesArr[$i] = $holidayDateslistArr[$i]['holidaydate']; } } } $weekend1 = $weekendDetailsArr[0]['daystartname']; $weekend2 = $weekendDetailsArr[0]['dayendname']; } $fromdate_obj = new DateTime($fromDate); $weekDay = $fromdate_obj->format('l'); while ($fromDate <= $toDate) { /* if(($weekDay != 'Saturday'||$weekDay != 'Sunday') && (!empty($holidayDates)) && (!in_array($fromDate,$holidayDates))) */ if (count($holidayDatesArr) > 0) { if ($weekDay != $weekend1 && $weekDay != $weekend2 && !in_array($fromDate, $holidayDatesArr)) { $noOfDays++; } } else { if ($weekDay != $weekend1 && $weekDay != $weekend2) { $noOfDays++; } } $fromdate_obj->add(new DateInterval('P1D')); //Increment from date by one day... $fromDate = $fromdate_obj->format('Y-m-d'); $weekDay = $fromdate_obj->format('l'); } } return $noOfDays; }