diff --git a/app/Http/Controllers/Admin/TermsController.php b/app/Http/Controllers/Admin/TermsController.php index 6d20d39..8ff99b3 100644 --- a/app/Http/Controllers/Admin/TermsController.php +++ b/app/Http/Controllers/Admin/TermsController.php @@ -43,12 +43,14 @@ class TermsController extends Controller { if ($request->isMethod('post')) { $validated = $request->validate([ + 'city_id' => 'required|integer', 'terms_revision' => 'required|string|max:255', 'terms_text' => 'required|string', 'start_date' => 'nullable|date', 'use_flag' => 'required|in:0,1', 'memo' => 'nullable|string|max:255', - 'city_id' => 'nullable|integer', + 'terms_created_at' => 'nullable|date', + 'operator_id' => 'nullable|integer', ]); @@ -62,7 +64,6 @@ class TermsController extends Controller } - // 編集画面・更新処理 public function edit(Request $request, $id) { $term = Term::findOrFail($id); @@ -70,24 +71,27 @@ class TermsController extends Controller if ($request->isMethod('post')) { $validated = $request->validate([ - 'terms_revision' => 'required|string|max:255', - 'terms_text' => 'required|string', - 'start_date' => 'nullable|date', - 'use_flag' => 'required|in:0,1', - 'memo' => 'nullable|string|max:255', - 'city_id' => 'nullable|integer', - 'operator_id' => 'nullable|integer', + 'city_id' => 'required|integer', + 'terms_revision' => 'required|string|max:255', + 'terms_text' => 'required|string', + 'start_date' => 'nullable|date', + 'use_flag' => 'required|in:0,1', + 'memo' => 'nullable|string|max:255', + 'terms_created_at'=> 'nullable|date', + 'operator_id' => 'nullable|integer', ]); $term->update($validated); return redirect()->route('terms')->with('success', '利用規約が更新されました'); + } - return view('admin.terms.edit', compact('term', 'cities')); } + + // 詳細表示 public function info($id) { @@ -95,17 +99,24 @@ class TermsController extends Controller return view('admin.terms.info', compact('term')); } - // 削除処理(複数) + // 削除処理(単一・複数対応) public function delete(Request $request) { - $ids = $request->input('id', []); // 修正点:'pk' → 'id' + $request->validate([ + 'pk' => 'required', + 'pk.*' => 'integer', // 配列なら中身は整数 + ]); - if (!empty($ids)) { - Term::destroy($ids); - return redirect()->route('terms')->with('success', '削除しました'); + $arr_pk = $request->input('pk'); + $ids = is_array($arr_pk) ? $arr_pk : [$arr_pk]; + + $deleted = Term::destroy($ids); + + if ($deleted > 0) { + return redirect()->route('terms')->with('success', __('削除成功しました。')); + } else { + return redirect()->route('terms')->with('error', __('削除に失敗しました。')); } - - return redirect()->route('terms')->with('error', '削除対象が見つかりません'); } // CSVインポート(仮) diff --git a/app/Models/Term.php b/app/Models/Term.php index ba3037e..1e82489 100644 --- a/app/Models/Term.php +++ b/app/Models/Term.php @@ -34,4 +34,11 @@ class Term extends Model { return self::all(); } + public static function deleteByPk($ids) + { + if (!is_array($ids)) { + $ids = [$ids]; + } + return self::whereIn('terms_id', $ids)->delete(); + } } diff --git a/resources/js/app.js b/resources/js/app.js index bb22939..0822146 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -29,6 +29,7 @@ $('#checkbox_all').on('ifChecked ifUnchecked', function (event) { }); $('#delete').on('click', function () { + $.confirm({ title: '確認ダイアログ。', content: '!※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。\n' + @@ -159,4 +160,43 @@ $('.register').on('click', function (e) { } } }); -}); \ No newline at end of file +}); + +// 編集画面専用 登録ボタン +$('#register_edit').on('click', function (e) { + e.preventDefault(); + $.confirm({ + title: '確認ダイアログ', + content: '登録してよろしいですか?', + buttons: { + ok: { + text: "はい", + btnClass: 'btn-primary', + action: function () { + $("#form_edit").submit(); // 更新処理 + } + }, + いいえ: function () {} + } + }); +}); + +// 編集画面専用 削除ボタン +$('#delete_edit').on('click', function (e) { + e.preventDefault(); + $.confirm({ + title: '確認ダイアログ', + content: 'このレコードを削除してよろしいですか?', + buttons: { + ok: { + text: "はい", + btnClass: 'btn-primary', + action: function () { + $("#form_delete").submit(); // 削除処理 + } + }, + いいえ: function () {} + } + }); +}); + diff --git a/resources/lang/ja/validation.php b/resources/lang/ja/validation.php index 65e5f21..efbef22 100644 --- a/resources/lang/ja/validation.php +++ b/resources/lang/ja/validation.php @@ -378,6 +378,15 @@ return [ 'regular_class_6' => '定期種別6', 'regular_class_12' => '定期種別12', 'memo' => '備考', +// SWA-88 + 'city_id' => '市区ID', + 'terms_revision' => 'リビジョン', + 'terms_effective_date' => '契約内容有効日', + 'terms_type' => '契約内容種別', + 'terms_text' => '契約内容', + 'use_flag' => '契約内容フラグ', + 'terms_created_at' => '契約内容作成日', + 'terms_updated_at' => '契約内容更新日', ], ]; diff --git a/resources/views/admin/terms/_form.blade.php b/resources/views/admin/terms/_form.blade.php index 004d026..62c9467 100644 --- a/resources/views/admin/terms/_form.blade.php +++ b/resources/views/admin/terms/_form.blade.php @@ -4,109 +4,142 @@
{{ Session::get('error') }}
@endif -
-
-
-
- {{-- 利用契約ID --}} - @if($isEdit || $isInfo) -
- -
- +
+
+ {{-- バリデーションエラー表示 --}} + @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
-
@endif - {{-- 市区ID --}} -
- -
- -
-
- - {{-- 使用中 --}} -
- -
-
- use_flag ?? '') == 1) checked @endif @if($isInfo) disabled @endif> - -
-
- use_flag ?? '') == 0) checked @endif @if($isInfo) disabled @endif> - -
-
-
- - {{-- リビジョン --}} -
- -
- -
-
- - {{-- 契約内容 --}} -
- -
- -
-
- - {{-- 備考 --}} -
- -
- -
-
- - {{-- 使用開始日 --}} -
- -
- -
-
- - {{-- 登録・削除 ボタン --}} -
- @if($isInfo) - {{-- 詳細画面:編集に遷移 --}} - - 編集 - - @else - {{-- 新規/編集 共通フォーム --}} - - - {{-- 編集時のみ削除可能 --}} - @if($isEdit && isset($term->terms_id)) -
- @csrf - @method('DELETE') - -
- @endif +
+ @if($isEdit) + {{-- 利用規約ID --}} +
+ +
+
+
+ +
+
@endif + + {{-- 市区ID --}} +
+ +
+
+
+ +
+
+ + {{-- 使用中 --}} +
+ +
+
+
+ use_flag ?? '') == 1 ? 'checked' : '' }}> + +
+
+ use_flag ?? '') == 0 ? 'checked' : '' }}> + +
+
+ + {{-- リビジョン --}} +
+ +
+
+
+ +
+
+ + {{-- 契約内容 --}} +
+ +
+
+
+ +
+
+ + {{-- 備考 --}} +
+ +
+
+
+ +
+
+ + {{-- 使用開始日 --}} +
+ +
+
+
+
+
+
+ + + {{-- ▼ 下部ボタン --}} +
+ + {{-- 登録ボタン --}} + @if($isEdit) + {{-- 編集画面用 --}} + + @else + {{-- 新規画面用 --}} + + @endif + + {{-- 削除ボタン(編集時のみ表示) --}} + @if($isEdit && !empty($term->terms_id)) + + @endif +
+ +
-
-
-
+ + diff --git a/resources/views/admin/terms/add.blade.php b/resources/views/admin/terms/add.blade.php index 2ad9201..6ce00f9 100644 --- a/resources/views/admin/terms/add.blade.php +++ b/resources/views/admin/terms/add.blade.php @@ -6,7 +6,7 @@
-

新規

+

新規登録