diff --git a/app/Http/Controllers/Admin/AdminController.php b/app/Http/Controllers/Admin/AdminController.php index da982d0..ac5d8e5 100644 --- a/app/Http/Controllers/Admin/AdminController.php +++ b/app/Http/Controllers/Admin/AdminController.php @@ -97,15 +97,33 @@ class AdminController extends Controller public function update(Request $request, $msnv) { + $user = User::where('msnv', $msnv)->firstOrFail(); + $request->validate([ - 'card' => 'required|integer|min:0', - 'role' => 'required|in:' . config('constants.ROLE_MEMBER') . ',' . config('constants.ROLE_ADMIN'), - 'status' => 'required|in:' . config('constants.STATUS_INACTIVE') . ',' . config('constants.STATUS_ACTIVE'), - 'flag_send' => 'required|in:' . config('constants.FLAG_SEND_DISABLED') . ',' . config('constants.FLAG_SEND_ENABLED'), - 'first_login' => 'required|in:' . config('constants.FIRST_LOGIN_FALSE') . ',' . config('constants.FIRST_LOGIN_TRUE'), + 'card' => 'nullable|integer|min:0', + 'num_card' => 'nullable|integer|min:1', + 'role' => 'nullable|in:' . config('constants.ROLE_MEMBER') . ',' . config('constants.ROLE_ADMIN'), + 'status' => 'nullable|in:' . config('constants.STATUS_INACTIVE') . ',' . config('constants.STATUS_ACTIVE'), + 'flag_send' => 'nullable|in:0,1', + 'first_login' => 'nullable|in:' . config('constants.FIRST_LOGIN_FALSE') . ',' . config('constants.FIRST_LOGIN_TRUE'), ]); - $this->adminService->updateUser($msnv, $request->only('card', 'role', 'status', 'flag_send', 'first_login')); + $cardValue = $user->card; + if ($request->has('num_card') && !is_null($request->num_card)) { + $cardValue = $user->card + intval($request->num_card); + } elseif ($request->has('card')) { + $cardValue = intval($request->card); + } + + $data = [ + 'card' => $cardValue, + 'role' => $request->input('role', $user->role), + 'status' => $request->input('status', $user->status), + 'flag_send' => $request->has('flag_send') ? config('constants.FLAG_SEND_ENABLED') : config('constants.FLAG_SEND_DISABLED'), + 'first_login' => $request->input('first_login', $user->first_login), + ]; + + $this->adminService->updateUser($msnv, $data); return redirect()->back()->with('success', __('messages.user_update_success')); } diff --git a/resources/views/admin/users/edit.blade.php b/resources/views/admin/users/edit.blade.php index ca75eb7..fcf1426 100644 --- a/resources/views/admin/users/edit.blade.php +++ b/resources/views/admin/users/edit.blade.php @@ -13,5 +13,5 @@ - + @endsection