diff --git a/app/Http/Controllers/SealReissueController.php b/app/Http/Controllers/SealReissueController.php new file mode 100644 index 0000000..afe5c84 --- /dev/null +++ b/app/Http/Controllers/SealReissueController.php @@ -0,0 +1,96 @@ +where('user_id', $user_id)->value('user_name'); + $contract = DB::table('regular_contract') + ->join('park', 'regular_contract.park_id', '=', 'park.park_id') + ->where('contract_id', $contract_id) + ->select('regular_contract.contract_id', 'park.park_name') + ->first(); + + \Log::info('シール再発行確認画面にアクセス', [ + 'user_id' => $user_id, + ]); + + return view('regular_contract.seal_reissue', [ + 'contract' => $contract, + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 + 'user_name' => $user_name ? $user_name : '', // ユーザー名(ヘッダー用) + ]); + } + + public function reason($contract_id) + { + $user_id = session('user_id'); + if (!$user_id) { + return redirect('/login'); + } + $user_name = DB::table('user')->where('user_id', $user_id)->value('user_name'); + + \Log::info('シール再発行理由入力画面にアクセス', [ + 'user_id' => $user_id, + ]); + + return view('regular_contract.seal_reissue_reason', [ + 'contract_id' => $contract_id, + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 + 'user_name' => $user_name ? $user_name : '', // ユーザー名(ヘッダー用) + ]); + } + + public function complete(Request $request, $contract_id) + { + $user_id = session('user_id'); + if (!$user_id) { + return redirect('/login'); + } + $user_name = DB::table('user')->where('user_id', $user_id)->value('user_name'); + + $validated = $request->validate([ + 'reason' => ['required'], + 'other_reason' => [ + 'nullable', + 'string', + 'max:255', + 'regex:/^[\x20-\x7Eぁ-んァ-ヶ一-龠々ーa-zA-Z0-90-9a-zA-Z、。・「」『』()【】[]{}〈〉《》!?:;…ー~\s\r\n]+$/u', + 'required_if:reason,その他' + ], + ], [ + 'reason.required' => '理由を選択してください。', + 'other_reason.max' => 'その他の理由は255文字以内で入力してください。', + 'other_reason.regex' => 'その他の理由に使用できない文字が含まれています。', + 'other_reason.required_if' => 'その他を選択した場合は理由を入力してください。' + ]); + + $contract = DB::table('regular_contract') + ->join('park', 'regular_contract.park_id', '=', 'park.park_id') + ->where('contract_id', $contract_id) + ->select('regular_contract.contract_id', 'park.park_name') + ->first(); + + $reason = $request->input('reason'); + $other_reason = $request->input('other_reason'); + + \Log::info('シール再発行申請完了画面にアクセス', [ + 'user_id' => $user_id, + ]); + + return view('regular_contract.seal_reissue_complete', [ + 'active_menu' => 'SWC-4-1', // マイページメニューの選択状態用 + 'user_name' => $user_name ? $user_name : '', // ユーザー名(ヘッダー用) + 'contract' => $contract + ]); + } +} diff --git a/app/Http/Controllers/UserTagReissueController.php b/app/Http/Controllers/UserTagReissueController.php new file mode 100644 index 0000000..a2f9f61 --- /dev/null +++ b/app/Http/Controllers/UserTagReissueController.php @@ -0,0 +1,45 @@ +where('user_id', $user_id)->first(); + + \Log::info('タグ再発行申請画面にアクセス', [ + 'user_id' => $user_id, + ]); + + return view('user.tag_reissue', [ + 'user' => $user, + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 + 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) + ]); + } + + public function complete() + { + $user_id = session('user_id'); + if (!$user_id) { + return redirect('/login'); + } + $user = DB::table('user')->where('user_id', $user_id)->first(); + + \Log::info('タグ再発行申請完了画面にアクセス', [ + 'user_id' => $user_id, + ]); + + return view('user.tag_reissue_complete', [ + 'active_menu' => 'SWC-1-1', // マイページメニューの選択状態用 + 'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用) + ]); + } +} diff --git a/resources/views/regular_contract/info.blade.php b/resources/views/regular_contract/info.blade.php index 17efdaf..f72020c 100644 --- a/resources/views/regular_contract/info.blade.php +++ b/resources/views/regular_contract/info.blade.php @@ -262,26 +262,35 @@ return null; @endif - @php - $has_receipt = DB::table('inv_publish')->where('contract_id', $contract->contract_id)->exists(); - @endphp - @if($has_receipt) - @if($bg == 'alert-warning') - 領収書再発行 - @elseif($bg == 'alert-danger') - 領収書再発行 - @else - 領収書再発行 - @endif - @else - @if($bg == 'alert-warning') - 領収書発行 - @elseif($bg == 'alert-danger') - 領収書発行 - @else - 領収書発行 - @endif - @endif +
+ @php + $has_receipt = DB::table('inv_publish')->where('contract_id', $contract->contract_id)->exists(); + @endphp + @if($has_receipt) + @if($bg == 'alert-warning') + 領収書再発行 + @elseif($bg == 'alert-danger') + 領収書再発行 + @else + 領収書再発行 + @endif + @else + @if($bg == 'alert-warning') + 領収書発行 + @elseif($bg == 'alert-danger') + 領収書発行 + @else + 領収書発行 + @endif + @endif + @if($bg == 'alert-warning') + シール再発行 + @elseif($bg == 'alert-danger') + シール再発行 + @else + シール再発行 + @endif +
diff --git a/resources/views/regular_contract/seal_reissue.blade.php b/resources/views/regular_contract/seal_reissue.blade.php new file mode 100644 index 0000000..8faeb3e --- /dev/null +++ b/resources/views/regular_contract/seal_reissue.blade.php @@ -0,0 +1,27 @@ +@extends('layouts.app') +@section('content') +
+
+

定期契約情報確認 > シール再発行

+
+
+
+

選択した駐輪場

+
+
+

+ 定期契約ID: {{ $contract->contract_id }}
{{ $contract->park_name }}
+

+


こちらのシールを再発行します。
よろしいですか?

+
+
+
+ 戻る +
+
+ 進む +
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/regular_contract/seal_reissue_complete.blade.php b/resources/views/regular_contract/seal_reissue_complete.blade.php new file mode 100644 index 0000000..a1dc50b --- /dev/null +++ b/resources/views/regular_contract/seal_reissue_complete.blade.php @@ -0,0 +1,20 @@ +@extends('layouts.app') +@section('content') +
+
+

定期契約情報確認 > シール再発行

+
+
+
+

+ 定期契約ID: {{ $contract->contract_id }}
+ {{ $contract->park_name }} +

+


こちらのシールの再発行準備が整いました。
上記駐輪場にてシールをお受け取りください。

+
+ +
+
+@endsection \ No newline at end of file diff --git a/resources/views/regular_contract/seal_reissue_reason.blade.php b/resources/views/regular_contract/seal_reissue_reason.blade.php new file mode 100644 index 0000000..8882dc6 --- /dev/null +++ b/resources/views/regular_contract/seal_reissue_reason.blade.php @@ -0,0 +1,86 @@ +@extends('layouts.app') +@section('content') +
+
+

ユーザー情報確認 > シール再発行理由

+
+ @if ($errors->any()) +
+ @foreach ($errors->all() as $error) +
{{ $error }}
+ @endforeach +
+ @endif +
+
+

再発行手続き

+
+
+ @csrf +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ 【再発行に関する注意事項】
+ 2回以上の再発行には別途手続きが必要です。
+ 紛失にはご注意ください。 +
+
+
+
+ 戻る +
+
+ +
+
+
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/user/info.blade.php b/resources/views/user/info.blade.php index 5358ad0..ef04855 100644 --- a/resources/views/user/info.blade.php +++ b/resources/views/user/info.blade.php @@ -3,9 +3,9 @@ @section('content')
@if (session('success')) -
- {{ session('success') }} -
+
+ {{ session('success') }} +
@endif

ユーザー情報確認 > ユーザー情報

@@ -87,9 +87,9 @@
@if(!empty($user->photo_filename1)) -

+

@else -

+

@endif
@@ -97,9 +97,9 @@
@if(!empty($user->photo_filename2)) -

+

@else -

+

@endif
@@ -114,6 +114,9 @@ +
diff --git a/resources/views/user/tag_reissue.blade.php b/resources/views/user/tag_reissue.blade.php new file mode 100644 index 0000000..7caa885 --- /dev/null +++ b/resources/views/user/tag_reissue.blade.php @@ -0,0 +1,83 @@ +@extends('layouts.app') +@section('content') +
+
+

ユーザー情報確認 > タグ再発行申請

+
+
+
+
タグ再発行を行うお客様の情報をご確認ください。
+

住所、電話番号、メールアドレス等に変更がある場合、再発行を申請する前にユーザー情報確認から
お客様の情報を最新状態へ更新をお願いいたします。

+
+
+
+ +
+
+

{{ $user->user_name }}

+
+
+ +
+
+

{{ $user->user_phonetic }}

+
+
+ +
+
+

{{ $user->user_gender ?? '未入力' }}

+
+
+ +
+
+

{{ $user->user_regident_zip }}{{ $user->user_regident_pre }}{{ $user->user_regident_city }}{{ $user->user_regident_add }}

+
+ +
+ +
+
+

{{ $user->user_homephone ?? '未入力' }}

+
+ +
+ +
+
+

{{ $user->user_mobile ?? '未入力' }}

+
+ +
+ +
+
+

{{ $user->user_primemail }}

+
+
+ +
+
+

{{ $user->user_submail ?? '未入力' }}

+
+
+ +
+
+

********

+
+ + + + +
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/user/tag_reissue_complete.blade.php b/resources/views/user/tag_reissue_complete.blade.php new file mode 100644 index 0000000..fed57e6 --- /dev/null +++ b/resources/views/user/tag_reissue_complete.blade.php @@ -0,0 +1,17 @@ +@extends('layouts.app') +@section('content') +
+
+

ユーザー情報確認 > タグ再発行申請完了

+
+
+
+

タグの再発行申請が完了しました。

+

現在オペレーターが確認中です。
タグの再発行までいましばらくお待ちください。

+ +
+
+
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 2b79e5a..a1dc54b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -16,11 +16,13 @@ use App\Http\Controllers\UserInfoController; use App\Http\Controllers\UserEditController; use App\Http\Controllers\UserEditConfirmController; use App\Http\Controllers\UserWithdrawController; +use App\Http\Controllers\UserTagReissueController; use App\Http\Controllers\RegularContractController; use App\Http\Controllers\RegularContractCreateController; use App\Http\Controllers\ParkingSearchController; use App\Http\Controllers\ParkWaitlistController; use App\Http\Controllers\ReceiptController; +use App\Http\Controllers\SealReissueController; use App\Http\Controllers\ParkDetailController; use App\Http\Controllers\UserInformationController; @@ -89,6 +91,10 @@ Route::get('/user/edit/verify', [UserEditConfirmController::class, 'verify'])->n Route::get('/user/withdraw', [UserWithdrawController::class, 'showConfirm'])->name('user.withdraw'); Route::post('/user/withdraw/confirm', [UserWithdrawController::class, 'withdraw'])->name('user.withdraw.confirm'); +// タグ再発行 +Route::get('/user/tag_reissue', [UserTagReissueController::class, 'index'])->name('user.tag_reissue'); +Route::get('/user/tag_reissue/complete', [UserTagReissueController::class, 'complete'])->name('user.tag_reissue.complete'); + // 定期契約情報確認 Route::get('regular_contract/info', [RegularContractController::class, 'showInfo'])->name('regular_contract.info'); @@ -97,6 +103,11 @@ Route::get('receipt/input/{contract_id}', [ReceiptController::class, 'input'])-> Route::get('receipt/download/{contract_id}', [ReceiptController::class, 'download'])->name('receipt.download'); Route::post('receipt/issue/{contract_id}', [ReceiptController::class, 'issue']); +// シール再発行 +Route::get('/seal/reissue/{contract_id}', [SealReissueController::class, 'index'])->name('seal.reissue'); +Route::get('/seal/reissue/reason/{contract_id}', [SealReissueController::class, 'reason'])->name('seal.reissue.reason'); +Route::post('/seal/reissue/complete/{contract_id}', [SealReissueController::class, 'complete'])->name('seal.reissue.complete'); + // 新規定期契約 Route::get('regular_contract/create', [RegularContractCreateController::class, 'show'])->name('regular_contract.create'); Route::get('/api/park-detail/{park_id}', [ParkDetailController::class, 'show']);