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