diff --git a/app/Http/Controllers/Admin/ZoneController.php b/app/Http/Controllers/Admin/ZoneController.php new file mode 100644 index 0000000..1834da8 --- /dev/null +++ b/app/Http/Controllers/Admin/ZoneController.php @@ -0,0 +1,130 @@ +input('action') === 'reset') { + return redirect()->route('zones'); + } + + // ソート設定 + $sort = $request->input('sort', 'zone_id'); + $sort_type = $request->input('sort_type', 'desc'); + + // ベースクエリ + $query = Zone::query(); + + // === 絞り込み条件 === + if ($request->filled('zone_id')) { + $query->where('zone_id', $request->zone_id); + } + if ($request->filled('zone_name')) { + $query->where('zone_name', 'LIKE', "%{$request->zone_name}%"); + } + if ($request->filled('park_id')) { + $query->where('park_id', $request->park_id); + } + if ($request->filled('ptype_id')) { + $query->where('ptype_id', $request->ptype_id); + } + if ($request->filled('psection_id')) { + $query->where('psection_id', $request->psection_id); + } + if ($request->has('use_flag') && $request->use_flag !== '') { + $query->where('use_flag', $request->use_flag); + } + + // ページネーション + $zones = $query->orderBy($sort, $sort_type)->paginate(20); + + return view('admin.zones.list', compact( + 'zones', 'sort', 'sort_type' + )); + } + + /** + * 新規登録 + */ + public function add(Request $request) + { + if ($request->isMethod('post')) { + $data = $this->validateZone($request); + Zone::create($data); + + return redirect()->route('zones') + ->with('success', 'ゾーンを登録しました'); + } + + $zone = new Zone(); + return view('admin.zones.add', compact('zone')); + } + + /** + * 編集 + */ + public function edit($id, Request $request) + { + $zone = Zone::findOrFail($id); + + if ($request->isMethod('post')) { + $data = $this->validateZone($request); + $zone->update($data); + + return redirect()->route('zones') + ->with('success', 'ゾーンを更新しました'); + } + + return view('admin.zones.edit', compact('zone')); + } + + /** + * 詳細表示 + */ + public function info($id) + { + $zone = Zone::findOrFail($id); + + return view('admin.zones.info', compact('zone')); + } + + /** + * 削除 + */ + public function delete(Request $request) + { + $id = $request->input('id'); + if ($id) { + Zone::destroy($id); + return redirect()->route('zones')->with('success', 'ゾーンを削除しました'); + } + return redirect()->route('zones')->with('error', '削除対象が指定されていません'); + } + + /** + * バリデーション共通化 + */ + private function validateZone(Request $request) + { + return $request->validate([ + 'zone_name' => 'required|string|max:50', + 'park_id' => 'required|integer', + 'ptype_id' => 'nullable|integer', + 'psection_id' => 'nullable|integer', + 'zone_number' => 'nullable|integer|min:0', + 'zone_standard' => 'nullable|integer|min:0', + 'zone_tolerance' => 'nullable|integer|min:0', + 'use_flag' => 'nullable|boolean', + 'memo' => 'nullable|string|max:255', + ]); + } +} diff --git a/app/Models/Zone.php b/app/Models/Zone.php new file mode 100644 index 0000000..3d3e94d --- /dev/null +++ b/app/Models/Zone.php @@ -0,0 +1,44 @@ +
| - - | ++ + | {{ __('設定ID') }} | {{ __('編集マスタ') }} | {{ __('ウェブ参照マスタ') }} | diff --git a/resources/views/admin/settlement_transactions/list.blade.php b/resources/views/admin/settlement_transactions/list.blade.php index 50a23cd..aebd6f6 100644 --- a/resources/views/admin/settlement_transactions/list.blade.php +++ b/resources/views/admin/settlement_transactions/list.blade.php @@ -87,9 +87,10 @@
|---|
| - + | + | +決済トランザクションID | 定期契約ID | ステータス | @@ -110,10 +111,11 @@
|---|---|---|---|---|
|
-
+
編集
|
+
{{ $item->settlement_transaction_id }} | {{ $item->contract_id }} | {{ $item->status }} | diff --git a/resources/views/admin/zones/_form.blade.php b/resources/views/admin/zones/_form.blade.php new file mode 100644 index 0000000..8646bf6 --- /dev/null +++ b/resources/views/admin/zones/_form.blade.php @@ -0,0 +1,93 @@ +@csrf +