mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-24 05:04:07 -08:00
Ignore deleted assets and check for valid location in artisan command
This commit is contained in:
parent
fe06ef10f1
commit
f672b14468
|
@ -49,7 +49,7 @@ class SyncAssetLocations extends Command
|
||||||
$bar = $this->output->createProgressBar(count($total_assets));
|
$bar = $this->output->createProgressBar(count($total_assets));
|
||||||
|
|
||||||
// Unassigned
|
// Unassigned
|
||||||
$rtd_assets = Asset::whereNull('assigned_to')->with('defaultLoc')->get();
|
$rtd_assets = Asset::whereNull('assigned_to')->whereNull('deleted_at')->with('defaultLoc')->get();
|
||||||
$output['info'][] = 'There are '.$rtd_assets->count().' unassigned assets.';
|
$output['info'][] = 'There are '.$rtd_assets->count().' unassigned assets.';
|
||||||
|
|
||||||
foreach ($rtd_assets as $rtd_asset) {
|
foreach ($rtd_assets as $rtd_asset) {
|
||||||
|
@ -60,15 +60,15 @@ class SyncAssetLocations extends Command
|
||||||
$bar->advance();
|
$bar->advance();
|
||||||
}
|
}
|
||||||
|
|
||||||
$assigned_user_assets = Asset::where('assigned_type','App\Models\User')->whereNotNull('assigned_to')->get();
|
$assigned_user_assets = Asset::where('assigned_type','App\Models\User')->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
|
||||||
$output['info'][] = 'There are '.$assigned_user_assets->count().' assets checked out to users.';
|
$output['info'][] = 'There are '.$assigned_user_assets->count().' assets checked out to users.';
|
||||||
foreach ($assigned_user_assets as $assigned_user_asset) {
|
foreach ($assigned_user_assets as $assigned_user_asset) {
|
||||||
if (($assigned_user_asset->assignedTo) && ($assigned_user_asset->assignedTo->userLoc)) {
|
if (($assigned_user_asset->assignedTo) && ($assigned_user_asset->assignedTo->userLoc)) {
|
||||||
$new_location=$assigned_user_asset->assignedTo->userloc->id;
|
$new_location=$assigned_user_asset->assignedTo->userloc->id;
|
||||||
$output['info'][] ='Setting User Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') to ' . $assigned_user_asset->assignedTo->userLoc->name . ' which is id: ' . $new_location;
|
$output['info'][] ='Setting User Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') to ' . $assigned_user_asset->assignedTo->userLoc->name . ' which is id: ' . $new_location;
|
||||||
} else {
|
} else {
|
||||||
$output['error'][] ='Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') still has no location! ';
|
$output['warn'][] ='Asset ' . $assigned_user_asset->id . ' ('.$assigned_user_asset->asset_tag.') still has no location! ';
|
||||||
$new_location=$assigned_user_asset->rtd_location_id;
|
$new_location = $assigned_user_asset->rtd_location_id;
|
||||||
}
|
}
|
||||||
$assigned_user_asset->location_id=$new_location;
|
$assigned_user_asset->location_id=$new_location;
|
||||||
$assigned_user_asset->unsetEventDispatcher();
|
$assigned_user_asset->unsetEventDispatcher();
|
||||||
|
@ -78,34 +78,45 @@ class SyncAssetLocations extends Command
|
||||||
}
|
}
|
||||||
|
|
||||||
$assigned_location_assets = Asset::where('assigned_type','App\Models\Location')
|
$assigned_location_assets = Asset::where('assigned_type','App\Models\Location')
|
||||||
->whereNotNull('assigned_to')->get();
|
->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
|
||||||
$output['info'][] = 'There are '.$assigned_location_assets->count().' assets checked out to locations.';
|
$output['info'][] = 'There are '.$assigned_location_assets->count().' assets checked out to locations.';
|
||||||
|
|
||||||
foreach ($assigned_location_assets as $assigned_location_asset) {
|
foreach ($assigned_location_assets as $assigned_location_asset) {
|
||||||
$assigned_location_asset->location_id = $assigned_location_asset->assignedTo->id;
|
if ($assigned_location_asset->assignedTo) {
|
||||||
|
$assigned_location_asset->location_id = $assigned_location_asset->assignedTo->id;
|
||||||
$output['info'][] ='Setting Location Assigned asset ' . $assigned_location_asset->id . ' ('.$assigned_location_asset->asset_tag.') that is checked out to '.$assigned_location_asset->assignedTo->name.' (#'.$assigned_location_asset->assignedTo->id.') to location: ' . $assigned_location_asset->assetLoc()->id;
|
$output['info'][] ='Setting Location Assigned asset ' . $assigned_location_asset->id . ' ('.$assigned_location_asset->asset_tag.') that is checked out to '.$assigned_location_asset->assignedTo->name.' (#'.$assigned_location_asset->assignedTo->id.') to location: ' . $assigned_location_asset->assetLoc()->id;
|
||||||
$assigned_location_asset->unsetEventDispatcher();
|
$assigned_location_asset->unsetEventDispatcher();
|
||||||
$assigned_location_asset->save();
|
$assigned_location_asset->save();
|
||||||
|
} else {
|
||||||
|
$output['warn'][] ='Asset ' . $assigned_location_asset->id . ' ('.$assigned_location_asset->asset_tag.') did not return a valid associated location - perhaps it was deleted?';
|
||||||
|
}
|
||||||
$bar->advance();
|
$bar->advance();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Assigned to assets
|
// Assigned to assets
|
||||||
$assigned_asset_assets = Asset::where('assigned_type','App\Models\Asset')
|
$assigned_asset_assets = Asset::where('assigned_type','App\Models\Asset')
|
||||||
->whereNotNull('assigned_to')->get();
|
->whereNotNull('assigned_to')->whereNull('deleted_at')->get();
|
||||||
$output['info'][] ='Asset-assigned assets: '.$assigned_asset_assets->count();
|
$output['info'][] ='Asset-assigned assets: '.$assigned_asset_assets->count();
|
||||||
|
|
||||||
foreach ($assigned_asset_assets as $assigned_asset_asset) {
|
foreach ($assigned_asset_assets as $assigned_asset_asset) {
|
||||||
$assigned_asset_asset->location_id = $assigned_asset_asset->assetLoc()->id;
|
|
||||||
$output['info'][] ='Setting Asset Assigned asset ' . $assigned_asset_asset->assetLoc()->id. ' ('.$assigned_asset_asset->asset_tag.') location to: ' . $assigned_asset_asset->assetLoc()->id;
|
// Check to make sure there aren't any invalid relationships
|
||||||
$assigned_asset_asset->unsetEventDispatcher();
|
if ($assigned_asset_asset->assetLoc()) {
|
||||||
$assigned_asset_asset->save();
|
$assigned_asset_asset->location_id = $assigned_asset_asset->assetLoc()->id;
|
||||||
|
$output['info'][] ='Setting Asset Assigned asset ' . $assigned_asset_asset->assetLoc()->id. ' ('.$assigned_asset_asset->asset_tag.') location to: ' . $assigned_asset_asset->assetLoc()->id;
|
||||||
|
$assigned_asset_asset->unsetEventDispatcher();
|
||||||
|
$assigned_asset_asset->save();
|
||||||
|
} else {
|
||||||
|
$output['warn'][] ='Asset Assigned asset ' . $assigned_asset_asset->assetLoc()->id. ' ('.$assigned_asset_asset->asset_tag.') does not seem to have a valid location';
|
||||||
|
}
|
||||||
|
|
||||||
$bar->advance();
|
$bar->advance();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$unlocated_assets = Asset::whereNull("location_id")->get();
|
$unlocated_assets = Asset::whereNull("location_id")->whereNull('deleted_at')->get();
|
||||||
$output['info'][] ='Assets still without a location: '.$unlocated_assets->count();
|
$output['info'][] ='Assets still without a location: '.$unlocated_assets->count();
|
||||||
foreach($unlocated_assets as $unlocated_asset) {
|
foreach($unlocated_assets as $unlocated_asset) {
|
||||||
$output['warn'][] ='Asset: '.$unlocated_asset->id.' still has no location. ';
|
$output['warn'][] ='Asset: '.$unlocated_asset->id.' still has no location. ';
|
||||||
|
|
Loading…
Reference in a new issue