Assigning asset to multiple users
This commit is contained in:
@@ -255,7 +255,7 @@ class AssetadmintController extends Controller
|
||||
];
|
||||
}
|
||||
return null;
|
||||
})->pluck('full_name')->filter()->values(); // remove nulls and reset keys
|
||||
})->filter()->values(); // remove nulls and reset keys
|
||||
|
||||
// $assetData['assign_to_users'] = !empty($assignToUsers) ? implode(', ', $assignToUsers) : '';
|
||||
$assetData['assign_to_users'] = $assignToUsers;
|
||||
@@ -443,31 +443,28 @@ class AssetadmintController extends Controller
|
||||
$assetId = $request->asset_id;
|
||||
$activeStatus = $request->active;
|
||||
|
||||
// if ($activeStatus) {
|
||||
// // If assigning asset, first unassign from any other users
|
||||
// UserAssetLink::where('asset_id', $assetId)
|
||||
// ->update(['active' => 0]);
|
||||
// }
|
||||
|
||||
// Now either update existing record or create a new one for this user and asset
|
||||
$userAssetLink = UserAssetLink::firstOrNew([
|
||||
'user_id' => $userId,
|
||||
'asset_id' => $assetId
|
||||
]);
|
||||
if($userId){
|
||||
foreach($userId as $user){
|
||||
$userAssetLink = UserAssetLink::firstOrNew([
|
||||
'user_id' => $user,
|
||||
'asset_id' => $assetId
|
||||
]);
|
||||
|
||||
$userAssetLink->active = $activeStatus;
|
||||
$userAssetLink->save();
|
||||
$userAssetLink->active = $activeStatus;
|
||||
$userAssetLink->save();
|
||||
}
|
||||
}
|
||||
|
||||
$message = $activeStatus
|
||||
? 'Asset assigned to user successfully.'
|
||||
: 'Asset unassigned from user.';
|
||||
? 'Asset assigned to user(s) successfully'
|
||||
: 'Asset unassigned from user(s)';
|
||||
|
||||
Log::info($message, ['userId' => $userId, 'assetId' => $assetId]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => $message,
|
||||
'data' => $userAssetLink
|
||||
], 200);
|
||||
} catch (Exception $e) {
|
||||
Log::error("Error assigning/unassigning asset: " . $e->getMessage());
|
||||
@@ -617,21 +614,21 @@ class AssetadmintController extends Controller
|
||||
->get()
|
||||
->map(function ($asset) {
|
||||
// Since only active userAssetLinks are fetched, take the first one (only one user per asset)
|
||||
$assignToUser = $asset->userAssetLinks->first(); // get first active link if exists
|
||||
|
||||
$userDetails = null;
|
||||
if ($assignToUser && $assignToUser->user) {
|
||||
$userDetails = [
|
||||
'user_id' => $assignToUser->user->id,
|
||||
'full_name' => trim($assignToUser->user->first_name . ' ' . $assignToUser->user->last_name),
|
||||
];
|
||||
}
|
||||
$assignToUsers = $asset->userAssetLinks->map(function ($userAssetLink) {
|
||||
$user = $userAssetLink->user;
|
||||
if ($user) {
|
||||
return [
|
||||
'user_id' => $user->id,
|
||||
'full_name' => trim($user->first_name . ' ' . $user->last_name),
|
||||
];
|
||||
}
|
||||
});
|
||||
|
||||
return collect($asset)
|
||||
->except('customer', 'userAssetLinks') // remove full objects
|
||||
->except('customer', 'user_asset_links') // remove full objects
|
||||
->merge([
|
||||
'customer_name' => optional($asset->customer)->name,
|
||||
'assign_to_user' => $userDetails, // assign only one user
|
||||
'assign_to_users' => $assignToUsers, // attach user_id and full_name
|
||||
]);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user