Compare commits
No commits in common. "e54a79575d2f5255d91d8f2a8e00d631400c1b99" and "adc4e7793fb9fd5720bcf8cebd1b612dc8448e81" have entirely different histories.
e54a79575d
...
adc4e7793f
@ -4,11 +4,10 @@ namespace App\Http\Controllers;
|
|||||||
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
class RegularContractController extends Controller
|
class RegularContractController extends Controller
|
||||||
{
|
{
|
||||||
public function showInfo(Request $request)
|
public function showInfo()
|
||||||
{
|
{
|
||||||
$user_id = session('user_id');
|
$user_id = session('user_id');
|
||||||
if (!$user_id) {
|
if (!$user_id) {
|
||||||
@ -53,24 +52,13 @@ class RegularContractController extends Controller
|
|||||||
)
|
)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
if ($request->route()->getName() === 'regular_contract.info') {
|
|
||||||
// 契約情報表示画面の処理
|
|
||||||
\Log::info('契約情報表示画面にアクセス', [
|
\Log::info('契約情報表示画面にアクセス', [
|
||||||
'user_id' => $user_id,
|
'user_id' => $user_id,
|
||||||
]);
|
]);
|
||||||
$view = 'regular_contract.info';
|
|
||||||
$active_menu = 'SWC-3-1';
|
|
||||||
} else {
|
|
||||||
// 契約更新画面の処理
|
|
||||||
\Log::info('契約更新画面にアクセス', [
|
|
||||||
'user_id' => $user_id,
|
|
||||||
]);
|
|
||||||
$view = 'regular_contract.update';
|
|
||||||
$active_menu = 'SWC-4-1';
|
|
||||||
}
|
|
||||||
|
|
||||||
return view($view, [
|
|
||||||
'active_menu' => $active_menu, // マイページメニューの選択状態用
|
return view('regular_contract.info', [
|
||||||
|
'active_menu' => 'SWC-3-1', // マイページメニューの選択状態用
|
||||||
'user_name' => $user_name, // ユーザー名(ヘッダー用)
|
'user_name' => $user_name, // ユーザー名(ヘッダー用)
|
||||||
'contracts' => $contracts,
|
'contracts' => $contracts,
|
||||||
]);
|
]);
|
||||||
@ -102,7 +90,6 @@ class RegularContractController extends Controller
|
|||||||
'contract_cancel_flag' => 0,
|
'contract_cancel_flag' => 0,
|
||||||
'800m_flag' => 0,
|
'800m_flag' => 0,
|
||||||
'psection_id' => $old_contract->psection_id,
|
'psection_id' => $old_contract->psection_id,
|
||||||
'ptype_id' => $old_contract->ptype_id,
|
|
||||||
'zone_id' => $old_contract->zone_id,
|
'zone_id' => $old_contract->zone_id,
|
||||||
'pplace_no' => $old_contract->pplace_no
|
'pplace_no' => $old_contract->pplace_no
|
||||||
]);
|
]);
|
||||||
@ -137,7 +124,7 @@ class RegularContractController extends Controller
|
|||||||
->first();
|
->first();
|
||||||
|
|
||||||
return view('regular_contract.confirm_category', [
|
return view('regular_contract.confirm_category', [
|
||||||
'active_menu' => 'SWC-4-1', // マイページメニューの選択状態用
|
'active_menu' => 'SWC-4-3', // マイページメニューの選択状態用
|
||||||
'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用)
|
'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用)
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'contract' => $contract
|
'contract' => $contract
|
||||||
@ -147,6 +134,15 @@ class RegularContractController extends Controller
|
|||||||
/**
|
/**
|
||||||
* 契約区分確認画面の「確認して進む」ボタン押下時の分岐処理
|
* 契約区分確認画面の「確認して進む」ボタン押下時の分岐処理
|
||||||
* 本人確認書類アップロード画面 or 利用期間選択画面へ遷移
|
* 本人確認書類アップロード画面 or 利用期間選択画面へ遷移
|
||||||
|
*
|
||||||
|
* 分岐条件は下記の通り:
|
||||||
|
* 1. 利用者分類(一般/学生):user.user_categoryid=usertype.user_categoryidのusertype_subject1で判別
|
||||||
|
* 2. 利用者分類(減免/減免でない):regular_contract.contract_reduction=1なら減免
|
||||||
|
* 3. 駐輪場マスタの設定(減免確認種別):reduction_confirm.reduction_confirm_type(0=確認しない,1=年1回,2=毎更新時)
|
||||||
|
* 4. 駐輪場マスタの設定(年度跨ぎ):park.overyear_flag(0/NULL=年跨ぎなし,1=年跨ぎあり)
|
||||||
|
* 5. 駐輪場マスタの設定(学生証確認種別):park.student_id_confirm_type(0=確認しない,1=年1回,2=毎更新時)
|
||||||
|
* 6. 契約期間に4/1が含まれる場合は年度跨ぎ判定に利用
|
||||||
|
* 7. ユーザー区分が「学生」の場合のみ、契約終了日が卒業年月日を超える場合も本人確認書類アップロード画面へ
|
||||||
*/
|
*/
|
||||||
public function confirmCategoryNext($contract_id)
|
public function confirmCategoryNext($contract_id)
|
||||||
{
|
{
|
||||||
@ -174,56 +170,39 @@ class RegularContractController extends Controller
|
|||||||
// 分岐条件
|
// 分岐条件
|
||||||
$reduction_confirm_type = isset($reduction_confirm) ? $reduction_confirm->reduction_confirm_type : 0;
|
$reduction_confirm_type = isset($reduction_confirm) ? $reduction_confirm->reduction_confirm_type : 0;
|
||||||
$student_id_confirm_type = isset($park) ? $park->student_id_confirm_type : 0;
|
$student_id_confirm_type = isset($park) ? $park->student_id_confirm_type : 0;
|
||||||
// $overyear_flag = isset($park) ? $park->overyear_flag : 0;
|
$overyear_flag = isset($park) ? $park->overyear_flag : 0;
|
||||||
|
|
||||||
// 契約期間に4/1が含まれるか判定
|
// 契約期間に4/1が含まれるか判定
|
||||||
// $contract_start = new \DateTime($contract->contract_periods);
|
$contract_start = new \DateTime($contract->contract_periods);
|
||||||
// $contract_end = new \DateTime($contract->contract_periode);
|
$contract_end = new \DateTime($contract->contract_periode);
|
||||||
// 4/1の年は契約開始年
|
// 4/1の年は契約開始年
|
||||||
// $april_first = new \DateTime($contract_start->format('Y') . '-04-01');
|
$april_first = new \DateTime($contract_start->format('Y') . '-04-01');
|
||||||
// 契約終了日が4/1より前なら翌年の4/1も考慮
|
// 契約終了日が4/1より前なら翌年の4/1も考慮
|
||||||
/**if ($contract_end < $april_first) {
|
if ($contract_end < $april_first) {
|
||||||
$april_first->modify('+1 year');
|
$april_first->modify('+1 year');
|
||||||
}
|
}
|
||||||
$includes_april_first = ($contract_start <= $april_first && $contract_end >= $april_first);*/
|
$includes_april_first = ($contract_start <= $april_first && $contract_end >= $april_first);
|
||||||
|
|
||||||
// ユーザー区分が「学生」の場合のみ卒業年月日判定
|
// ユーザー区分が「学生」の場合のみ卒業年月日判定
|
||||||
/**$exceeds_graduation = false;
|
$exceeds_graduation = false;
|
||||||
if (isset($usertype) && $usertype->usertype_subject1 === '学生') {
|
if (isset($usertype) && $usertype->usertype_subject1 === '学生') {
|
||||||
$graduation_date = isset($user) ? $user->user_graduate : null;
|
$graduation_date = isset($user) ? $user->user_graduate : null;
|
||||||
if ($graduation_date) {
|
if ($graduation_date) {
|
||||||
$graduation_dt = new \DateTime($graduation_date);
|
$graduation_dt = new \DateTime($graduation_date);
|
||||||
$exceeds_graduation = ($contract_end > $graduation_dt);
|
$exceeds_graduation = ($contract_end > $graduation_dt);
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
// 本人確認書類アップロード画面へ遷移する条件
|
// 本人確認書類アップロード画面へ遷移する条件
|
||||||
// 1. reduction_confirm_typeが1(年1回)または2(毎更新時)
|
// 1. reduction_confirm_typeが1(年1回)または2(毎更新時)
|
||||||
// 2. student_id_confirm_typeが1(年1回)または2(毎更新時)
|
// 2. student_id_confirm_typeが1(年1回)または2(毎更新時)
|
||||||
// 3. 年度跨ぎ(overyear_flag=1以外)かつ契約期間に4/1が含まれる場合
|
// 3. 年度跨ぎ(overyear_flag=1以外)かつ契約期間に4/1が含まれる場合
|
||||||
$need_identity = false;
|
if (
|
||||||
// 減免確認種別:reduction_confirm_type=1は年度跨ぎのみ、2は無条件で本人確認
|
in_array($reduction_confirm_type, [1, 2]) ||
|
||||||
/**if ($reduction_confirm_type == 1 && $includes_april_first) {
|
in_array($student_id_confirm_type, [1, 2]) ||
|
||||||
$need_identity = true;
|
($overyear_flag != 1 && $includes_april_first) ||
|
||||||
}*/
|
$exceeds_graduation
|
||||||
/**if ($reduction_confirm_type == 2) {*/
|
) {
|
||||||
if (in_array($reduction_confirm_type, [1, 2])) {
|
|
||||||
$need_identity = true;
|
|
||||||
}
|
|
||||||
// 学生証確認種別:学生の場合かつ減免でない場合のみ判定
|
|
||||||
if (isset($usertype) && $usertype->usertype_subject1 === '学生' && in_array($student_id_confirm_type, [1, 2]) && $contract->contract_reduction == 0) {
|
|
||||||
$need_identity = true;
|
|
||||||
}
|
|
||||||
// 年度跨ぎ判定
|
|
||||||
/**if ($overyear_flag != 1 && $includes_april_first) {
|
|
||||||
$need_identity = true;
|
|
||||||
}*/
|
|
||||||
// 卒業年月日超過判定
|
|
||||||
/**if ($exceeds_graduation) {
|
|
||||||
$need_identity = true;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if ($need_identity) {
|
|
||||||
// 本人確認書類アップロード画面へ
|
// 本人確認書類アップロード画面へ
|
||||||
return redirect()->route('regular_contract.upload_identity', ['contract_id' => $contract_id]);
|
return redirect()->route('regular_contract.upload_identity', ['contract_id' => $contract_id]);
|
||||||
} else {
|
} else {
|
||||||
@ -231,226 +210,4 @@ class RegularContractController extends Controller
|
|||||||
return redirect()->route('regular_contract.select_period', ['contract_id' => $contract_id]);
|
return redirect()->route('regular_contract.select_period', ['contract_id' => $contract_id]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function uploadIdentity($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.upload_identity', [
|
|
||||||
'active_menu' => 'SWC-4-1', // マイページメニューの選択状態用
|
|
||||||
'user_name' => $user_name, // ユーザー名(ヘッダー用)
|
|
||||||
'contract_id' => $contract_id,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function uploadIdentitySubmit(Request $request, $contract_id)
|
|
||||||
{
|
|
||||||
$user_id = session('user_id');
|
|
||||||
if (!$user_id) {
|
|
||||||
return redirect('/login');
|
|
||||||
}
|
|
||||||
|
|
||||||
// バリデーション
|
|
||||||
$rules = [
|
|
||||||
'user_idcard' => 'required|file|mimes:jpeg,png,jpg,gif,webp',
|
|
||||||
'user_idcard2' => 'nullable|file|mimes:jpeg,png,jpg,gif,webp',
|
|
||||||
];
|
|
||||||
$messages = [
|
|
||||||
'user_idcard.required' => '本人確認書類をアップロードしてください。',
|
|
||||||
'user_idcard.file' => '本人確認書類(おもて)はファイルで指定してください。',
|
|
||||||
'user_idcard.mimes' => '本人確認書類(おもて)は画像ファイルで指定してください。',
|
|
||||||
'user_idcard2.file' => '本人確認書類(ウラ)はファイルで指定してください。',
|
|
||||||
'user_idcard2.mimes' => '本人確認書類(ウラ)は画像ファイルで指定してください。',
|
|
||||||
];
|
|
||||||
|
|
||||||
$validator = \Validator::make($request->all(), $rules, $messages);
|
|
||||||
|
|
||||||
if ($validator->fails()) {
|
|
||||||
return redirect()->route('regular_contract.upload_identity', ['contract_id' => $contract_id])
|
|
||||||
->withErrors($validator)
|
|
||||||
->withInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
// おもて画像保存
|
|
||||||
$front = $request->file('user_idcard');
|
|
||||||
$filename_front = uniqid('photo1_') . '.' . $front->getClientOriginalExtension();
|
|
||||||
$front->storeAs('photo', $filename_front, 'public');
|
|
||||||
// userテーブルに保存 本人確認書類チェック済フラグや更新日時も更新項目に追加
|
|
||||||
$updateData = [
|
|
||||||
'photo_filename1' => $filename_front,
|
|
||||||
'user_idcard_chk_flag' => 1,
|
|
||||||
'user_chk_day' => null,
|
|
||||||
'user_chk_opeid' => null,
|
|
||||||
'updated_at' => now(),
|
|
||||||
];
|
|
||||||
// ウラ画像がある場合保存し更新項目に追加
|
|
||||||
if ($request->hasFile('user_idcard2')) {
|
|
||||||
$back = $request->file('user_idcard2');
|
|
||||||
$filename_back = uniqid('photo2_') . '.' . $back->getClientOriginalExtension();
|
|
||||||
$back->storeAs('photo', $filename_back, 'public');
|
|
||||||
$updateData['photo_filename2'] = $filename_back;
|
|
||||||
}
|
|
||||||
DB::table('user')->where('user_id', $user_id)->update($updateData);
|
|
||||||
|
|
||||||
// 更新対象の旧契約を検索
|
|
||||||
$old_contract_id = DB::table('regular_contract')->where('contract_id', $contract_id)->value('old_contract_id');
|
|
||||||
|
|
||||||
// 旧契約を契約更新済に更新
|
|
||||||
DB::table('regular_contract')->where('contract_id', $old_contract_id)->update(['contract_renewal' => 0]);
|
|
||||||
|
|
||||||
// 利用者マスタから学校とユーザー名、定期契約マスタから駐輪場IDを取得
|
|
||||||
$user = DB::table('user')->where('user_id', $user_id)->first();
|
|
||||||
$park_id = DB::table('regular_contract')->where('contract_id', $contract_id)->value('park_id');
|
|
||||||
|
|
||||||
// que_classの分岐
|
|
||||||
$que_class = is_null($user->user_school) ? 1 : 2;
|
|
||||||
|
|
||||||
// オペレーターキュー発行
|
|
||||||
DB::table('operator_que')->insert([
|
|
||||||
'que_class' => $que_class,
|
|
||||||
'user_id' => $user_id,
|
|
||||||
'contract_id' => $contract_id,
|
|
||||||
'park_id' => $park_id,
|
|
||||||
'que_status' => 1,
|
|
||||||
'que_status_comment' => '本人確認手動処理を行ってください',
|
|
||||||
'created_at' => now(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
\Log::info('本人確認書類確認中画面にアクセス', [
|
|
||||||
'user_id' => $user_id,
|
|
||||||
]);
|
|
||||||
|
|
||||||
// 本人確認書類確認中画面へ遷移
|
|
||||||
return view('regular_contract.identity_checking', [
|
|
||||||
'active_menu' => 'SWC-4-1', // マイページメニューの選択状態用
|
|
||||||
'user_name' => $user->user_name // ユーザー名(ヘッダー用)
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function selectPeriod($contract_id)
|
|
||||||
{
|
|
||||||
$user_id = session('user_id');
|
|
||||||
if (!$user_id) {
|
|
||||||
return redirect('/login');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 必要な各マスタ情報を取得
|
|
||||||
$user = DB::table('user')->where('user_id', $user_id)->first();
|
|
||||||
$contract = DB::table('regular_contract')->where('contract_id', $contract_id)->first();
|
|
||||||
// $city_id = DB::table('park')->where('park_id', $contract->park_id)->value('city_id');
|
|
||||||
//$city_name = DB::table('city')->where('city_id', $city_id)->value('city_name');
|
|
||||||
$park = DB::table('park')->where('park_id', $contract->park_id)->first();
|
|
||||||
$city = DB::table('city')->where('city_id', $park->city_id)->first();
|
|
||||||
$regular_type = DB::table('regular_type')->where('city_id', $city->city_id)->first();
|
|
||||||
$usertype = DB::table('usertype')->where('user_categoryid', $contract->user_categoryid)->first();
|
|
||||||
|
|
||||||
// 2重化しているマスタのため現在のテーブル名を取得
|
|
||||||
$master_setting = DB::table('setting')->value('web_master');
|
|
||||||
$tableName = 'price' . $master_setting;
|
|
||||||
|
|
||||||
// 利用者区分に応じた逆利用フラグを取得
|
|
||||||
$inverse_use_flag_column = ($usertype->usertype_subject1 == '一般') ? 'inverse_use_flag1' : 'inverse_use_flag2';
|
|
||||||
$inverse_use_flag = $park->$inverse_use_flag_column;
|
|
||||||
|
|
||||||
if ($inverse_use_flag == 0) {
|
|
||||||
// regident_cityまたはrelate_cityが一致するか
|
|
||||||
$is_same = (
|
|
||||||
strpos($user->user_regident_city, $city->city_name) !== false ||
|
|
||||||
strpos($user->user_relate_city, $city->city_name) !== false
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// regident_cityのみ一致するか
|
|
||||||
$is_same = (strpos($user->user_regident_city, $city->city_name) !== false);
|
|
||||||
}
|
|
||||||
|
|
||||||
$target_subject2 = $is_same ? '区民' : '区民外';
|
|
||||||
$user_categoryid = DB::table('usertype')
|
|
||||||
->where('usertype_subject1', $usertype->usertype_subject1)
|
|
||||||
->where('usertype_subject2', $target_subject2)
|
|
||||||
->where('usertype_subject3', $usertype->usertype_subject3)
|
|
||||||
->value('user_categoryid');
|
|
||||||
|
|
||||||
// 駐輪場所マスタから料金を取得
|
|
||||||
$prices = DB::table($tableName)
|
|
||||||
->where('park_id', $contract->park_id)
|
|
||||||
->where('psection_id', $contract->psection_id)
|
|
||||||
->where('ptype_id', $contract->ptype_id)
|
|
||||||
->where('user_categoryid', $user_categoryid)
|
|
||||||
->get();
|
|
||||||
|
|
||||||
\Log::info('契約区分取得', [
|
|
||||||
'user_categoryid' => $user_categoryid,
|
|
||||||
'target_subject2' => $target_subject2,
|
|
||||||
'park_id' => $contract->park_id,
|
|
||||||
'psection_id' => $contract->psection_id,
|
|
||||||
'ptype_id' => $contract->ptype_id,
|
|
||||||
'prices' => $prices->toArray(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
\Log::info('利用期間選択画面にアクセス', [
|
|
||||||
'user_id' => $user_id,
|
|
||||||
]);
|
|
||||||
|
|
||||||
// 利用期間選択画面へ遷移
|
|
||||||
return view('regular_contract.select_period', [
|
|
||||||
'active_menu' => 'SWC-4-1', // マイページメニューの選択状態用
|
|
||||||
'user_name' => $user->user_name, // ユーザー名(ヘッダー用)
|
|
||||||
'contract_id' => $contract_id,
|
|
||||||
'regular_type' => $regular_type,
|
|
||||||
'prices' => $prices,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function updatePeriod(Request $request)
|
|
||||||
{
|
|
||||||
$user_id = session('user_id');
|
|
||||||
if (!$user_id) {
|
|
||||||
return redirect('/login');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 期間選択チェック
|
|
||||||
$request->validate([
|
|
||||||
'month' => 'required',
|
|
||||||
], [
|
|
||||||
'month.required' => '契約期間が選択されていません。',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$contract_id = $request->input('contract_id');
|
|
||||||
$month = $request->input('month');
|
|
||||||
$price = $request->input('price_' . $month);
|
|
||||||
|
|
||||||
\Log::info('契約期間更新処理', [
|
|
||||||
'month' => $month,
|
|
||||||
'price' => $price,
|
|
||||||
]);
|
|
||||||
$today = now();
|
|
||||||
$day = $today->day;
|
|
||||||
if ($day <= 19) {
|
|
||||||
// 今月の1日
|
|
||||||
$contract_periods = $today->copy()->startOfMonth()->format('Y-m-d');
|
|
||||||
} else {
|
|
||||||
// 翌月の1日
|
|
||||||
$contract_periods = $today->copy()->addMonth()->startOfMonth()->format('Y-m-d');
|
|
||||||
}
|
|
||||||
$contract_periode = Carbon::parse($contract_periods)->addMonths($month - 1)->endOfMonth()->format('Y-m-d');
|
|
||||||
// 契約更新
|
|
||||||
DB::table('regular_contract')->where('contract_id', $contract_id)->update([
|
|
||||||
'enable_months' => $month,
|
|
||||||
'billing_amount' => $price,
|
|
||||||
'contract_periods' => $contract_periods,
|
|
||||||
'contract_periode' => $contract_periode,
|
|
||||||
'updated_at' => now(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
// 完了後はウェルネット決済画面(仮)へリダイレクト
|
|
||||||
return redirect()->route('wellnet.payment');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,6 @@
|
|||||||
if (!isset($active_menu)) $active_menu = '';
|
if (!isset($active_menu)) $active_menu = '';
|
||||||
@endphp
|
@endphp
|
||||||
<section id="my-menu" class="bg-success">
|
<section id="my-menu" class="bg-success">
|
||||||
<style>
|
|
||||||
.navbar-toggler::after,
|
|
||||||
.nav-link::after,
|
|
||||||
.nav-item::after {
|
|
||||||
display: none !important;
|
|
||||||
content: none !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<nav class="navbar navbar-expand-lg navbar-dark">
|
<nav class="navbar navbar-expand-lg navbar-dark">
|
||||||
<a id="my-menu-btn" class="navbar-toggler text-center" href="#navbarSupportedContent" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> マイメニューを開く </a>
|
<a id="my-menu-btn" class="navbar-toggler text-center" href="#navbarSupportedContent" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> マイメニューを開く </a>
|
||||||
@ -18,10 +10,10 @@ if (!isset($active_menu)) $active_menu = '';
|
|||||||
<li class="nav-item {{ $active_menu == 'SWO-4-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWO-4-1.html') }}">マイページトップ<span class="sr-only">(current)</span></a></li>
|
<li class="nav-item {{ $active_menu == 'SWO-4-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWO-4-1.html') }}">マイページトップ<span class="sr-only">(current)</span></a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-1-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/user/info') }}">ユーザー情報確認</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-1-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/user/info') }}">ユーザー情報確認</a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-3-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/regular_contract/info') }}">定期契約情報</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-3-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/regular_contract/info') }}">定期契約情報</a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-4-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/regular_contract/update') }}">契約更新</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-4-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-4-1.html') }}">契約更新</a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-6-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-6-1.html') }}">契約履歴</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-6-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-6-1.html') }}">契約履歴</a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-8-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/regular_contract/create') }}">新規定期契約</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-8-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-8-1.html') }}">新規定期契約</a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-11-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('/park_waitlist') }}">空き待ち状況確認</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-11-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-11-1.html') }}">空き待ち状況確認</a></li>
|
||||||
<li class="nav-item {{ $active_menu == 'SWC-10-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-10-1.html') }}">駐輪場検索</a></li>
|
<li class="nav-item {{ $active_menu == 'SWC-10-1' ? 'active' : '' }}"><a class="nav-link" href="{{ url('SWC-10-1.html') }}">駐輪場検索</a></li>
|
||||||
<li class="nav-item"><a class="nav-link" href="{{ url('../howto.html') }}" target="_blank">このページの使い方</a></li>
|
<li class="nav-item"><a class="nav-link" href="{{ url('../howto.html') }}" target="_blank">このページの使い方</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-2 mb20">
|
<div class="col-6 col-md-2 mb20">
|
||||||
<div class="card text-center border-success">
|
<div class="card text-center border-success">
|
||||||
<a href="{{ url('regular_contract/update') }}" target="_top">
|
<a href="{{ url('SWC-4-1.html') }}" target="_top">
|
||||||
<figure><img src="{{ asset('assets/img/menu-koshin.png') }}" alt="" class="w-75 mt10"></figure>
|
<figure><img src="{{ asset('assets/img/menu-koshin.png') }}" alt="" class="w-75 mt10"></figure>
|
||||||
<p class="text-success">定期契約を<br>更新する</p>
|
<p class="text-success">定期契約を<br>更新する</p>
|
||||||
</a>
|
</a>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-2 mb20">
|
<div class="col-6 col-md-2 mb20">
|
||||||
<div class="card text-center border-success">
|
<div class="card text-center border-success">
|
||||||
<a href="{{ url('regular_contract/create') }}" target="_top">
|
<a href="{{ url('SWC-8-1.html') }}" target="_top">
|
||||||
<figure><img src="{{ asset('assets/img/menu-shinki.png') }}" alt="" class="w-75 mt10"></figure>
|
<figure><img src="{{ asset('assets/img/menu-shinki.png') }}" alt="" class="w-75 mt10"></figure>
|
||||||
<p class="text-success">新規定期契約<br>申し込み</p>
|
<p class="text-success">新規定期契約<br>申し込み</p>
|
||||||
</a>
|
</a>
|
||||||
@ -58,7 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-2 mb20">
|
<div class="col-6 col-md-2 mb20">
|
||||||
<div class="card text-center border-success">
|
<div class="card text-center border-success">
|
||||||
<a href="{{ url('park_waitlist') }}" target="_top">
|
<a href="{{ url('SWC-11-1.html') }}" target="_top">
|
||||||
<figure><img src="{{ asset('assets/img/menu-yoyaku.png') }}" alt="" class="w-75 mt10"></figure>
|
<figure><img src="{{ asset('assets/img/menu-yoyaku.png') }}" alt="" class="w-75 mt10"></figure>
|
||||||
<p class="text-success">空き待ち状況の確認</p>
|
<p class="text-success">空き待ち状況の確認</p>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1,85 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
|
|
||||||
@section('content')
|
|
||||||
<main>
|
|
||||||
<header class="alert alert-success">
|
|
||||||
<h4 class="container">契約更新 > 定期契約を更新する</h4>
|
|
||||||
</header>
|
|
||||||
<section id="" class="container mt30 mb50">
|
|
||||||
<div class="col-12 col-md-8 offset-0 offset-md-2 mb30">
|
|
||||||
<h3 class="alert-success">現在の契約区分をご確認ください。</h3>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12 col-lg-6 mb10 subject-radio offset-0 offset-md-3">
|
|
||||||
@if(isset($contract) && isset($contract->securityreg_display_flag) && $contract->securityreg_display_flag == 1)
|
|
||||||
<p class="text-center">登録している防犯登録番号:{{ $contract->user_securitynum }}</p>
|
|
||||||
@endif
|
|
||||||
@php
|
|
||||||
$usertype = isset($user) && isset($user->user_categoryid) ? DB::table('usertype')->where('user_categoryid', $user->user_categoryid)->first() : null;
|
|
||||||
@endphp
|
|
||||||
<input type="radio" name="subject1" id="user_categoryid_ippan" value="一般" @if(isset($usertype) && $usertype->usertype_subject1 == '一般') checked @endif disabled>
|
|
||||||
<label for="user_categoryid_ippan" class="btn btn-lg btn-block btn-outline-success mb-3">一般</label>
|
|
||||||
<input type="radio" name="subject1" id="user_categoryid_gakusei" value="学生" @if(isset($usertype) && $usertype->usertype_subject1 == '学生') checked @endif disabled>
|
|
||||||
<label for="user_categoryid_gakusei" class="btn btn-lg btn-block btn-outline-success mb-3">学生</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12 col-md-3 offset-0 offset-md-3">
|
|
||||||
<label class="required" for="user_workplace">
|
|
||||||
減免
|
|
||||||
</label>
|
|
||||||
<a class="text-primary" href="#" data-toggle="modal" data-target="#reductionModal">
|
|
||||||
<i
|
|
||||||
style="display:inline-block;width:1.1em;height:1.1em;line-height:1.1em;text-align:center;border-radius:50%;border:1.2px solid #007bff;color:#007bff;font-style:normal;font-weight:bold;font-size:0.95em;background:#fff;">?</i>
|
|
||||||
</a>
|
|
||||||
<!-- 減免説明モーダル -->
|
|
||||||
<div class="modal fade" id="reductionModal" tabindex="-1" aria-labelledby="reductionModalLabel"
|
|
||||||
aria-hidden="true">
|
|
||||||
<div class="modal-dialog modal-lg">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-body">
|
|
||||||
<div>
|
|
||||||
【一般】<br>
|
|
||||||
学生以外の利用者の方<br>
|
|
||||||
【学生】<br>
|
|
||||||
学生の利用者の方<br>
|
|
||||||
【減免】<br>
|
|
||||||
以下に該当される利用者の方が、減免の対象になる場合があります。<br>
|
|
||||||
(例)<br>
|
|
||||||
・高齢者の方<br>
|
|
||||||
・障がい者の方<br>
|
|
||||||
・生活保護を受けられている方<br>
|
|
||||||
・中国残留邦人の方<br>
|
|
||||||
・児童扶養手当を受給されている方<br>
|
|
||||||
詳しくはサポートセンターまでお問い合わせください。<br>
|
|
||||||
TEL:03-5856-4720
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">キャンセル</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="d-flex align-items-center mb-2">
|
|
||||||
<div class="form-check form-check-inline" style="margin-right: 1.5em;">
|
|
||||||
<input class="form-check-input" type="radio" name="subject3" id="yes" value="減免" @if(isset($contract) && $contract->contract_reduction == 1) checked @endif disabled>
|
|
||||||
<label class="form-check-label" for="yes" style="color: #000;">はい</label>
|
|
||||||
</div>
|
|
||||||
<div class="form-check form-check-inline">
|
|
||||||
<input class="form-check-input" type="radio" name="subject3" id="no" value="該当なし" @if(!isset($contract) || $contract->contract_reduction != 1) checked @endif disabled>
|
|
||||||
<label class="form-check-label" for="no" style="color: #000;">いいえ</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12 col-md-6 offset-0 offset-md-3">
|
|
||||||
<p>ご登録の区分・減免について変更がある場合は、お手数ですが以下の<br>電話番号までお問い合わせください。</p>
|
|
||||||
<p>電話:03-5856-4720<br>毎日14時~21時(年末年始休)</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12 col-md-6 offset-0 offset-md-3">
|
|
||||||
<a href="{{ route('regular_contract.confirm_category_next', ['contract_id' => $contract->contract_id]) }}" class="btn btn-lg btn-block btn-success">確認して進む</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
@endsection
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
@section('content')
|
|
||||||
<main>
|
|
||||||
<header class="alert alert-success">
|
|
||||||
<h4 class="container">契約更新 >本人確認書類確認中</h4>
|
|
||||||
</header>
|
|
||||||
<section id="" class="container mt30 mb50">
|
|
||||||
<div class="col-12 col-md-8 offset-0 offset-md-2 mb30">
|
|
||||||
<h3 class="alert-success text-center">ただいま書類確認中です。</h3>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-6 offset-1 offset-md-3 mb30">
|
|
||||||
<p>
|
|
||||||
ご利用者本人確認に最大3営業日お時間を頂戴したく存じます。<br>
|
|
||||||
完了次第、メールにてご連絡いたしますので、しばらくお待ちください。<br><br>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-6 offset-1 offset-md-3 mb30">
|
|
||||||
<a href="{{ url('mypage') }}" class="btn btn-lg btn-block btn-outline-success">マイページへ戻る</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
@endsection
|
|
||||||
@ -1,81 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
@section('content')
|
|
||||||
<main>
|
|
||||||
<header class="alert alert-success">
|
|
||||||
<h4 class="container">契約更新 > 定期契約を更新する</h4>
|
|
||||||
</header>
|
|
||||||
<section id="" class="container mt30 mb50">
|
|
||||||
@if ($errors->has('month'))
|
|
||||||
<div class="alert alert-danger text-center">
|
|
||||||
{{ $errors->first('month') }}
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
<form class="row form" action="{{ url('regular_contract/update_period') }}" method="post">
|
|
||||||
@csrf
|
|
||||||
<input type="hidden" name="contract_id" value="{{ $contract_id }}">
|
|
||||||
<div class="col-12 col-md-8 offset-0 offset-md-2 mb30">
|
|
||||||
<h3 class="alert-success">契約期間を選択してください。</h3>
|
|
||||||
<div class="hcenter">
|
|
||||||
@if ($regular_type->regular_class_1 == 1)
|
|
||||||
<div class="text-center">
|
|
||||||
<input type="radio" name="month" id="m1" value="1">
|
|
||||||
<input type="hidden" name="price_1" value="{{ optional($prices->where('price_month', 1)->first())->price }}">
|
|
||||||
<label for="m1" class="radio mr20 font-weight-bold">1ヶ月</label>
|
|
||||||
<span class="d-block mt-0">
|
|
||||||
{{ optional($prices->where('price_month', 1)->first())->price ? number_format(optional($prices->where('price_month', 1)->first())->price) . '円' : '価格未設定' }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@if ($regular_type->regular_class_2 == 1)
|
|
||||||
<div class="text-center">
|
|
||||||
<input type="radio" name="month" id="m2" value="2">
|
|
||||||
<input type="hidden" name="price_2" value="{{ optional($prices->where('price_month', 2)->first())->price }}">
|
|
||||||
<label for="m2" class="radio mr20 font-weight-bold">2ヶ月</label>
|
|
||||||
<span class="d-block mt-0">
|
|
||||||
{{ optional($prices->where('price_month', 2)->first())->price ? number_format(optional($prices->where('price_month', 2)->first())->price) . '円' : '価格未設定' }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@if ($regular_type->regular_class_3 == 1)
|
|
||||||
<div class="text-center">
|
|
||||||
<input type="radio" name="month" id="m3" value="3">
|
|
||||||
<input type="hidden" name="price_3" value="{{ optional($prices->where('price_month', 3)->first())->price }}">
|
|
||||||
<label for="m3" class="radio mr20 font-weight-bold">3ヶ月</label>
|
|
||||||
<span class="d-block mt-0">
|
|
||||||
{{ optional($prices->where('price_month', 3)->first())->price ? number_format(optional($prices->where('price_month', 3)->first())->price) . '円' : '価格未設定' }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@if ($regular_type->regular_class_6 == 1)
|
|
||||||
<div class="text-center">
|
|
||||||
<input type="radio" name="month" id="m6" value="6">
|
|
||||||
<input type="hidden" name="price_6" value="{{ optional($prices->where('price_month', 6)->first())->price }}">
|
|
||||||
<label for="m6" class="radio mr20 font-weight-bold">6ヶ月</label>
|
|
||||||
<span class="d-block mt-0">
|
|
||||||
{{ optional($prices->where('price_month', 6)->first())->price ? number_format(optional($prices->where('price_month', 6)->first())->price) . '円' : '価格未設定' }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@if ($regular_type->regular_class_12 == 1)
|
|
||||||
<div class="text-center">
|
|
||||||
<input type="radio" name="month" id="m12" value="12">
|
|
||||||
<input type="hidden" name="price_12" value="{{ optional($prices->where('price_month', 12)->first())->price }}">
|
|
||||||
<label for="m12" class="radio mr20 font-weight-bold">12ヶ月</label>
|
|
||||||
<span class="d-block mt-0">
|
|
||||||
{{ optional($prices->where('price_month', 12)->first())->price ? number_format(optional($prices->where('price_month', 12)->first())->price) . '円' : '価格未設定' }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-6 offset-0 offset-md-3">
|
|
||||||
<input type="submit" class="btn btn-lg btn-block btn-success" value="決定" />
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-5 offset-0 offset-md-1 mt50 mb50"> <a href="{{ url('regular_contract/info') }}"
|
|
||||||
class="btn btn-lg btn-block btn-outline-success">契約一覧へ戻る</a> </div>
|
|
||||||
<div class="col-12 col-md-5 mt50 mb50"> <a class="btn btn-lg btn-block btn-outline-success"
|
|
||||||
href="{{ url('/mypage') }}">マイページへ戻る</a> </div>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
@endsection
|
|
||||||
@ -1,321 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
@section('content')
|
|
||||||
@php
|
|
||||||
function safeCarbonFromDDHM($dd, $hm = '00:00') {
|
|
||||||
$now = \Carbon\Carbon::now();
|
|
||||||
if (!$dd || !preg_match('/^\d{1,2}$/', $dd)) return null;
|
|
||||||
if (!$hm || !preg_match('/^\d{2}:\d{2}$/', $hm)) $hm = '00:00';
|
|
||||||
$date = $now->format('Y-m-') . str_pad($dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$time = $hm . ':00';
|
|
||||||
try {
|
|
||||||
return \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date . ' ' . $time);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
<main>
|
|
||||||
<header class="alert alert-success">
|
|
||||||
<h4 class="container">定期契約情報 > 定期契約情報を確認する</h4>
|
|
||||||
</header>
|
|
||||||
<section class="container mt30 mb50">
|
|
||||||
@if(count($contracts) > 0)
|
|
||||||
@foreach($contracts as $i => $contract)
|
|
||||||
@if($i % 2 == 0)
|
|
||||||
<div class="row">
|
|
||||||
@endif
|
|
||||||
<article class="col-12 col-lg-6 mb20">
|
|
||||||
@php
|
|
||||||
$now = \Carbon\Carbon::now();
|
|
||||||
$update_flag = $contract->contract_renewal;
|
|
||||||
$start_dd = $contract->update_grace_period_start_date;
|
|
||||||
$start_hm = $contract->update_grace_period_start_time;
|
|
||||||
$end_dd = $contract->update_grace_period_end_date;
|
|
||||||
$end_hm = $contract->update_grace_period_end_time;
|
|
||||||
$contract_end_dt = $contract->contract_periode ? \Carbon\Carbon::parse($contract->contract_periode) : null;
|
|
||||||
$periode_month = $contract_end_dt ? $contract_end_dt->month : null;
|
|
||||||
$periode_year = $contract_end_dt ? $contract_end_dt->year : null;
|
|
||||||
$bg = 'alert-warning';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
|
|
||||||
// 契約終了月より前は「ご契約中」
|
|
||||||
if ($now->lt($contract_end_dt)) {
|
|
||||||
$bg = 'bg-white';
|
|
||||||
$btn_text = 'ご契約中';
|
|
||||||
$btn_active = false;
|
|
||||||
} else {
|
|
||||||
// 契約終了月より後は猶予期間判定
|
|
||||||
if (is_numeric($start_dd) && is_numeric($end_dd)) {
|
|
||||||
// 開始日
|
|
||||||
$start_date = $contract_end_dt->format('Y-m-') . str_pad($start_dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$start_time = ($start_hm && preg_match('/^\d{2}:\d{2}$/', $start_hm)) ? $start_hm : '00:00';
|
|
||||||
$start_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $start_date . ' ' . $start_time . ':00');
|
|
||||||
// 終了日
|
|
||||||
if ($start_dd < $end_dd) {
|
|
||||||
$end_date=$contract_end_dt->format('Y-m-') . str_pad($end_dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$end_time = ($end_hm && preg_match('/^\d{2}:\d{2}$/', $end_hm)) ? $end_hm : '23:59';
|
|
||||||
$end_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $end_date . ' ' . $end_time . ':00');
|
|
||||||
} else {
|
|
||||||
$next_month_dt = $contract_end_dt->copy()->addMonth();
|
|
||||||
$end_date = $next_month_dt->format('Y-m-') . str_pad($end_dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$end_time = ($end_hm && preg_match('/^\d{2}:\d{2}$/', $end_hm)) ? $end_hm : '23:59';
|
|
||||||
$end_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $end_date . ' ' . $end_time . ':00');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$start_dt = null;
|
|
||||||
$end_dt = null;
|
|
||||||
}
|
|
||||||
// 猶予期間判定
|
|
||||||
if ($update_flag === 0) {
|
|
||||||
$bg = 'bg-white';
|
|
||||||
$btn_text = '手続き中';
|
|
||||||
$btn_active = false;
|
|
||||||
} elseif ($update_flag === 1) {
|
|
||||||
$bg = 'bg-white';
|
|
||||||
$btn_text = '更新済';
|
|
||||||
$btn_active = false;
|
|
||||||
} elseif ($start_dt && $end_dt && $now->between($start_dt, $end_dt)) {
|
|
||||||
// 猶予期間内
|
|
||||||
if ($contract_end_dt && $now->gt($contract_end_dt)) {
|
|
||||||
$bg = 'alert-danger';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
} else {
|
|
||||||
$bg = 'alert-warning';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$bg = 'bg-white';
|
|
||||||
$btn_text = 'ご契約中';
|
|
||||||
$btn_active = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 契約終了月の場合(既存ロジック)
|
|
||||||
if (is_numeric($start_dd) && is_numeric($end_dd)) {
|
|
||||||
// 開始日
|
|
||||||
$start_date = $contract_end_dt->format('Y-m-') . str_pad($start_dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$start_time = ($start_hm && preg_match('/^\d{2}:\d{2}$/', $start_hm)) ? $start_hm : '00:00';
|
|
||||||
$start_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $start_date . ' ' . $start_time . ':00');
|
|
||||||
// 終了日
|
|
||||||
if ($start_dd < $end_dd) {
|
|
||||||
$end_date=$contract_end_dt->format('Y-m-') . str_pad($end_dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$end_time = ($end_hm && preg_match('/^\d{2}:\d{2}$/', $end_hm)) ? $end_hm : '23:59';
|
|
||||||
$end_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $end_date . ' ' . $end_time . ':00');
|
|
||||||
} else {
|
|
||||||
$next_month_dt = $contract_end_dt->copy()->addMonth();
|
|
||||||
$end_date = $next_month_dt->format('Y-m-') . str_pad($end_dd, 2, '0', STR_PAD_LEFT);
|
|
||||||
$end_time = ($end_hm && preg_match('/^\d{2}:\d{2}$/', $end_hm)) ? $end_hm : '23:59';
|
|
||||||
$end_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $end_date . ' ' . $end_time . ':00');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$start_dt = null;
|
|
||||||
$end_dt = null;
|
|
||||||
}
|
|
||||||
// 以降は既存のボタン・背景色判定ロジック
|
|
||||||
if ($update_flag===0) {
|
|
||||||
$bg='bg-white';
|
|
||||||
$btn_text='手続き中';
|
|
||||||
$btn_active=false;
|
|
||||||
}
|
|
||||||
elseif ($update_flag===1) {
|
|
||||||
$bg='bg-white';
|
|
||||||
$btn_text='更新済';
|
|
||||||
$btn_active=false;
|
|
||||||
}
|
|
||||||
elseif (!is_null($end_dt) && $end_dt->gt($start_dt)) {
|
|
||||||
if ($start_dt && $now->lt($start_dt)) {
|
|
||||||
$bg = 'bg-white';
|
|
||||||
$btn_text = 'ご契約中';
|
|
||||||
$btn_active = false;
|
|
||||||
} else {
|
|
||||||
// 契約終了日を過ぎていて、更新可能期間内は赤背景
|
|
||||||
if ($contract_end_dt && $now->gt($contract_end_dt) && $start_dt && $end_dt && $now->between($start_dt, $end_dt)) {
|
|
||||||
$bg = 'alert-danger';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
} else {
|
|
||||||
$bg = 'alert-warning';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif ($start_dt && $start_dt->gt($end_dt)) {
|
|
||||||
if ($now->lt($start_dt)) {
|
|
||||||
$bg = 'bg-white';
|
|
||||||
$btn_text = 'ご契約中';
|
|
||||||
$btn_active = false;
|
|
||||||
} elseif ($now->gte($start_dt) && $now->lte($contract_end_dt->copy()->endOfMonth())) {
|
|
||||||
$bg = 'alert-warning';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
} else {
|
|
||||||
$bg = 'alert-danger';
|
|
||||||
$btn_text = '更新する';
|
|
||||||
$btn_active = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
@if($bg == 'bg-white')
|
|
||||||
<div class="card border-success">
|
|
||||||
@elseif($bg == 'alert-warning')
|
|
||||||
<div class="card alert-warning">
|
|
||||||
@elseif($bg == 'alert-danger')
|
|
||||||
<div class="card alert-danger">
|
|
||||||
@else
|
|
||||||
<div class="card">
|
|
||||||
@endif
|
|
||||||
<style>
|
|
||||||
.table.text-center {
|
|
||||||
border-radius: 0.25rem !important;
|
|
||||||
border-collapse: separate !important;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-outline-secondary.badge-pill.custom-rounded-btn[disabled],
|
|
||||||
.btn-outline-secondary.badge-pill.custom-rounded-btn.disabled {
|
|
||||||
pointer-events: none;
|
|
||||||
cursor: default !important;
|
|
||||||
background: #fff !important;
|
|
||||||
color: #6c757d !important;
|
|
||||||
border-color: #6c757d !important;
|
|
||||||
opacity: 1 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-outline-secondary.badge-pill.custom-rounded-btn:not([disabled]):hover,
|
|
||||||
.btn-outline-secondary.badge-pill.custom-rounded-btn:not(.disabled):hover {
|
|
||||||
color: #212529 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-warning {
|
|
||||||
border: 1px solid #ffc107 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-white {
|
|
||||||
border: 1px solid #fff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-danger {
|
|
||||||
border: 1px solid #dc3545 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-no-margin {
|
|
||||||
margin-bottom: 0 !important;
|
|
||||||
padding-bottom: 0 !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<table class="table text-center table-no-margin {{ $bg }}
|
|
||||||
@if($bg == 'alert-warning') border-warning
|
|
||||||
@elseif($bg == 'bg-white') border-white
|
|
||||||
@elseif($bg == 'alert-danger') border-danger
|
|
||||||
@endif">
|
|
||||||
<tr>
|
|
||||||
<th>定期契約ID</th>
|
|
||||||
<td>{{ $contract->contract_id }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>駐輪場名</th>
|
|
||||||
<td>{{ $contract->park_name }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>利用者区分</th>
|
|
||||||
<td>{{ $contract->usertype_subject1 }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>利用開始日</th>
|
|
||||||
<td>{{ \Carbon\Carbon::parse($contract->contract_periods)->format('Y/m/d') }}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>契約月数</th>
|
|
||||||
<td>{{ $contract->enable_months }}ヶ月</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" class="text-center">
|
|
||||||
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
||||||
<div style="display: flex; gap: 6px; margin-bottom: 12px;">
|
|
||||||
@if($bg == 'alert-warning' && $btn_active)
|
|
||||||
<a href="{{ url('regular_contract/update/' . $contract->contract_id) }}" class="btn btn-warning badge-pill custom-rounded-btn">{{ $btn_text }}</a>
|
|
||||||
@elseif($bg == 'alert-danger' && $btn_active)
|
|
||||||
<a href="{{ url('regular_contract/update/' . $contract->contract_id) }}" class="btn btn-danger badge-pill custom-rounded-btn">{{ $btn_text }}</a>
|
|
||||||
@else
|
|
||||||
<button type="button" class="btn btn-outline-secondary badge-pill custom-rounded-btn" disabled>{{ $btn_text }}</button>
|
|
||||||
@endif
|
|
||||||
@if($bg == 'alert-warning')
|
|
||||||
<button type="button" id="cancelModalBtn" class="btn btn-outline-warning badge-pill custom-rounded-btn" style="background: transparent;" data-bs-toggle="modal" data-bs-target="#cancelModal">解約について</button>
|
|
||||||
@elseif($bg == 'alert-danger')
|
|
||||||
<button type="button" id="cancelModalBtn" class="btn btn-outline-danger badge-pill custom-rounded-btn" style="background: transparent;" data-bs-toggle="modal" data-bs-target="#cancelModal">解約について</button>
|
|
||||||
@else
|
|
||||||
<button type="button" id="cancelModalBtn" class="btn btn-outline-secondary badge-pill custom-rounded-btn" style="background: transparent;" data-bs-toggle="modal" data-bs-target="#cancelModal">解約について</button>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
@php
|
|
||||||
$has_receipt = DB::table('inv_publish')->where('contract_id', $contract->contract_id)->exists();
|
|
||||||
@endphp
|
|
||||||
@if($has_receipt)
|
|
||||||
@if($bg == 'alert-warning')
|
|
||||||
<a href="{{ url('receipt/download/' . $contract->contract_id) }}" class="btn btn-outline-warning badge-pill custom-rounded-btn" style="background: transparent;">領収書再発行</a>
|
|
||||||
@elseif($bg == 'alert-danger')
|
|
||||||
<a href="{{ url('receipt/download/' . $contract->contract_id) }}" class="btn btn-outline-danger badge-pill custom-rounded-btn" style="background: transparent;">領収書再発行</a>
|
|
||||||
@else
|
|
||||||
<a href="{{ url('receipt/download/' . $contract->contract_id) }}" class="btn btn-outline-secondary badge-pill custom-rounded-btn" style="background: transparent;">領収書再発行</a>
|
|
||||||
@endif
|
|
||||||
@else
|
|
||||||
@if($bg == 'alert-warning')
|
|
||||||
<a href="{{ url('receipt/input/' . $contract->contract_id) }}" class="btn btn-outline-warning badge-pill custom-rounded-btn" style="background: transparent;">領収書発行</a>
|
|
||||||
@elseif($bg == 'alert-danger')
|
|
||||||
<a href="{{ url('receipt/input/' . $contract->contract_id) }}" class="btn btn-outline-danger badge-pill custom-rounded-btn" style="background: transparent;">領収書発行</a>
|
|
||||||
@else
|
|
||||||
<a href="{{ url('receipt/input/' . $contract->contract_id) }}" class="btn btn-outline-secondary badge-pill custom-rounded-btn" style="background: transparent;">領収書発行</a>
|
|
||||||
@endif
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
@if($i % 2 == 1 || $i == count($contracts) - 1)
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@endforeach
|
|
||||||
@else
|
|
||||||
<div class="col-12 col-lg-12 mb20">
|
|
||||||
<p>定期契約情報はありません。</p>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
{{-- modal moved to end of file to avoid clipping issues --}}
|
|
||||||
<form class="row form">
|
|
||||||
<div class="col-12 col-md-4 offset-0 offset-md-4 mt50 mb50">
|
|
||||||
<a href="{{ url('mypage') }}" class="btn btn-lg btn-block btn-outline-success">マイページへ戻る</a>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
@endsection
|
|
||||||
<!-- 解約についてモーダル -->
|
|
||||||
<div class="modal fade" id="cancelModal" tabindex="-1" aria-labelledby="cancelModalLabel" aria-hidden="true">
|
|
||||||
<div class="modal-dialog">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-body">
|
|
||||||
解約の手続きにつきましては、下記コールセンターへお問い合わせください。<br>So-Managerコールセンター<br>03-5856-4720
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">閉じる</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<style>
|
|
||||||
.custom-rounded-btn {
|
|
||||||
border-radius: 2rem !important;
|
|
||||||
padding-left: 2rem !important;
|
|
||||||
padding-right: 2rem !important;
|
|
||||||
font-weight: 500;
|
|
||||||
min-width: 140px;
|
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
@extends('layouts.app')
|
|
||||||
@section('content')
|
|
||||||
<main>
|
|
||||||
<header class="alert alert-success">
|
|
||||||
<h4 class="container">契約更新 >本人確認書類のアップロード</h4>
|
|
||||||
</header>
|
|
||||||
@if ($errors->has('user_idcard'))
|
|
||||||
<div class="alert alert-danger text-center">{{ $errors->first('user_idcard') }}</div>
|
|
||||||
@endif
|
|
||||||
<section id="" class="container mt30 mb50">
|
|
||||||
<form class="row form" action="{{ route('regular_contract.upload_identity_submit', ['contract_id' => $contract_id]) }}" method="POST" enctype="multipart/form-data">
|
|
||||||
@csrf
|
|
||||||
<div class="col-12 col-md-8 offset-0 offset-md-2 mb30">
|
|
||||||
<h3 class="alert-success text-center">本人確認書類をアップロードしてください。</h3>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-6 offset-1 offset-md-3 mb30">
|
|
||||||
<p>
|
|
||||||
本人確認書類のアップロードが必要な契約更新です。<br>
|
|
||||||
証明書類のアップロードをお願いします。<br><br>
|
|
||||||
また卒業などで料金区分が変わる方はコールセンターまでお問い合わせ下さい。<br><br>
|
|
||||||
So-Manager コールセンター<br>
|
|
||||||
TEL:03-5856-4720(毎日12時~22時)
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-6 offset-1 offset-md-3 mb30">
|
|
||||||
おもて<span style="color: red;">*</span>
|
|
||||||
<input type="file" class="mb10" id="user_idcard" name="user_idcard" accept="image/*" /><br>
|
|
||||||
ウ ラ<span style="color: transparent;">*</span>
|
|
||||||
<input type="file" class="mb10" id="user_idcard2" name="user_idcard2" accept="image/*" />
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-4 offset-0 offset-md-2 mt10">
|
|
||||||
<a href="{{ route('regular_contract.confirm_category', ['contract_id' => $contract_id]) }}" class="btn btn-lg btn-block btn-outline-success">戻る</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-12 col-md-4 mt10">
|
|
||||||
<input type="submit" class="btn btn-lg btn-block btn-success" value="アップロードする" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
@endsection
|
|
||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -57,8 +56,8 @@ Route::post('/swo7_2',[InquiryConfirmController::class, 'confirm'])->name('swo7_
|
|||||||
Route::post('/swo7_3',[InquiryConfirmController::class, 'complete'])->name('swo7_3');
|
Route::post('/swo7_3',[InquiryConfirmController::class, 'complete'])->name('swo7_3');
|
||||||
Route::post('/swo8_3', [PasswordReminderController::class, 'sendMail'])->name('swo8_3');
|
Route::post('/swo8_3', [PasswordReminderController::class, 'sendMail'])->name('swo8_3');
|
||||||
|
|
||||||
//マイページ(仮)
|
|
||||||
Route::get('/mypage', function () {
|
Route::get('/mypage', function () {
|
||||||
|
// 仮の表示(コントローラー未作成の場合)
|
||||||
return 'マイページ(仮)';
|
return 'マイページ(仮)';
|
||||||
})->name('mypage');
|
})->name('mypage');
|
||||||
|
|
||||||
@ -66,6 +65,7 @@ Route::get('/mypage', function () {
|
|||||||
Route::get('/user/info', [UserInfoController::class, 'show'])
|
Route::get('/user/info', [UserInfoController::class, 'show'])
|
||||||
->name('user.info');
|
->name('user.info');
|
||||||
|
|
||||||
|
|
||||||
// ユーザー情報編集画面(GET: 編集フォーム表示)
|
// ユーザー情報編集画面(GET: 編集フォーム表示)
|
||||||
Route::get('/user/edit', [UserEditController::class, 'show'])
|
Route::get('/user/edit', [UserEditController::class, 'show'])
|
||||||
->name('user.edit');
|
->name('user.edit');
|
||||||
@ -109,8 +109,6 @@ Route::get('regular_contract/create', [RegularContractCreateController::class, '
|
|||||||
->name('regular_contract.create');
|
->name('regular_contract.create');
|
||||||
|
|
||||||
// 定期契約更新
|
// 定期契約更新
|
||||||
Route::get('regular_contract/update', [RegularContractController::class, 'showInfo'])
|
|
||||||
->name('regular_contract.update');
|
|
||||||
Route::get('regular_contract/update/{contract_id}', [RegularContractController::class, 'update']);
|
Route::get('regular_contract/update/{contract_id}', [RegularContractController::class, 'update']);
|
||||||
// 契約区分確認
|
// 契約区分確認
|
||||||
Route::get('regular_contract/confirm_category/{contract_id}', [RegularContractController::class, 'confirmCategory'])
|
Route::get('regular_contract/confirm_category/{contract_id}', [RegularContractController::class, 'confirmCategory'])
|
||||||
@ -120,19 +118,14 @@ Route::get('regular_contract/confirm_category_next/{contract_id}', [RegularContr
|
|||||||
// 本人確認書類アップロード
|
// 本人確認書類アップロード
|
||||||
Route::get('regular_contract/upload_identity/{contract_id}', [RegularContractController::class, 'uploadIdentity'])
|
Route::get('regular_contract/upload_identity/{contract_id}', [RegularContractController::class, 'uploadIdentity'])
|
||||||
->name('regular_contract.upload_identity');
|
->name('regular_contract.upload_identity');
|
||||||
// 本人確認書類確認中
|
|
||||||
Route::post('regular_contract/upload_identity/{contract_id}', [RegularContractController::class, 'uploadIdentitySubmit'])
|
|
||||||
->name('regular_contract.upload_identity_submit');
|
|
||||||
// 利用期間選択
|
// 利用期間選択
|
||||||
Route::get('regular_contract/select_period/{contract_id}', [RegularContractController::class, 'selectPeriod'])
|
Route::get('regular_contract/select_period/{contract_id}', [RegularContractController::class, 'selectPeriod'])
|
||||||
->name('regular_contract.select_period');
|
->name('regular_contract.select_period');
|
||||||
Route::post('regular_contract/update_period', [App\Http\Controllers\RegularContractController::class, 'updatePeriod'])
|
|
||||||
->name('regular_contract.update_period');
|
|
||||||
// 空き待ち状況確認画面
|
// 空き待ち状況確認画面
|
||||||
Route::get('park_waitlist', [ParkWaitlistController::class, 'index'])
|
Route::get('park_waitlist', [ParkWaitlistController::class, 'index'])
|
||||||
->name('park_waitlist.index');
|
->name('park_waitlist.index');
|
||||||
|
|
||||||
// ログイン画面(仮)
|
|
||||||
Route::get('/login', function () {
|
Route::get('/login', function () {
|
||||||
return '
|
return '
|
||||||
<form method="POST" action="/login">
|
<form method="POST" action="/login">
|
||||||
@ -143,13 +136,9 @@ Route::get('/login', function () {
|
|||||||
';
|
';
|
||||||
})->name('login');
|
})->name('login');
|
||||||
|
|
||||||
|
|
||||||
Route::post('/login', function (Request $request) {
|
Route::post('/login', function (Request $request) {
|
||||||
$user_id = $request->input('user_id');
|
$user_id = $request->input('user_id');
|
||||||
Session::put('user_id', $user_id); // 入力されたIDをそのまま保存
|
Session::put('user_id', $user_id); // 入力されたIDをそのまま保存
|
||||||
return redirect('/user/info'); // 認証なしでリダイレクト
|
return redirect('/user/info'); // 認証なしでリダイレクト
|
||||||
});
|
});
|
||||||
|
|
||||||
// ウェルネット決済画面(仮)
|
|
||||||
Route::get('/wellnet/payment', function (): mixed {
|
|
||||||
return '<h1>ウェルネット決済画面</h1>';
|
|
||||||
})->name('wellnet.payment');
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user