added categories to assetmanagement

This commit is contained in:
Luca Haid
2026-01-19 06:51:56 +01:00
parent 15afb237e1
commit bd0a332aa1
4 changed files with 91 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ class AssetManagementModel extends TTCrudBaseModel {
public int $id;
public string $name;
public ?string $description;
public ?string $category;
public ?int $mainImageId; // Renamed from imageId
public ?string $imageIds; // Changed to JSON (will be a string in PHP)
public string $assetNumber;
@@ -35,8 +36,7 @@ class AssetManagementModel extends TTCrudBaseModel {
foreach ($searchTerms as $term) {
if (empty(trim($term))) continue;
$escapedTerm = $db->real_escape_string($term);
// For each term, search in name, assetNumber, and description.
$searchConditions[] = "(`name` LIKE '%$escapedTerm%' OR `assetNumber` LIKE '%$escapedTerm%' OR `description` LIKE '%$escapedTerm%')";
$searchConditions[] = "(`name` LIKE '%$escapedTerm%' OR `assetNumber` LIKE '%$escapedTerm%' OR `description` LIKE '%$escapedTerm%' OR `category` LIKE '%$escapedTerm%')";
}
if (!empty($searchConditions)) {
@@ -99,8 +99,8 @@ class AssetManagementModel extends TTCrudBaseModel {
foreach ($searchTerms as $term) {
if (empty(trim($term))) continue;
$escapedTerm = $db->real_escape_string($term);
// For each term, search in name, assetNumber, and description.
$searchConditions[] = "(`name` LIKE '%$escapedTerm%' OR `assetNumber` LIKE '%$escapedTerm%' OR `description` LIKE '%$escapedTerm%')";
// For each term, search in name, assetNumber, description, and category.
$searchConditions[] = "(`name` LIKE '%$escapedTerm%' OR `assetNumber` LIKE '%$escapedTerm%' OR `description` LIKE '%$escapedTerm%' OR `category` LIKE '%$escapedTerm%')";
}
if (!empty($searchConditions)) {
@@ -128,4 +128,26 @@ class AssetManagementModel extends TTCrudBaseModel {
return $result->fetch_assoc()['count'];
}
public static function getDistinctCategories(string $searchTerm = ''): array {
$db = self::getDB();
$table = self::getFullyQualifiedTable();
$sql = "SELECT DISTINCT `category` FROM $table WHERE `category` IS NOT NULL AND `category` != ''";
if (!empty($searchTerm)) {
$escapedTerm = $db->real_escape_string($searchTerm);
$sql .= " AND `category` LIKE '%$escapedTerm%'";
}
$sql .= " ORDER BY `category` ASC LIMIT 20";
$result = $db->query($sql);
$categories = [];
while ($row = $result->fetch_assoc()) {
$categories[] = $row['category'];
}
return $categories;
}
}