From 51ce570eb3b7c5ba714bdaa6e1f6edd505fc85be Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 18 Sep 2025 11:01:40 -0700 Subject: [PATCH] attempt to sort chronologically, can not resort still --- app/Http/Controllers/ReportsController.php | 3 ++- app/Models/Checkoutable.php | 11 +++++---- .../views/partials/bootstrap-table.blade.php | 11 +++++++++ .../views/reports/unaccepted_assets.blade.php | 24 ++++++++++--------- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 5a350a0b9f..946e810b8a 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -1127,7 +1127,8 @@ class ReportsController extends Controller 'assignedTo' => function($query){ $query->withTrashed(); } - ]); + ])->orderByDesc('checkout_acceptances.created_at'); + if ($showDeleted) { $query->withTrashed(); diff --git a/app/Models/Checkoutable.php b/app/Models/Checkoutable.php index 5c18a028aa..1648b5cae7 100644 --- a/app/Models/Checkoutable.php +++ b/app/Models/Checkoutable.php @@ -9,7 +9,6 @@ class Checkoutable { public function __construct( public int $acceptance_id, - public string $created_at, public string $company, public string $category, public string $model, @@ -17,6 +16,7 @@ class Checkoutable public string $name, public string $type, public object $acceptance, + public object $assignee, ){} // public static function fromCheckoutable(Asset|Accessory|etc..) @@ -29,10 +29,12 @@ class Checkoutable $unaccepted_row = $unaccepted->checkoutable; $acceptance = $unaccepted; + $assignee = $acceptance->assignedTo; $company = optional($unaccepted_row->company)->name ?? ''; $category = $model = $name = $tag = ''; $type = $acceptance->checkoutable_item_type ?? ''; + if($unaccepted_row instanceof Asset){ $category = optional($unaccepted_row->model?->category?->present())->nameUrl() ?? ''; $model = optional($unaccepted_row->present())->modelUrl() ?? ''; @@ -43,24 +45,22 @@ class Checkoutable $category = optional($unaccepted_row->category?->present())->nameUrl() ?? ''; $model = $unaccepted_row->model_number ?? ''; $name = optional($unaccepted_row->present())->nameUrl() ?? ''; - $tag = ''; } if($unaccepted_row instanceof LicenseSeat){ $category = ''; $model = ''; $name = $unaccepted_row->license->name ?? ''; - $tag = ''; } if($unaccepted_row instanceof Component){ $category = optional($unaccepted_row->category?->present())->nameUrl() ?? ''; $model = $unaccepted_row->model_number ?? ''; $name = $unaccepted_row->present()->nameUrl() ?? ''; - $tag = ''; } + $created = $acceptance->created_at; + return new self( acceptance_id: $acceptance->id, - created_at: Helper::getFormattedDateObject($acceptance->created_at, 'datetime', false), company: $company, category: $category, model: $model, @@ -68,6 +68,7 @@ class Checkoutable name: $name, type: $type, acceptance: $acceptance, + assignee: $assignee, ); } } diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index 8ebbc9fb16..687927719c 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -870,6 +870,17 @@ return value.formatted; } } + function createdAtSorter(a, b, rowA, rowB) { + const CREATED_AT_COL_INDEX = 0; + const ts = row => Number(row?._$el?.find('td').eq(CREATED_AT_COL_INDEX).attr('data-timestamp') || 0); + return ts(rowA) - ts(rowB); + } + + function createdAtSorter(a, b, rowA, rowB) { + const ts = row => + Number(row?._$el?.find('td').eq(CREATED_AT_COL_INDEX).attr('data-timestamp') || 0); + return ts(rowA) - ts(rowB); + } function iconFormatter(value) { if (value) { diff --git a/resources/views/reports/unaccepted_assets.blade.php b/resources/views/reports/unaccepted_assets.blade.php index ccffb10cf3..01081ce5aa 100644 --- a/resources/views/reports/unaccepted_assets.blade.php +++ b/resources/views/reports/unaccepted_assets.blade.php @@ -48,7 +48,13 @@ }'> - {{ trans('general.date') }} + + {{ trans('general.date') }} + {{ trans('general.type') }} {{ trans('admin/companies/table.title') }} {{ trans('general.category') }} @@ -63,8 +69,8 @@ @if ($itemsForReport) @foreach ($itemsForReport as $item) acceptance->trashed()) style="text-decoration: line-through" @endif> - {{-- Created date (already formatted) --}} - + {{-- Created date --}} + {{ Helper::getFormattedDateObject($item->acceptance->created_at, 'datetime', false) }} {{-- Item Type --}} @@ -85,13 +91,9 @@ {{ $item->asset_tag }} {{-- Assigned To (with soft-delete strike if needed) --}} - @php - $assignee = $item->acceptance->assignedTo; - $assigneeStruck = !$assignee || (method_exists($assignee, 'trashed') && $assignee->trashed()); - @endphp - - {!! $assignee - ? optional($assignee->present())->nameUrl() ?? e($assignee->name) + assignee || (method_exists($item->assignee, 'trashed') && $item->assignee->trashed())) style="text-decoration: line-through" @endif> + {!! $item->assignee + ? optional($item->assignee->present())->nameUrl() ?? e($item->assignee->name) : trans('admin/reports/general.deleted_user') !!} @@ -102,7 +104,7 @@
@csrf - @if ($assignee && $assignee->email) + @if ($item->assignee && $item->assignee->email)