prevents parent assets from being deleted

This commit is contained in:
Godfrey M 2025-02-24 10:22:52 -08:00
parent a275391557
commit fae4ad6068
3 changed files with 41 additions and 7 deletions

View file

@ -535,14 +535,47 @@ class BulkAssetsController extends Controller
return redirect($bulk_back_url)->with('error', trans('admin/hardware/message.delete.nothing_updated')); return redirect($bulk_back_url)->with('error', trans('admin/hardware/message.delete.nothing_updated'));
} }
$assignedAssets = Asset::whereIn('id', $assetIds)->whereNotNull('assigned_to')->get(); $parentAssets = Asset::whereIn('id', $assetIds)
if($assignedAssets->isNotEmpty()) { ->whereHas('assignedAssets')
->get();
//if assets are checked out, return a list of asset tags that would need to be checked in first. $assignedAssets = Asset::whereIn('id', $assetIds)
$assetTags = $assignedAssets->pluck('asset_tag')->implode(', '); ->whereNotNull('assigned_to')
return redirect($bulk_back_url)->with('error', trans_choice('admin/hardware/message.delete.assigned_to_error', $assignedAssets->count(), ['asset_tag' => $assetTags] )); ->get();
$errorMessages = [];
if ($assignedAssets->isNotEmpty()) {
$assignedTags = $assignedAssets->pluck('asset_tag')->implode(', ');
$errorMessages[] = trans_choice(
'admin/hardware/message.delete.assigned_to_error',
$assignedAssets->count(),
['asset_tag' => $assignedTags]
);
} }
if ($parentAssets->isNotEmpty()) {
$parentTags = $parentAssets->pluck('asset_tag')->implode(', ');
$errorMessages[] = trans_choice(
'admin/hardware/message.delete.parent_assigned_error',
$parentAssets->count(),
['asset_tag' => $parentTags]
);
}
if (!empty($errorMessages)) {
// Combine both messages
$combinedErrorMessage = implode('<br>', $errorMessages);
return redirect($bulk_back_url)->with('error', $combinedErrorMessage);
}
// if($assignedAssets->isNotEmpty() && $parentAsset->isNotEmpty()) {
//
// //if assets are checked out, return a list of asset tags that would need to be checked in first.
// $assetTags = $assignedAssets->pluck('asset_tag')->implode(', ');
// return redirect($bulk_back_url)->with('error', trans_choice('admin/hardware/message.delete.assigned_to_error', $assignedAssets->count(), ['asset_tag' => $assetTags] ));
// }
foreach (Asset::wherein('id', $assetIds)->get() as $asset) { foreach (Asset::wherein('id', $assetIds)->get() as $asset) {
$asset->delete(); $asset->delete();
} }

View file

@ -72,7 +72,8 @@ return [
'delete' => [ 'delete' => [
'confirm' => 'Are you sure you wish to delete this asset?', 'confirm' => 'Are you sure you wish to delete this asset?',
'error' => 'There was an issue deleting the asset. Please try again.', 'error' => 'There was an issue deleting the asset. Please try again.',
'assigned_to_error' => '{1}Asset Tag: :asset_tag is currently checked out. Check in this device before deletion.|[2,*]Asset Tags: :asset_tag are currently checked out. Check in these devices before deletion.', 'assigned_to_error' => '{1}Asset Tag: :asset_tag is currently checked out. Check in this device before deletion of this asset.|[2,*]Asset Tags: :asset_tag are currently checked out. Check in these devices before deletion of these assets.',
'parent_assigned_error' => '{1}Asset Tag: :asset_tag currently has items checked out. Check in all items attached before deletion of this asset.|[2,*]Asset Tags: :asset_tag currently have items checked out. Check in these devices before deletion of these assets.',
'nothing_updated' => 'No assets were selected, so nothing was deleted.', 'nothing_updated' => 'No assets were selected, so nothing was deleted.',
'success' => 'The asset was deleted successfully.', 'success' => 'The asset was deleted successfully.',
], ],

View file

@ -109,7 +109,7 @@
<button type="button" class="close" data-dismiss="alert">&times;</button> <button type="button" class="close" data-dismiss="alert">&times;</button>
<i class="fas fa-exclamation-triangle faa-pulse animated"></i> <i class="fas fa-exclamation-triangle faa-pulse animated"></i>
<strong>{{ trans('general.error') }}: </strong> <strong>{{ trans('general.error') }}: </strong>
{{ $message }} {!! $message !!}
</div> </div>
</div> </div>
@endif @endif