38 lines
1.1 KiB
PHP
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;
|
|
}
|
|
|
|
} |