diff --git a/expenses.php b/expenses.php index 2eb3980..ec29723 100644 --- a/expenses.php +++ b/expenses.php @@ -1,6 +1,7 @@ prepare($countSql); +$countStmt->execute($params); +$countResult = $countStmt->fetch(PDO::FETCH_ASSOC); +$totalExpenses = $countResult['count']; +$grandTotalAmount = $countResult['total_amount'] ?? 0; + +$pagination = getPagination($page, $totalExpenses, $perPage); + +// Fetch Items $sql = "SELECT e.*, c.name as category_name, u.username as created_by_name FROM expenses e LEFT JOIN expense_categories c ON e.category_id = c.id LEFT JOIN users u ON e.user_id = u.id - WHERE e.date BETWEEN ? AND ?"; -$params = [$date_from, $date_to]; + WHERE $whereClause + ORDER BY e.date DESC, e.id DESC + LIMIT ? OFFSET ?"; -if ($category_filter) { - $sql .= " AND e.category_id = ?"; - $params[] = $category_filter; -} -if ($search) { - $sql .= " AND (e.description LIKE ? OR e.vendor LIKE ? OR e.reference LIKE ?)"; - $params[] = "%$search%"; - $params[] = "%$search%"; - $params[] = "%$search%"; -} - -$sql .= " ORDER BY e.date DESC, e.id DESC"; +// Add LIMIT/OFFSET to params +$params[] = $pagination['limit']; +$params[] = $pagination['offset']; $stmt = db()->prepare($sql); -$stmt->execute($params); +foreach ($params as $k => $v) { + $type = is_int($v) ? PDO::PARAM_INT : PDO::PARAM_STR; + $stmt->bindValue($k + 1, $v, $type); +} +$stmt->execute(); $expenses = $stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch Categories for Dropdown @@ -299,9 +328,16 @@ if (isset($_SESSION['success'])) { - - الإجمالي: - + + + إجمالي الصفحة: + + + + + + الإجمالي الكلي (للبحث الحالي): + @@ -309,6 +345,9 @@ if (isset($_SESSION['success'])) { + diff --git a/hr_employees.php b/hr_employees.php index f26ed66..342a605 100644 --- a/hr_employees.php +++ b/hr_employees.php @@ -1,5 +1,6 @@ query("SELECT * FROM hr_departments ORDER BY name")->fetchAll(); +// Pagination +$page = $_GET['page'] ?? 1; +$perPage = 10; +$totalEmployees = db()->query("SELECT COUNT(*) FROM hr_employees")->fetchColumn(); +$pagination = getPagination($page, $totalEmployees, $perPage); + ?>
@@ -224,7 +231,7 @@ $departments = db()->query("SELECT * FROM hr_departments ORDER BY name")->fetchA
-
+
@@ -240,8 +247,16 @@ $departments = db()->query("SELECT * FROM hr_departments ORDER BY name")->fetchA query($sql); + $sql = "SELECT e.*, d.name as dept_name + FROM hr_employees e + LEFT JOIN hr_departments d ON e.department_id = d.id + ORDER BY e.first_name + LIMIT ? OFFSET ?"; + $stmt = db()->prepare($sql); + $stmt->bindValue(1, $pagination['limit'], PDO::PARAM_INT); + $stmt->bindValue(2, $pagination['offset'], PDO::PARAM_INT); + $stmt->execute(); + while ($row = $stmt->fetch()): ?> @@ -307,6 +322,9 @@ $departments = db()->query("SELECT * FROM hr_departments ORDER BY name")->fetchA
+