diff --git a/application/AssetManagement/AssetManagementController.php b/application/AssetManagement/AssetManagementController.php index 56d7c8a13..b51e86be2 100644 --- a/application/AssetManagement/AssetManagementController.php +++ b/application/AssetManagement/AssetManagementController.php @@ -119,12 +119,7 @@ class AssetManagementController extends TTCrud // Check for conflicting reservations if not forced if (empty($post['force'])) { - $now = time(); - $conflictingReservations = AssetManagementReservationModel::dbSelect(" - SELECT * FROM AssetManagementReservation - WHERE assetId = {$post['assetId']} AND startDate <= $now AND (endDate IS NULL OR endDate >= $now) - "); - + $conflictingReservations = AssetManagementReservationModel::getConflictingReservations($post['assetId']); if (!empty($conflictingReservations)) { $res = $conflictingReservations[0]; $user = UserModel::getOne($res->userId); diff --git a/application/AssetManagementReservation/AssetManagementReservationModel.php b/application/AssetManagementReservation/AssetManagementReservationModel.php index 3303d9083..af1d36cac 100644 --- a/application/AssetManagementReservation/AssetManagementReservationModel.php +++ b/application/AssetManagementReservation/AssetManagementReservationModel.php @@ -9,4 +9,22 @@ class AssetManagementReservationModel extends TTCrudBaseModel { public ?string $notes; public int $createBy; public int $create; + + public static function getConflictingReservations($assetId): array + { + $db = self::getDB(); + $table = self::getFullyQualifiedTable(); + $now = time(); + + $sql = "SELECT * FROM $table + WHERE assetId = $assetId AND startDate <= $now AND (endDate IS NULL OR endDate >= $now) + "; + + $result = $db->query($sql); + $reservations = []; + while ($row = $result->fetch_assoc()) { + $reservations[] = new self($row); + } + return $reservations; + } } diff --git a/public/js/pages/AssetManagement/AssetManagement.js b/public/js/pages/AssetManagement/AssetManagement.js index 5bd6768d5..f6f4b50cb 100644 --- a/public/js/pages/AssetManagement/AssetManagement.js +++ b/public/js/pages/AssetManagement/AssetManagement.js @@ -152,6 +152,12 @@ Vue.component('asset-borrow-return-widget', {