public function leavemanagementreportAction() { $reportsmodel = new Default_Model_Reports(); $departmentsmodel = new Default_Model_Departments(); $monthslistmodel = new Default_Model_Monthslist(); $weekdaysmodel = new Default_Model_Weekdays(); $leavemanagementform = new Default_Form_leavemanagementreport(); $msgarray = array(); $selectColumns = array(); $searchQuery = ''; $department = $this->_request->getParam('department_id'); $cal_startmonth = $this->_request->getParam('cal_startmonth'); $weekend_startday = $this->_request->getParam('weekend_startday'); $weekend_endday = $this->_request->getParam('weekend_endday'); $pageno = $this->_request->getParam('pageno', 1); $perpage = intval($this->_request->getParam('perpage', PERPAGE)); if ($perpage == 0) { $perpage = PERPAGE; } $by = $this->_request->getParam('by', 'Desc'); $sortby = $this->_request->getParam('sortby', 'l.modifieddate'); $columnby = $this->_request->getParam('columnby'); $columnsortby = $this->_request->getParam('columnsortby'); $checkedheaders = $this->_request->getParam('checkedheaders'); $generatereport = $this->_request->getParam('generatereport'); if ($checkedheaders != '') { $selectColumns = explode(',', $checkedheaders); } if ($columnby != '') { $by = $columnby; } if ($columnsortby != '') { $sortby = $columnsortby; } if ($department != '') { $searchQuery .= 'l.department_id = "' . $department . '" AND '; } if ($cal_startmonth != '') { $searchQuery .= 'l.cal_startmonth = ' . $cal_startmonth . ' AND '; } if ($weekend_startday != '') { $searchQuery .= 'l.weekend_startday = ' . $weekend_startday . ' AND '; } if ($weekend_endday != '') { $searchQuery .= 'l.weekend_endday = ' . $weekend_endday . ' AND '; } $searchQuery = rtrim($searchQuery, " AND"); $leavemgmtArr = $reportsmodel->getLeaveManagementSummary($sortby, $by, $pageno, $perpage, $searchQuery); $leavemgmtCount = $reportsmodel->getLeaveManagementCount($searchQuery); $departmentlistArr = $departmentsmodel->getDepartmentWithCodeList(); if (!empty($departmentlistArr)) { foreach ($departmentlistArr as $departmentlistres) { $leavemanagementform->department_id->addMultiOption($departmentlistres['id'], utf8_encode($departmentlistres['unitcode'] . $departmentlistres['deptname'])); } } else { $msgarray['department_id'] = 'Departments are not added yet.'; } $monthslistdata = $monthslistmodel->getMonthlistData(); if (sizeof($monthslistdata) > 0) { foreach ($monthslistdata as $monthslistres) { $leavemanagementform->cal_startmonth->addMultiOption($monthslistres['month_id'], utf8_encode($monthslistres['month_name'])); } } else { $msgarray['cal_startmonth'] = 'Months list is not configured yet.'; } $weekdaysdata = $weekdaysmodel->getWeeklistData(); if (sizeof($weekdaysdata) > 0) { foreach ($weekdaysdata as $weekdaysres) { $leavemanagementform->weekend_startday->addMultiOption($weekdaysres['day_id'], utf8_encode($weekdaysres['day_name'])); $leavemanagementform->weekend_endday->addMultiOption($weekdaysres['day_id'], utf8_encode($weekdaysres['day_name'])); } } else { $msgarray['weekend_startday'] = 'Weekdays are not configured yet.'; $msgarray['weekend_endday'] = 'Weekdays are not configured yet.'; } if ($leavemgmtCount[0]['count'] > 0) { $totalcount = $leavemgmtCount[0]['count']; $lastpage = ceil($totalcount / $perpage); } else { $totalcount = ''; $lastpage = ''; } $selectColumnLabels = array(); $leavesheaderarr = array('cal_startmonthname' => 'Start Month', 'weekend_startday' => 'Week-end 1', 'weekend_endday' => 'Week-end 2', 'department_name' => 'Department', 'hours_day' => 'Hours', 'is_halfday' => 'Halfday', 'is_leavetransfer' => 'Leave Transferable', 'is_skipholidays' => 'Skip Holidays'); if (empty($selectColumns)) { $selectColumns = array('cal_startmonthname', 'weekend_startday', 'weekend_endday', 'department_name', 'hours_day', 'is_halfday', 'is_leavetransfer', 'is_skipholidays'); $selectColumnLabels = $leavesheaderarr; } else { foreach ($leavesheaderarr as $key => $val) { foreach ($selectColumns as $column) { if ($column == $key) { $selectColumnLabels[$key] = $val; } } } } $this->view->selectColumnLabels = $selectColumnLabels; $this->view->leavesheaderarr = $leavesheaderarr; $this->view->leavemgmtArr = $leavemgmtArr; $this->view->totalCount = $totalcount; $this->view->pageno = $pageno; $this->view->perpage = $perpage; $this->view->by = $by; $this->view->sortby = $sortby; $this->view->totalcount = $totalcount; $this->view->lastpage = $lastpage; $this->view->msgarray = $msgarray; $this->view->form = $leavemanagementform; }