Files
thetool/application/AssetManagementJournal/AssetManagementJournalModel.php
2025-06-27 10:48:32 +02:00

38 lines
1.1 KiB
PHP

<?php
class AssetManagementJournalModel extends TTCrudBaseModel {
public int $id;
public int $assetId;
public int $userId;
public string $site;
public int $borrowDate;
public ?int $expectedReturnDate;
public ?int $returnDate;
public ?string $borrowReason;
public ?string $returnReason;
public int $createBy;
public int $create;
// Get the latest open journal entry for each asset
public static function getLatestOpenEntries($assetIds): array {
$db = self::getDB();
$table = self::getFullyQualifiedTable();
$assetIdString = implode(',', array_map('intval', (array)$assetIds));
$sql = "
SELECT j.*
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY assetId ORDER BY borrowDate DESC, id DESC) as rn
FROM AssetManagementJournal
WHERE assetId IN ($assetIdString)
) j
WHERE j.rn = 1";
$result = $db->query($sql);
$entries = [];
while ($row = $result->fetch_assoc()) {
$entries[] = new self($row);
}
return $entries;
}
}