prepare("UPDATE sales_orders SET status = 'completed' WHERE id = ?")->execute([$id]); } catch(Throwable $e) {} $redirect = $_GET["redirect"] ?? "sales.php"; header("Location: " . $redirect); exit; } $dbError = null; $sales = []; $totalPages = 1; $page = max(1, (int)($_GET['p'] ?? 1)); $limit = 10; $offset = ($page - 1) * $limit; try { ensure_sales_table(); $params = []; $where = ' WHERE 1=1 '; if ($mode) { $where .= ' AND sale_mode = :sale_mode '; $params[':sale_mode'] = $mode; } if ($branch) { $where .= ' AND branch_code = :branch_code '; $params[':branch_code'] = $branch; } if ($user && $user['role'] !== 'owner') { $where .= ' AND branch_code = :viewer_branch '; $params[':viewer_branch'] = $user['branch_code']; } if ($search) { $where .= ' AND (receipt_no LIKE :search OR cashier_name LIKE :search OR customer_name LIKE :search)'; $params[':search'] = "%$search%"; } if ($statusFilter === 'order') { $where .= " AND status = 'order' "; } elseif ($statusFilter === 'completed') { $where .= " AND status = 'completed' "; } // Pagination counts $countSql = 'SELECT COUNT(*) FROM sales_orders' . $where; $countStmt = db()->prepare($countSql); foreach ($params as $key => $value) { $countStmt->bindValue($key, $value); } $countStmt->execute(); $total = $countStmt->fetchColumn(); $totalPages = max(1, ceil($total / $limit)); // Fetch Data $sql = 'SELECT * FROM sales_orders' . $where . ' ORDER BY sale_date DESC LIMIT :limit OFFSET :offset'; $stmt = db()->prepare($sql); foreach ($params as $key => $value) { $stmt->bindValue($key, $value); } $stmt->bindValue(':limit', $limit, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $sales = $stmt->fetchAll(); } catch (Throwable $e) { $dbError = $e->getMessage(); } require __DIR__ . '/includes/header.php'; ?>

POS

POS
1): ?>