From ed99532c30eedb8fec21fd09e8a7900e55a0f01f Mon Sep 17 00:00:00 2001 From: Dampfklon Date: Mon, 3 May 2021 21:06:12 +0200 Subject: [PATCH 1/6] Unaccepted Assets Report Actions (send reminder, delete) added Unaccepted Assets Export fixed --- app/Http/Controllers/ReportsController.php | 97 ++++++++++++++++++- resources/lang/en/admin/reports/general.php | 11 +++ resources/lang/en/general.php | 1 + .../views/reports/unaccepted_assets.blade.php | 21 ++-- routes/web.php | 8 ++ 5 files changed, 127 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index fac4699bb..5e3856be3 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -12,8 +12,10 @@ use App\Models\CustomField; use App\Models\Depreciation; use App\Models\License; use App\Models\Setting; +use App\Notifications\CheckoutAssetNotification; use Carbon\Carbon; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\View; use Input; @@ -904,6 +906,7 @@ class ReportsController extends Controller * getAssetAcceptanceReport * * @return mixed + * @throws \Illuminate\Auth\Access\AuthorizationException * @author Vincent Sposato * @version v1.0 */ @@ -914,19 +917,87 @@ class ReportsController extends Controller /** * Get all assets with pending checkout acceptances */ +<<<<<<< HEAD $acceptances = CheckoutAcceptance::pending()->get(); +======= + $acceptances = CheckoutAcceptance::pending()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); +>>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added $assetsForReport = $acceptances ->filter(function ($acceptance) { return $acceptance->checkoutable_type == \App\Models\Asset::class; }) +<<<<<<< HEAD ->map(function ($acceptance) { return $acceptance->checkoutable; +======= + ->map(function($acceptance) { + return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance]; +>>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added }); return view('reports/unaccepted_assets', compact('assetsForReport')); } + /** + * sentAssetAcceptanceReminder + * + * @param integer|null $acceptanceId + * @return \Illuminate\Http\RedirectResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @version v1.0 + */ + public function sentAssetAcceptanceReminder($acceptanceId = null) + { + $this->authorize('reports.view'); + + if (!$acceptance = CheckoutAcceptance::pending()->find($acceptanceId)) { + // Redirect to the unaccepted assets report page with error + return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.bad_data')); + } + $assetItem = $acceptance->checkoutable; + + $logItem = $assetItem->checkouts()->where('created_at', '=', $acceptance->created_at)->get()[0]; + + if(!$assetItem->assignedTo->locale){ + Notification::locale(Setting::getSettings()->locale)->send( + $assetItem->assignedTo, + new CheckoutAssetNotification($assetItem, $assetItem->assignedTo, $logItem->user, $acceptance, $logItem->note) + ); + } else { + Notification::send( + $assetItem->assignedTo, + new CheckoutAssetNotification($assetItem, $assetItem->assignedTo, $logItem->user, $acceptance, $logItem->note) + ); + } + + return redirect()->route('reports/unaccepted_assets')->with('success', trans('admin/reports/general.reminder_sent')); + } + + /** + * sentAssetAcceptanceReminder + * + * @param integer|null $acceptanceId + * @return \Illuminate\Http\RedirectResponse + * @throws \Illuminate\Auth\Access\AuthorizationException + * @version v1.0 + */ + public function deleteAssetAcceptance($acceptanceId = null) + { + $this->authorize('reports.view'); + + if (!$acceptance = CheckoutAcceptance::pending()->find($acceptanceId)) { + // Redirect to the unaccepted assets report page with error + return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.bad_data')); + } + + if($acceptance->delete()) { + return redirect()->route('reports/unaccepted_assets')->with('success', trans('admin/reports/general.acceptance_deleted')); + } else { + return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.deletion_failed')); + } + } + /** * exportAssetAcceptanceReport * @@ -937,9 +1008,19 @@ class ReportsController extends Controller public function exportAssetAcceptanceReport() { $this->authorize('reports.view'); - // Grab all the improvements - $assetsForReport = Actionlog::whereIn('id', $this->getAssetsNotAcceptedYet()) - ->get(); + + /** + * Get all assets with pending checkout acceptances + */ + $acceptances = CheckoutAcceptance::pending()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + + $assetsForReport = $acceptances + ->filter(function($acceptance) { + return $acceptance->checkoutable_type == 'App\Models\Asset'; + }) + ->map(function($acceptance) { + return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance]; + }); $rows = []; @@ -954,6 +1035,7 @@ class ReportsController extends Controller $header = array_map('trim', $header); $rows[] = implode($header, ','); +<<<<<<< HEAD foreach ($assetsForReport as $assetItem) { $row = []; $row[] = str_replace(',', '', e($assetItem->assetlog->model->category->name)); @@ -961,6 +1043,15 @@ class ReportsController extends Controller $row[] = str_replace(',', '', e($assetItem->assetlog->present()->name())); $row[] = str_replace(',', '', e($assetItem->assetlog->asset_tag)); $row[] = str_replace(',', '', e($assetItem->assetlog->assignedTo->present()->name())); +======= + foreach ($assetsForReport as $item) { + $row = [ ]; + $row[] = str_replace(',', '', e($item['assetItem']->model->category->name)); + $row[] = str_replace(',', '', e($item['assetItem']->model->name)); + $row[] = str_replace(',', '', e($item['assetItem']->name)); + $row[] = str_replace(',', '', e($item['assetItem']->asset_tag)); + $row[] = str_replace(',', '', e(($item['acceptance']->assignedTo) ? $item['acceptance']->assignedTo->present()->name() : trans('admin/reports/general.deleted_user'))); +>>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added $rows[] = implode($row, ','); } diff --git a/resources/lang/en/admin/reports/general.php b/resources/lang/en/admin/reports/general.php index 65e2bb1d7..ad3b0f5df 100644 --- a/resources/lang/en/admin/reports/general.php +++ b/resources/lang/en/admin/reports/general.php @@ -1,5 +1,16 @@ 'Select the options you want for your asset report.', ]; +======= +return array( + 'info' => 'Select the options you want for your asset report.', + 'deleted_user' => 'Deleted user', + 'send_reminder' => 'Send reminder', + 'reminder_sent' => 'Reminder sent', + 'acceptance_deleted' => 'Acceptance request deleted', + 'acceptance_request' => 'Acceptance request' +); +>>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 5c79f227e..aeb8dd956 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -73,6 +73,7 @@ 'delete_confirm' => 'Are you sure you wish to delete :item?', 'deleted' => 'Deleted', 'delete_seats' => 'Deleted Seats', + 'deletion_failed' => 'Deletion failed', 'departments' => 'Departments', 'department' => 'Department', 'deployed' => 'Deployed', diff --git a/resources/views/reports/unaccepted_assets.blade.php b/resources/views/reports/unaccepted_assets.blade.php index 45b6f163a..8432f25b8 100644 --- a/resources/views/reports/unaccepted_assets.blade.php +++ b/resources/views/reports/unaccepted_assets.blade.php @@ -41,19 +41,24 @@ {{ trans('admin/hardware/form.name') }} {{ trans('admin/hardware/table.asset_tag') }} {{ trans('admin/hardware/table.checkoutto') }} + {{ trans('table.actions') }} @if ($assetsForReport) - @foreach ($assetsForReport as $assetItem) - @if ($assetItem) + @foreach ($assetsForReport as $item) + @if ($item['assetItem']) - {{ ($assetItem->company) ? $assetItem->company->name : '' }} - {{ $assetItem->model->category->name }} - {{ $assetItem->model->name }} - {!! $assetItem->present()->nameUrl() !!} - {{ $assetItem->asset_tag }} - {!! ($assetItem->assignedTo) ? $assetItem->assignedTo->present()->nameUrl() : 'Deleted user' !!} + {{ ($item['assetItem']->company) ? $assetItem->company->name : '' }} + {!! $item['assetItem']->model->category->present()->nameUrl() !!} + {!! $item['assetItem']->present()->modelUrl() !!} + {!! $item['assetItem']->present()->nameUrl() !!} + {{ $item['assetItem']->asset_tag }} + {!! ($item['acceptance']->assignedTo) ? $item['acceptance']->assignedTo->present()->nameUrl() : trans('admin/reports/general.deleted_user') !!} + + @if ($item['acceptance']->assignedTo){{ trans('admin/reports/general.send_reminder') }}@endif + + @endif @endforeach diff --git a/routes/web.php b/routes/web.php index 7a6c25bdc..934bb4de8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -322,6 +322,14 @@ Route::group(['middleware' => ['auth']], function () { 'reports/unaccepted_assets', [ReportsController::class, 'getAssetAcceptanceReport'] )->name('reports/unaccepted_assets'); + Route::get( + 'reports/unaccepted_assets/{acceptanceId}/sent_reminder', + [ 'as' => 'reports/unaccepted_assets_sent_reminder', 'uses' => 'ReportsController@sentAssetAcceptanceReminder' ] + ); + Route::delete( + 'reports/unaccepted_assets/{acceptanceId}/delete', + [ 'as' => 'reports/unaccepted_assets_delete', 'uses' => 'ReportsController@deleteAssetAcceptance' ] + ); Route::get( 'reports/export/unaccepted_assets', [ReportsController::class, 'exportAssetAcceptanceReport'] From 9a9ca59544b5518a7b290ff9a4b0b81ec09c5902 Mon Sep 17 00:00:00 2001 From: Dampfklon Date: Sat, 17 Jul 2021 00:07:51 +0200 Subject: [PATCH 2/6] Fix decprecated implode usage --- app/Http/Controllers/ReportsController.php | 48 +++++++--------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 5e3856be3..63b61c0d1 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -75,7 +75,7 @@ class ReportsController extends Controller trans('admin/accessories/general.remaining'), ]; $header = array_map('trim', $header); - $rows[] = implode($header, ', '); + $rows[] = implode(', ', $header); // Row per accessory foreach ($accessories as $accessory) { @@ -85,10 +85,10 @@ class ReportsController extends Controller $row[] = e($accessory->total); $row[] = e($accessory->remaining); - $rows[] = implode($row, ','); + $rows[] = implode(',', $row); } - $csv = implode($rows, "\n"); + $csv = implode("\n", $rows); $response = Response::make($csv, 200); $response->header('Content-Type', 'text/csv'); $response->header('Content-disposition', 'attachment;filename=report.csv'); @@ -346,7 +346,7 @@ class ReportsController extends Controller ]; $header = array_map('trim', $header); - $rows[] = implode($header, ', '); + $rows[] = implode(', ', $header); // Row per license foreach ($licenses as $license) { @@ -360,10 +360,11 @@ class ReportsController extends Controller $row[] = ($license->depreciation != '') ? '' : e($license->depreciation->name); $row[] = '"'.Helper::formatCurrencyOutput($license->purchase_cost).'"'; - $rows[] = implode($row, ','); + $rows[] = implode(',', $row); } - $csv = implode($rows, "\n"); + + $csv = implode("\n", $rows); $response = Response::make($csv, 200); $response->header('Content-Type', 'text/csv'); $response->header('Content-disposition', 'attachment;filename=report.csv'); @@ -871,7 +872,7 @@ class ReportsController extends Controller ]; $header = array_map('trim', $header); - $rows[] = implode($header, ','); + $rows[] = implode(',', $header); foreach ($assetMaintenances as $assetMaintenance) { $row = []; @@ -888,13 +889,13 @@ class ReportsController extends Controller } else { $improvementTime = intval($assetMaintenance->asset_maintenance_time); } - $row[] = $improvementTime; - $row[] = trans('general.currency').Helper::formatCurrencyOutput($assetMaintenance->cost); - $rows[] = implode($row, ','); + $row[] = $improvementTime; + $row[] = trans('general.currency') . Helper::formatCurrencyOutput($assetMaintenance->cost); + $rows[] = implode(',', $row); } // spit out a csv - $csv = implode($rows, "\n"); + $csv = implode("\n", $rows); $response = Response::make($csv, 200); $response->header('Content-Type', 'text/csv'); $response->header('Content-disposition', 'attachment;filename=report.csv'); @@ -917,23 +918,14 @@ class ReportsController extends Controller /** * Get all assets with pending checkout acceptances */ -<<<<<<< HEAD - $acceptances = CheckoutAcceptance::pending()->get(); -======= $acceptances = CheckoutAcceptance::pending()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); ->>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added $assetsForReport = $acceptances ->filter(function ($acceptance) { return $acceptance->checkoutable_type == \App\Models\Asset::class; }) -<<<<<<< HEAD - ->map(function ($acceptance) { - return $acceptance->checkoutable; -======= ->map(function($acceptance) { return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance]; ->>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added }); return view('reports/unaccepted_assets', compact('assetsForReport')); @@ -1033,17 +1025,8 @@ class ReportsController extends Controller ]; $header = array_map('trim', $header); - $rows[] = implode($header, ','); + $rows[] = implode(',', $header); -<<<<<<< HEAD - foreach ($assetsForReport as $assetItem) { - $row = []; - $row[] = str_replace(',', '', e($assetItem->assetlog->model->category->name)); - $row[] = str_replace(',', '', e($assetItem->assetlog->model->name)); - $row[] = str_replace(',', '', e($assetItem->assetlog->present()->name())); - $row[] = str_replace(',', '', e($assetItem->assetlog->asset_tag)); - $row[] = str_replace(',', '', e($assetItem->assetlog->assignedTo->present()->name())); -======= foreach ($assetsForReport as $item) { $row = [ ]; $row[] = str_replace(',', '', e($item['assetItem']->model->category->name)); @@ -1051,12 +1034,11 @@ class ReportsController extends Controller $row[] = str_replace(',', '', e($item['assetItem']->name)); $row[] = str_replace(',', '', e($item['assetItem']->asset_tag)); $row[] = str_replace(',', '', e(($item['acceptance']->assignedTo) ? $item['acceptance']->assignedTo->present()->name() : trans('admin/reports/general.deleted_user'))); ->>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added - $rows[] = implode($row, ','); + $rows[] = implode(',', $row); } // spit out a csv - $csv = implode($rows, "\n"); + $csv = implode("\n", $rows); $response = Response::make($csv, 200); $response->header('Content-Type', 'text/csv'); $response->header('Content-disposition', 'attachment;filename=report.csv'); From 12ee06deb603a9d925e31e65c55ec2d113583c3a Mon Sep 17 00:00:00 2001 From: Dampfklon Date: Sat, 17 Jul 2021 00:15:33 +0200 Subject: [PATCH 3/6] add Download All Button, change route analogue to activity report --- app/Http/Controllers/ReportsController.php | 4 ++-- resources/views/reports/unaccepted_assets.blade.php | 7 +++++++ routes/web.php | 12 ++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 63b61c0d1..c47127085 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -991,13 +991,13 @@ class ReportsController extends Controller } /** - * exportAssetAcceptanceReport + * Exports the AssetAcceptance report to CSV * * @return \Illuminate\Http\Response * @author Vincent Sposato * @version v1.0 */ - public function exportAssetAcceptanceReport() + public function postAssetAcceptanceReport() { $this->authorize('reports.view'); diff --git a/resources/views/reports/unaccepted_assets.blade.php b/resources/views/reports/unaccepted_assets.blade.php index 8432f25b8..af0123909 100644 --- a/resources/views/reports/unaccepted_assets.blade.php +++ b/resources/views/reports/unaccepted_assets.blade.php @@ -8,6 +8,13 @@ @parent @stop +@section('header_right') + {{ Form::open(['method' => 'post', 'class' => 'form-horizontal']) }} + {{csrf_field()}} + + {{ Form::close() }} +@stop + {{-- Page content --}} @section('content') diff --git a/routes/web.php b/routes/web.php index 934bb4de8..af9be8ecb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -324,14 +324,14 @@ Route::group(['middleware' => ['auth']], function () { )->name('reports/unaccepted_assets'); Route::get( 'reports/unaccepted_assets/{acceptanceId}/sent_reminder', - [ 'as' => 'reports/unaccepted_assets_sent_reminder', 'uses' => 'ReportsController@sentAssetAcceptanceReminder' ] - ); + [ReportsController::class, 'sentAssetAcceptanceReminder'] + )->name('reports/unaccepted_assets_sent_reminder'); Route::delete( 'reports/unaccepted_assets/{acceptanceId}/delete', - [ 'as' => 'reports/unaccepted_assets_delete', 'uses' => 'ReportsController@deleteAssetAcceptance' ] - ); - Route::get( - 'reports/export/unaccepted_assets', + [ReportsController::class, 'deleteAssetAcceptance'] + )->name('reports/unaccepted_assets_delete'); + Route::post( + 'reports/unaccepted_assets', [ReportsController::class, 'exportAssetAcceptanceReport'] )->name('reports/export/unaccepted_assets'); }); From 4418ad234001b4b688ec9d1c1d1960e6718e14a2 Mon Sep 17 00:00:00 2001 From: Dampfklon Date: Sat, 17 Jul 2021 01:37:11 +0200 Subject: [PATCH 4/6] Enable display of deleted acceptances, strike deleted users, add date, enable sorting --- app/Http/Controllers/ReportsController.php | 22 ++++++--- resources/lang/en/general.php | 1 + .../views/reports/unaccepted_assets.blade.php | 45 +++++++++++++------ routes/web.php | 4 +- 4 files changed, 51 insertions(+), 21 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index c47127085..8199715b9 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -911,14 +911,21 @@ class ReportsController extends Controller * @author Vincent Sposato * @version v1.0 */ - public function getAssetAcceptanceReport() + public function getAssetAcceptanceReport($deleted = false) { $this->authorize('reports.view'); + $showDeleted = $deleted == 'deleted'; /** * Get all assets with pending checkout acceptances */ - $acceptances = CheckoutAcceptance::pending()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + if($showDeleted) { + $acceptances = CheckoutAcceptance::pending()->withTrashed()->with(['assignedTo' , 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + } else { + $acceptances = CheckoutAcceptance::pending()->with(['assignedTo' => function ($query) { + $query->withTrashed(); + }, 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + } $assetsForReport = $acceptances ->filter(function ($acceptance) { @@ -928,7 +935,7 @@ class ReportsController extends Controller return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance]; }); - return view('reports/unaccepted_assets', compact('assetsForReport')); + return view('reports/unaccepted_assets', compact('assetsForReport','showDeleted' )); } /** @@ -997,14 +1004,19 @@ class ReportsController extends Controller * @author Vincent Sposato * @version v1.0 */ - public function postAssetAcceptanceReport() + public function postAssetAcceptanceReport($deleted = false) { $this->authorize('reports.view'); + $showDeleted = $deleted == 'deleted'; /** * Get all assets with pending checkout acceptances */ - $acceptances = CheckoutAcceptance::pending()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + if($showDeleted) { + $acceptances = CheckoutAcceptance::pending()->withTrashed()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + } else { + $acceptances = CheckoutAcceptance::pending()->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model'])->get(); + } $assetsForReport = $acceptances ->filter(function($acceptance) { diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index aeb8dd956..6a0971cb0 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -248,4 +248,5 @@ 'show_help' => 'Show help', 'hide_help' => 'Hide help', 'view_all' => 'view all', + 'hide_deleted' => 'Hide Deleted', ]; diff --git a/resources/views/reports/unaccepted_assets.blade.php b/resources/views/reports/unaccepted_assets.blade.php index af0123909..275a1c842 100644 --- a/resources/views/reports/unaccepted_assets.blade.php +++ b/resources/views/reports/unaccepted_assets.blade.php @@ -9,10 +9,22 @@ @stop @section('header_right') - {{ Form::open(['method' => 'post', 'class' => 'form-horizontal']) }} - {{csrf_field()}} - - {{ Form::close() }} + + @stop {{-- Page content --}} @@ -34,6 +46,7 @@ data-show-export="true" data-show-refresh="true" data-sort-order="asc" + data-sort-name="created_at" id="unacceptedAssetsReport" class="table table-striped snipe-table" data-export-options='{ @@ -42,12 +55,13 @@ }'> - {{ trans('admin/companies/table.title') }} - {{ trans('general.category') }} - {{ trans('admin/hardware/form.model') }} - {{ trans('admin/hardware/form.name') }} - {{ trans('admin/hardware/table.asset_tag') }} - {{ trans('admin/hardware/table.checkoutto') }} + {{ trans('general.date') }} + {{ trans('admin/companies/table.title') }} + {{ trans('general.category') }} + {{ trans('admin/hardware/form.model') }} + {{ trans('admin/hardware/form.name') }} + {{ trans('admin/hardware/table.asset_tag') }} + {{ trans('admin/hardware/table.checkoutto') }} {{ trans('table.actions') }} @@ -55,16 +69,19 @@ @if ($assetsForReport) @foreach ($assetsForReport as $item) @if ($item['assetItem']) - + trashed()) style="text-decoration: line-through" @endif> + {{ $item['acceptance']->created_at }} {{ ($item['assetItem']->company) ? $assetItem->company->name : '' }} {!! $item['assetItem']->model->category->present()->nameUrl() !!} {!! $item['assetItem']->present()->modelUrl() !!} {!! $item['assetItem']->present()->nameUrl() !!} {{ $item['assetItem']->asset_tag }} - {!! ($item['acceptance']->assignedTo) ? $item['acceptance']->assignedTo->present()->nameUrl() : trans('admin/reports/general.deleted_user') !!} + 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') !!} - @if ($item['acceptance']->assignedTo){{ trans('admin/reports/general.send_reminder') }}@endif - + @if(!$item['acceptance']->trashed()) + @if ($item['acceptance']->assignedTo){{ trans('admin/reports/general.send_reminder') }}@endif + + @endif @endif diff --git a/routes/web.php b/routes/web.php index af9be8ecb..162327751 100644 --- a/routes/web.php +++ b/routes/web.php @@ -319,7 +319,7 @@ Route::group(['middleware' => ['auth']], function () { Route::post('reports/activity', [ReportsController::class, 'postActivityReport']); Route::get( - 'reports/unaccepted_assets', + 'reports/unaccepted_assets/{deleted?}', [ReportsController::class, 'getAssetAcceptanceReport'] )->name('reports/unaccepted_assets'); Route::get( @@ -331,7 +331,7 @@ Route::group(['middleware' => ['auth']], function () { [ReportsController::class, 'deleteAssetAcceptance'] )->name('reports/unaccepted_assets_delete'); Route::post( - 'reports/unaccepted_assets', + 'reports/unaccepted_assets/{deleted?}', [ReportsController::class, 'exportAssetAcceptanceReport'] )->name('reports/export/unaccepted_assets'); }); From 7645f23f5c9de4c86a5e0d94baa207aa599dca1d Mon Sep 17 00:00:00 2001 From: Dampfklon Date: Sat, 17 Jul 2021 14:50:19 +0200 Subject: [PATCH 5/6] remove pending Acceptances on checkin --- .../Controllers/Assets/AssetCheckinController.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 2c34bc5c9..80667c9ce 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -7,6 +7,8 @@ use App\Helpers\Helper; use App\Http\Controllers\Controller; use App\Http\Requests\AssetCheckinRequest; use App\Models\Asset; +use App\Models\CheckoutAcceptance; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\View; @@ -109,6 +111,16 @@ class AssetCheckinController extends Controller $checkin_at = $request->input('checkin_at'); } + // Get all pending Acceptances for this asset and delete them + $acceptances = CheckoutAcceptance::pending()->whereHasMorph('checkoutable', + [Asset::class], + function (Builder $query) use ($asset) { + $query->where('id', $asset->id); + })->get(); + $acceptances->map(function($acceptance) { + $acceptance->delete(); + }); + // Was the asset updated? if ($asset->save()) { event(new CheckoutableCheckedIn($asset, $target, Auth::user(), $request->input('note'), $checkin_at)); From ab4a234e203f0d5af3297c21cbecdaf041032c8c Mon Sep 17 00:00:00 2001 From: Dampfklon Date: Thu, 7 Oct 2021 21:32:57 +0200 Subject: [PATCH 6/6] fix rebase errors --- app/Notifications/CheckoutAssetNotification.php | 1 + resources/lang/en/admin/reports/general.php | 8 +------- routes/web.php | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/app/Notifications/CheckoutAssetNotification.php b/app/Notifications/CheckoutAssetNotification.php index e218a76d1..44708220a 100644 --- a/app/Notifications/CheckoutAssetNotification.php +++ b/app/Notifications/CheckoutAssetNotification.php @@ -2,6 +2,7 @@ namespace App\Notifications; +use App\Helpers\Helper; use App\Models\Asset; use App\Models\Setting; use App\Models\User; diff --git a/resources/lang/en/admin/reports/general.php b/resources/lang/en/admin/reports/general.php index ad3b0f5df..344d5c874 100644 --- a/resources/lang/en/admin/reports/general.php +++ b/resources/lang/en/admin/reports/general.php @@ -1,16 +1,10 @@ 'Select the options you want for your asset report.', -]; -======= -return array( - 'info' => 'Select the options you want for your asset report.', 'deleted_user' => 'Deleted user', 'send_reminder' => 'Send reminder', 'reminder_sent' => 'Reminder sent', 'acceptance_deleted' => 'Acceptance request deleted', 'acceptance_request' => 'Acceptance request' -); ->>>>>>> Unaccepted Assets Report Actions (send reminder, delete) added +]; \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 162327751..96f638f28 100644 --- a/routes/web.php +++ b/routes/web.php @@ -332,7 +332,7 @@ Route::group(['middleware' => ['auth']], function () { )->name('reports/unaccepted_assets_delete'); Route::post( 'reports/unaccepted_assets/{deleted?}', - [ReportsController::class, 'exportAssetAcceptanceReport'] + [ReportsController::class, 'postAssetAcceptanceReport'] )->name('reports/export/unaccepted_assets'); });