-
- @foreach ($errors->all() as $e)
-
- {{ $e }} - @endforeach -
-
+ @foreach ($errors->all() as $e)
+
- {{ $e }} + @endforeach +
diff --git a/app/Http/Controllers/Admin/UsersController.php b/app/Http/Controllers/Admin/UsersController.php index 07afcd3..29acaad 100644 --- a/app/Http/Controllers/Admin/UsersController.php +++ b/app/Http/Controllers/Admin/UsersController.php @@ -301,6 +301,7 @@ class UsersController $rules = [ 'user_id' => ['required', 'regex:/^\d+$/', 'digits_between:1,10'], // 半角数字(最大10桁) 'user_name' => ['required', 'string', 'max:255'], + 'user_pass' => ['required', 'string', 'min:8', 'confirmed'], // 任意 'user_primemail' => ['nullable', 'email', 'max:255'], 'user_gender' => ['nullable', 'in:男性,女性'], @@ -317,6 +318,9 @@ class UsersController 'user_id.regex' => '利用者IDは半角数字のみで入力してください。', 'user_id.digits_between' => '利用者IDは最大10桁以内で入力してください。', 'user_name.required' => '氏名は必須です。', + 'user_pass.required' => 'パスワードは必須です。', + 'user_pass.min' => 'パスワードは8文字以上で入力してください。', + 'user_pass.confirmed' => 'パスワードと確認用パスワードが一致しません。', ]; // ▼ 属性名(日本語ラベル) @@ -358,6 +362,7 @@ class UsersController */ public function edit(Request $request, int $seq) { + $user = DB::table('user')->where('user_seq', $seq)->first(); if (!$user) { abort(404, '利用者情報が見つかりません。'); @@ -370,6 +375,21 @@ class UsersController $categoryOptions = $this->buildCategoryOptions(); +// ▼ 退会処理専用(hiddenフィールド quit_action があれば退会処理) +if ($request->has('quit_action')) { + DB::table('user')->where('user_seq', $seq)->update([ + 'user_quit_flag' => 1, + 'user_quitday' => now()->format('Y-m-d'), + 'ope_id' => $request->input('ope_id') ?? auth()->user()->ope_id ?? null, + 'updated_at' => now(), + ]); + + return redirect() + ->route('users_edit', ['seq' => $seq]) + ->with('status', '退会処理が完了しました。'); +} + + if ($request->isMethod('get')) { return view('admin.users.edit', [ 'user' => $user, @@ -381,6 +401,7 @@ class UsersController $rules = [ 'user_id' => ['required', 'regex:/^\d+$/', 'digits_between:1,10'], 'user_name' => ['required', 'string', 'max:255'], + 'user_pass' => ['nullable', 'string', 'min:8', 'confirmed'], 'user_primemail' => ['nullable', 'email', 'max:255'], 'user_gender' => ['nullable', 'in:男性,女性,未入力'], 'member_id' => ['nullable', 'string', 'max:255'], @@ -460,4 +481,34 @@ class UsersController ->route('users_edit', ['seq' => $seq]) ->with('status', '利用者情報を更新しました。'); } + + /** + * 利用者削除(POST: 削除実行) + * - user_seq をキーに削除処理を行う + * - 削除前に存在確認を行い、存在しない場合はエラーを返す + * - 削除完了後、一覧画面へリダイレクト + */ + public function delete(Request $request) + { + // ▼ パラメータ取得 + $userSeq = (int) $request->input('user_seq'); + + // ▼ 対象レコード存在確認 + $user = DB::table('user')->where('user_seq', $userSeq)->first(); + if (!$user) { + // 該当データなし + return redirect() + ->route('users') + ->with('error', '利用者情報が見つかりません。'); + } + + // ▼ 削除処理実行 + DB::table('user')->where('user_seq', $userSeq)->delete(); + + // ▼ 正常終了メッセージを一覧画面に表示 + return redirect() + ->route('users') + ->with('success', '利用者を削除しました。'); + } + } diff --git a/app/Models/Park.php b/app/Models/Park.php index 80060ef..2e2507e 100644 --- a/app/Models/Park.php +++ b/app/Models/Park.php @@ -64,15 +64,15 @@ class Park extends Model 'reduction_guide_display_flag', // 減免案内表示フラグ 'reduction_target_age', // 減免対象年齢 'reduction_guide_display_start_month', // 減免案内表示開始月数 - 'cross_year' // 年跨ぎ - // 如有 created_at/updated_at 可省略不填 + 'cross_year', // 年跨ぎ + 'reverse_use_general', // 逆利用一般 + 'reverse_use_student' // 逆利用学生 ]; public static function search($inputs) { $list = self::query(); if ($inputs['isMethodPost']) { - // 搜索条件可追加 } // Sort if ($inputs['sort']) { diff --git a/resources/views/admin/users/_form.blade.php b/resources/views/admin/users/_form.blade.php new file mode 100644 index 0000000..4f48471 --- /dev/null +++ b/resources/views/admin/users/_form.blade.php @@ -0,0 +1,516 @@ +{{-- 利用者マスタ 共通フォーム --}} +
diff --git a/resources/views/admin/users/add.blade.php b/resources/views/admin/users/add.blade.php index 7ec7c66..6dda189 100644 --- a/resources/views/admin/users/add.blade.php +++ b/resources/views/admin/users/add.blade.php @@ -7,7 +7,9 @@集計業務
++ 集計業務 + +
+ +