add checkoutable class, rework blade for unaccepted items
This commit is contained in:
@@ -5,10 +5,14 @@ namespace App\Http\Controllers;
|
||||
use App\Helpers\Helper;
|
||||
use App\Mail\CheckoutAssetMail;
|
||||
use App\Models\Accessory;
|
||||
use App\Models\AccessoryCheckout;
|
||||
use App\Models\Actionlog;
|
||||
use App\Models\Asset;
|
||||
use App\Models\AssetModel;
|
||||
use App\Models\Category;
|
||||
use App\Models\Checkoutable;
|
||||
use App\Models\Component;
|
||||
use App\Models\LicenseSeat;
|
||||
use App\Models\Maintenance;
|
||||
use App\Models\CheckoutAcceptance;
|
||||
use App\Models\Company;
|
||||
@@ -1111,14 +1115,14 @@ class ReportsController extends Controller
|
||||
$showDeleted = $deleted == 'deleted';
|
||||
|
||||
$query = CheckoutAcceptance::pending()
|
||||
->where('checkoutable_type', 'App\Models\Asset')
|
||||
->with([
|
||||
'checkoutable' => function (MorphTo $query) {
|
||||
$query->morphWith([
|
||||
AssetModel::class => ['model'],
|
||||
Company::class => ['company'],
|
||||
Asset::class => ['assignedTo'],
|
||||
])->with('model.category');
|
||||
Asset::class => ['model.category', 'assignedTo', 'company'],
|
||||
Accessory::class => ['category','checkouts', 'company'],
|
||||
LicenseSeat::class => ['user', 'license'],
|
||||
Component::class => ['assignedTo', 'company'],
|
||||
]);
|
||||
},
|
||||
'assignedTo' => function($query){
|
||||
$query->withTrashed();
|
||||
@@ -1129,15 +1133,20 @@ class ReportsController extends Controller
|
||||
$query->withTrashed();
|
||||
}
|
||||
|
||||
$assetsForReport = $query->get()
|
||||
->map(function ($acceptance) {
|
||||
return [
|
||||
'assetItem' => $acceptance->checkoutable,
|
||||
'acceptance' => $acceptance,
|
||||
];
|
||||
});
|
||||
// $assetsForReport = $query->get()
|
||||
// ->map(function ($acceptance) {
|
||||
// return [
|
||||
// 'assetItem' => $acceptance->checkoutable,
|
||||
// 'acceptance' => $acceptance,
|
||||
// ];
|
||||
// });
|
||||
// dd($assetsForReport);
|
||||
// $assetsForReport = $query->get()->map(function ($unaccepted) {})
|
||||
$itemsForReport = $query->get()->map(fn ($unaccepted) => Checkoutable::fromAcceptance($unaccepted));
|
||||
|
||||
return view('reports/unaccepted_assets', compact('assetsForReport','showDeleted' ));
|
||||
|
||||
|
||||
return view('reports/unaccepted_assets', compact('itemsForReport','showDeleted' ));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
<thead>
|
||||
<tr role="row">
|
||||
<th class="col-sm-1" data-searchable="false" data-field="created_at" data-sortable="true">{{ trans('general.date') }}</th>
|
||||
<th class="col-sm-1" data-sortable="true" >{{ trans('general.type') }}</th>
|
||||
<th class="col-sm-1" data-sortable="true" >{{ trans('admin/companies/table.title') }}</th>
|
||||
<th class="col-sm-1" data-sortable="true" >{{ trans('general.category') }}</th>
|
||||
<th class="col-sm-1" data-sortable="true" >{{ trans('admin/hardware/form.model') }}</th>
|
||||
@@ -59,43 +60,74 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if ($assetsForReport)
|
||||
@foreach ($assetsForReport as $item)
|
||||
@if ($item['assetItem'])
|
||||
<tr @if($item['acceptance']->trashed()) style="text-decoration: line-through" @endif>
|
||||
<td>{{ Helper::getFormattedDateObject($item['acceptance']->created_at, 'datetime', false) }}</td>
|
||||
<td>{{ ($item['assetItem']->company) ? $item['assetItem']->company->name : '' }}</td>
|
||||
<td>{!! $item['assetItem']->model->category->present()->nameUrl() !!}</td>
|
||||
<td>{!! $item['assetItem']->present()->modelUrl() !!}</td>
|
||||
<td>{!! $item['assetItem']->present()->nameUrl() !!}</td>
|
||||
<td>{{ $item['assetItem']->asset_tag }}</td>
|
||||
<td @if($item['acceptance']->assignedTo === null || $item['acceptance']->assignedTo->trashed()) style="text-decoration: line-through" @endif>{!! ($item['acceptance']->assignedTo) ? $item['acceptance']->assignedTo->present()->nameUrl() : trans('admin/reports/general.deleted_user') !!}</td>
|
||||
<td class="white-space: nowrap;">
|
||||
<nobr>
|
||||
@if(!$item['acceptance']->trashed())
|
||||
<form method="post" class="white-space: nowrap;" action="{{ route('reports/unaccepted_assets_sent_reminder') }}">
|
||||
@if (($item['acceptance']->assignedTo) && ($item['acceptance']->assignedTo->email))
|
||||
@csrf
|
||||
<input type="hidden" name="acceptance_id" value="{{ $item['acceptance']->id }}">
|
||||
<button class="btn btn-sm btn-warning" data-tooltip="true" data-title="{{ trans('admin/reports/general.send_reminder') }}">
|
||||
<i class="fa fa-repeat" aria-hidden="true"></i>
|
||||
</button>
|
||||
@else
|
||||
<span data-tooltip="true" data-title="{{ trans('admin/reports/general.cannot_send_reminder') }}">
|
||||
<a class="btn btn-sm btn-warning disabled" href="#">
|
||||
<i class="fa fa-repeat" aria-hidden="true"></i>
|
||||
</a>
|
||||
</span>
|
||||
@endif
|
||||
<a href="{{ route('reports/unaccepted_assets_delete', ['acceptanceId' => $item['acceptance']->id]) }}" class="btn btn-sm btn-danger delete-asset" data-tooltip="true" data-toggle="modal" data-content="{{ trans('general.delete_confirm', ['item' =>trans('admin/reports/general.acceptance_request')]) }}" data-title="{{ trans('general.delete') }}" onClick="return false;"><i class="fa fa-trash"></i></a>
|
||||
</form>
|
||||
@endif
|
||||
@if ($itemsForReport)
|
||||
@foreach ($itemsForReport as $item)
|
||||
<tr @if($item->acceptance->trashed()) style="text-decoration: line-through" @endif>
|
||||
{{-- Created date (already formatted) --}}
|
||||
<td data-order="{{ $item->acceptance->created_at->getTimestamp() }}">
|
||||
{{ Helper::getFormattedDateObject($item->acceptance->created_at, 'datetime', false) }}
|
||||
</td>
|
||||
{{-- Item Type --}}
|
||||
<td>{{ $item->type }}</td>
|
||||
{{-- Company name --}}
|
||||
<td>{{ $item->company }}</td>
|
||||
|
||||
</nobr>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
{{-- Category --}}
|
||||
<td>{!! $item->category !!}</td>
|
||||
|
||||
{{-- Model --}}
|
||||
<td>{!! $item->model !!}</td>
|
||||
|
||||
{{-- Name --}}
|
||||
<td>{!! $item->name !!}</td>
|
||||
|
||||
{{-- Asset tag or blank --}}
|
||||
<td>{{ $item->asset_tag }}</td>
|
||||
|
||||
{{-- Assigned To (with soft-delete strike if needed) --}}
|
||||
@php
|
||||
$assignee = $item->acceptance->assignedTo;
|
||||
$assigneeStruck = !$assignee || (method_exists($assignee, 'trashed') && $assignee->trashed());
|
||||
@endphp
|
||||
<td @if($assigneeStruck) style="text-decoration: line-through" @endif>
|
||||
{!! $assignee
|
||||
? optional($assignee->present())->nameUrl() ?? e($assignee->name)
|
||||
: trans('admin/reports/general.deleted_user') !!}
|
||||
</td>
|
||||
|
||||
{{-- Actions: send reminder / delete --}}
|
||||
<td class="white-space: nowrap;">
|
||||
<nobr>
|
||||
@unless($item->acceptance->trashed())
|
||||
<form method="post" class="white-space: nowrap;" action="{{ route('reports/unaccepted_assets_sent_reminder') }}">
|
||||
@csrf
|
||||
<input type="hidden" name="acceptance_id" value="{{ $item->acceptance_id }}">
|
||||
@if ($assignee && $assignee->email)
|
||||
<button class="btn btn-sm btn-warning" data-tooltip="true" data-title="{{ trans('admin/reports/general.send_reminder') }}">
|
||||
<i class="fa fa-repeat" aria-hidden="true"></i>
|
||||
</button>
|
||||
@else
|
||||
<span data-tooltip="true" data-title="{{ trans('admin/reports/general.cannot_send_reminder') }}">
|
||||
<a class="btn btn-sm btn-warning disabled" href="#">
|
||||
<i class="fa fa-repeat" aria-hidden="true"></i>
|
||||
</a>
|
||||
</span>
|
||||
@endif
|
||||
<a href="{{ route('reports/unaccepted_assets_delete', ['acceptanceId' => $item->acceptance_id]) }}"
|
||||
class="btn btn-sm btn-danger delete-asset"
|
||||
data-tooltip="true"
|
||||
data-toggle="modal"
|
||||
data-content="{{ trans('general.delete_confirm', ['item' => trans('admin/reports/general.acceptance_request')]) }}"
|
||||
data-title="{{ trans('general.delete') }}"
|
||||
onClick="return false;">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
</form>
|
||||
@endunless
|
||||
</nobr>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
</tbody>
|
||||
<tfoot>
|
||||
|
||||
Reference in New Issue
Block a user