diff --git a/app/Http/Controllers/Api/AssetsController.php b/app/Http/Controllers/Api/AssetsController.php index aacff45918..b8de5e8f59 100644 --- a/app/Http/Controllers/Api/AssetsController.php +++ b/app/Http/Controllers/Api/AssetsController.php @@ -52,7 +52,6 @@ class AssetsController extends Controller */ public function index(Request $request, $audit = null) { - \Log::debug(Route::currentRouteName()); $filter_non_deprecable_assets = false; @@ -345,8 +344,6 @@ class AssetsController extends Controller }]); } - - /** * Here we're just determining which Transformer (via $transformer) to use based on the @@ -371,9 +368,8 @@ class AssetsController extends Controller return (new AssetsTransformer)->transformAsset($asset, $request); } + return response()->json(Helper::formatStandardApiResponse('error', null, 'Asset not found'), 200); - - } /** @@ -734,7 +730,6 @@ class AssetsController extends Controller $logaction->logaction('restored'); return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/hardware/message.restore.success'))); - } return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/hardware/message.does_not_exist')), 200); @@ -838,8 +833,8 @@ class AssetsController extends Controller $this->authorize('checkin', $asset); - $user = $asset->assignedUser; - if (is_null($target = $asset->assignedTo)) { + $target = $asset->assignedTo; + if (is_null($target)) { return response()->json(Helper::formatStandardApiResponse('error', ['asset'=> e($asset->asset_tag)], trans('admin/hardware/message.checkin.already_checked_in'))); } @@ -852,7 +847,7 @@ class AssetsController extends Controller if ($request->filled('name')) { $asset->name = $request->input('name'); } - + $asset->location_id = $asset->rtd_location_id; if ($request->filled('location_id')) { @@ -869,7 +864,28 @@ class AssetsController extends Controller return response()->json(Helper::formatStandardApiResponse('success', ['asset'=> e($asset->asset_tag)], trans('admin/hardware/message.checkin.success'))); } - return response()->json(Helper::formatStandardApiResponse('success', ['asset'=> e($asset->asset_tag)], trans('admin/hardware/message.checkin.error'))); + return response()->json(Helper::formatStandardApiResponse('error', ['asset'=> e($asset->asset_tag)], trans('admin/hardware/message.checkin.error'))); + } + + /** + * Checkin an asset by asset tag + * + * @author [A. Janes] [] + * @since [v6.0] + * @return JsonResponse + */ + public function checkinByTag(Request $request) + { + $this->authorize('checkin', Asset::class); + $asset = Asset::where('asset_tag', $request->input('asset_tag'))->first(); + + if($asset) { + return $this->checkin($request, $asset->id); + } + + return response()->json(Helper::formatStandardApiResponse('error', [ + 'asset'=> e($request->input('asset_tag')) + ], 'Asset with tag '.e($request->input('asset_tag')).' not found')); } @@ -883,8 +899,6 @@ class AssetsController extends Controller */ public function audit(Request $request) { - - $this->authorize('audit', Asset::class); $rules = [ 'asset_tag' => 'required', @@ -932,11 +946,6 @@ class AssetsController extends Controller } return response()->json(Helper::formatStandardApiResponse('error', ['asset_tag'=> e($request->input('asset_tag'))], 'Asset with tag '.e($request->input('asset_tag')).' not found')); - - - - - } diff --git a/app/Http/Controllers/Assets/AssetsController.php b/app/Http/Controllers/Assets/AssetsController.php index b985012c98..2125d1f6ba 100755 --- a/app/Http/Controllers/Assets/AssetsController.php +++ b/app/Http/Controllers/Assets/AssetsController.php @@ -761,6 +761,13 @@ class AssetsController extends Controller return view('hardware/quickscan')->with('next_audit_date', $dt); } + public function quickScanCheckin() + { + $this->authorize('checkin', Asset::class); + + return view('hardware/quickscan-checkin'); + } + public function audit($id) { $settings = Setting::getSettings(); diff --git a/resources/lang/en/admin/hardware/general.php b/resources/lang/en/admin/hardware/general.php index 1ac49efef1..67226061b1 100644 --- a/resources/lang/en/admin/hardware/general.php +++ b/resources/lang/en/admin/hardware/general.php @@ -6,6 +6,7 @@ return [ 'archived' => 'Archived', 'asset' => 'Asset', 'bulk_checkout' => 'Checkout Assets', + 'bulk_checkin' => 'Checkin Assets', 'checkin' => 'Checkin Asset', 'checkout' => 'Checkout Asset', 'clone' => 'Clone Asset', diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 2e358c77f9..1f2f6341c9 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -192,6 +192,8 @@ 'qty' => 'QTY', 'quantity' => 'Quantity', 'quantity_minimum' => 'You have :count items below or almost below minimum quantity levels', + 'quickscan_checkin' => 'Quick Scan Checkin', + 'quickscan_checkin_status' => 'Checkin Status', 'ready_to_deploy' => 'Ready to Deploy', 'recent_activity' => 'Recent Activity', 'remaining' => 'Remaining', diff --git a/resources/views/hardware/quickscan-checkin.blade.php b/resources/views/hardware/quickscan-checkin.blade.php new file mode 100644 index 0000000000..b2075c51d0 --- /dev/null +++ b/resources/views/hardware/quickscan-checkin.blade.php @@ -0,0 +1,171 @@ +@extends('layouts/default') + +{{-- Page title --}} +@section('title') + {{ trans('general.quickscan_checkin') }} + @parent +@stop + +{{-- Page content --}} +@section('content') + + + + + +
+ {{ Form::open(['method' => 'POST', 'class' => 'form-horizontal', 'role' => 'form', 'id' => 'checkin-form' ]) }} + +
+
+
+

{{ trans('admin/hardware/general.bulk_checkin') }}

+
+
+ {{csrf_field()}} + + +
+ {{ Form::label('asset_tag', trans('general.asset_tag'), array('class' => 'col-md-3 control-label', 'id' => 'checkin_tag')) }} +
+
+ + +
+ {!! $errors->first('asset_tag', '') !!} +
+
+ + + @include ('partials.forms.edit.location-select', ['translated_name' => trans('general.location'), 'fieldname' => 'location_id']) + + +
+ {{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }} +
+ + {!! $errors->first('note', '') !!} +
+
+ + + +
+ + + + +
+ + + + {{Form::close()}} +
+ +
+ +
+ +
+ + +@stop + + +@section('moar_scripts') + +@stop diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 7bd6c28fc5..c86469911f 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -480,6 +480,14 @@ @endcan
  •  
  • + @can('checkin', \App\Models\Asset::class) + + + {{ trans('general.quickscan_checkin') }} + + + @endcan + @can('checkout', \App\Models\Asset::class) diff --git a/routes/api.php b/routes/api.php index 7e4bfc80d1..b3ec949c32 100644 --- a/routes/api.php +++ b/routes/api.php @@ -467,6 +467,13 @@ Route::group(['prefix' => 'v1', 'middleware' => 'api'], function () { ] )->name('api.asset.checkin'); + Route::post('checkinbytag', + [ + Api\AssetsController::class, + 'checkinbytag' + ] + )->name('api.asset.checkinbytag'); + Route::post('checkout', [ Api\AssetsController::class, diff --git a/routes/web/hardware.php b/routes/web/hardware.php index 2d83e386aa..22c4f0f20c 100644 --- a/routes/web/hardware.php +++ b/routes/web/hardware.php @@ -28,6 +28,10 @@ Route::group( [AssetsController::class, 'quickScan'] )->name('assets.bulkaudit'); + Route::get('quickscancheckin', + [AssetsController::class, 'quickScanCheckin'] + )->name('hardware/quickscancheckin'); + // Asset Maintenances Route::resource('maintenances', AssetMaintenancesController::class, [