First version of bulk checkin

This commit is contained in:
Alex Janes
2021-12-19 16:53:31 -05:00
parent 4ca2252e3b
commit bc4fe88ac0
7 changed files with 280 additions and 1 deletions
+70 -1
View File
@@ -835,7 +835,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')) {
@@ -855,6 +855,75 @@ class AssetsController extends Controller
return response()->json(Helper::formatStandardApiResponse('success', ['asset'=> e($asset->asset_tag)], trans('admin/hardware/message.checkin.error')));
}
/**
* Bulk Checkin an asset
* This is the current solution to perform a bulk checkin based on an asset tag, rather than a regular checkin.
* This is due to the need to find the asset first based on the asset tag.
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @param int $assetId
* @since [v4.0]
* @return JsonResponse
*/
public function bulkCheckin(Request $request)
{
$this->authorize('checkin', Asset::class);
$asset = Asset::with('assetstatus')->where('asset_tag', $request->input('asset_tag'))->first();
if($asset) {
\Log::debug('Asset Name: ' . $asset->name);
$this->authorize('checkin', $asset);
$target = $asset->assigned_to;
\Log::debug('Assigned User: ' . $asset->assigned_to);
if (is_null($target)) {
return response()->json(Helper::formatStandardApiResponse('error', ['asset_tag' => e($request->input('asset_tag'))], trans('admin/hardware/message.checkin.already_checked_in')));
}
$asset->expected_checkin = null;
$asset->last_checkout = null;
$asset->assigned_to = null;
$asset->assignedTo()->disassociate($asset);
$asset->accepted = null;
if ($request->filled('name')) {
$asset->name = $request->input('name');
}
$asset->location_id = $asset->rtd_location_id;
if ($request->filled('location_id')) {
$asset->location_id = $request->input('location_id');
}
if ($request->has('status_id')) {
$asset->status_id = $request->input('status_id');
}
if ($asset->save()) {
\Log::debug('Asset Saved');
//event(new CheckoutableCheckedIn($asset, $target, Auth::user(), $request->input('note')));
return response()->json(Helper::formatStandardApiResponse('success', [
'asset_tag'=> 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.success')));
}
return response()->json(Helper::formatStandardApiResponse('error', [
'asset_tag'=> e($request->input('asset_tag'))
], trans('admin/hardware/message.checkin.error')));
}
return response()->json(Helper::formatStandardApiResponse('error', [
'asset_tag'=> e($request->input('asset_tag'))
], 'Asset with tag '.e($request->input('asset_tag')).' not found'));
return response()->json(Helper::formatStandardApiResponse('error', ['asset_tag'=> e($request->input('asset_tag'))], 'Asset with tag '.e($request->input('asset_tag')).' not found'));
}
/**
* Mark an asset as audited