query("SELECT DISTINCT category FROM inventory_items ORDER BY category")->fetchAll(PDO::FETCH_COLUMN); $statuses = $pdo->query("SELECT DISTINCT asset_status FROM inventory_items ORDER BY asset_status")->fetchAll(PDO::FETCH_COLUMN); $locations = $pdo->query("SELECT DISTINCT location_city FROM inventory_items ORDER BY location_city")->fetchAll(PDO::FETCH_COLUMN); // Base query $sql = "SELECT id, item_name, item_code, category, asset_status, location_city, acquisition_price, acquisition_date FROM inventory_items"; $params = []; $where_clauses = []; // Search $search = $_GET['search'] ?? ''; if ($search) { $search_term = "%{$search}%"; $where_clauses[] = "(item_name LIKE :search OR item_code LIKE :search OR po_number LIKE :search OR item_user_name LIKE :search OR user_department LIKE :search OR location_city LIKE :search OR company_origin LIKE :search)"; $params[':search'] = $search_term; } // Filters $filter_category = $_GET['category'] ?? ''; if ($filter_category) { $where_clauses[] = "category = :category"; $params[':category'] = $filter_category; } $filter_status = $_GET['status'] ?? ''; if ($filter_status) { $where_clauses[] = "asset_status = :status"; $params[':status'] = $filter_status; } $filter_location = $_GET['location'] ?? ''; if ($filter_location) { $where_clauses[] = "location_city = :location"; $params[':location'] = $filter_location; } if (!empty($where_clauses)) { $sql .= " WHERE " . implode(' AND ', $where_clauses); } // Sorting $sort_columns = ['item_name', 'item_code', 'category', 'asset_status', 'location_city', 'acquisition_price', 'acquisition_date']; $sort_column = $_GET['sort'] ?? 'acquisition_date'; $sort_direction = $_GET['dir'] ?? 'desc'; if (!in_array($sort_column, $sort_columns)) { $sort_column = 'acquisition_date'; } $sort_direction = strtolower($sort_direction) === 'asc' ? 'asc' : 'desc'; $sql .= " ORDER BY `$sort_column` $sort_direction"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $items = $stmt->fetchAll(); function get_sort_link($column, $current_sort, $current_dir) { $dir = ($current_sort === $column && $current_dir === 'asc') ? 'desc' : 'asc'; $query_params = http_build_query(array_merge($_GET, ['sort' => $column, 'dir' => $dir])); return '?' . $query_params; } ?>
| Item Name | Item Code | Category | Status | Location | Price | Acquisition Date | Actions |
|---|---|---|---|---|---|---|---|
| No inventory items found matching your criteria. | |||||||
| = htmlspecialchars($item['item_name']) ?> | = htmlspecialchars($item['item_code']) ?> | = htmlspecialchars($item['category']) ?> | = htmlspecialchars($item['asset_status']) ?> | = htmlspecialchars($item['location_city']) ?> | $= number_format($item['acquisition_price'], 2) ?> | = htmlspecialchars($item['acquisition_date']) ?> | Edit |