退会、契約情報確認修正 #7
@ -19,6 +19,10 @@ class ReceiptController extends Controller
|
|||||||
}
|
}
|
||||||
$user = DB::table('user')->where('user_id', $user_id)->first();
|
$user = DB::table('user')->where('user_id', $user_id)->first();
|
||||||
|
|
||||||
|
\Log::info('領収書宛名入力画面にアクセス', [
|
||||||
|
'user_id' => $user_id,
|
||||||
|
]);
|
||||||
|
|
||||||
return view('receipt.input', [
|
return view('receipt.input', [
|
||||||
'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用)
|
'user_name' => $user ? $user->user_name : '', // ユーザー名(ヘッダー用)
|
||||||
'contract_id' => $contract_id
|
'contract_id' => $contract_id
|
||||||
@ -43,6 +47,21 @@ class ReceiptController extends Controller
|
|||||||
return redirect()->back()->withInput()->withErrors(['contract_id' => 'この契約の領収書は既に発行されています。契約履歴から再発行を行ってください。']);
|
return redirect()->back()->withInput()->withErrors(['contract_id' => 'この契約の領収書は既に発行されています。契約履歴から再発行を行ってください。']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 4バイト文字(絵文字等)チェック
|
||||||
|
if (preg_match('/[\xF0-\xF7][\x80-\xBF]{3}/', $receipt_name)) {
|
||||||
|
return redirect()->back()->withInput()->withErrors(['contract_id' => '宛名に絵文字などの特殊文字は使用できません。']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文字数チェック
|
||||||
|
if (mb_strlen($receipt_name) > 30) {
|
||||||
|
return redirect()->back()->withInput()->withErrors(['contract_id' => '宛名は30文字以内で入力してください。']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 敬称選択チェック
|
||||||
|
if (empty($keisho)) {
|
||||||
|
return redirect()->back()->withInput()->withErrors(['contract_id' => '敬称を選択してください。']);
|
||||||
|
}
|
||||||
|
|
||||||
// inv_publishテーブルに新規登録(insert)
|
// inv_publishテーブルに新規登録(insert)
|
||||||
$inv_name = $receipt_name . $keisho;
|
$inv_name = $receipt_name . $keisho;
|
||||||
$now = date('Y-m-d H:i:s');
|
$now = date('Y-m-d H:i:s');
|
||||||
@ -65,8 +84,6 @@ class ReceiptController extends Controller
|
|||||||
return $this->download($contract_id, $is_reissue);
|
return $this->download($contract_id, $is_reissue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public function download($contract_id, $is_reissue = true)
|
public function download($contract_id, $is_reissue = true)
|
||||||
{
|
{
|
||||||
// 必要なデータを取得
|
// 必要なデータを取得
|
||||||
@ -106,7 +123,6 @@ class ReceiptController extends Controller
|
|||||||
'default_font' => 'noto_sans_jp',
|
'default_font' => 'noto_sans_jp',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
$mpdf->WriteHTML($html);
|
$mpdf->WriteHTML($html);
|
||||||
|
|
||||||
// PDFダウンロード
|
// PDFダウンロード
|
||||||
|
|||||||
@ -52,6 +52,11 @@ class RegularContractController extends Controller
|
|||||||
)
|
)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
\Log::info('契約情報表示画面にアクセス', [
|
||||||
|
'user_id' => $user_id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
return view('regular_contract.info', [
|
return view('regular_contract.info', [
|
||||||
'active_menu' => 'SWC-3-1', // マイページメニューの選択状態用
|
'active_menu' => 'SWC-3-1', // マイページメニューの選択状態用
|
||||||
'user_name' => $user_name, // ユーザー名(ヘッダー用)
|
'user_name' => $user_name, // ユーザー名(ヘッダー用)
|
||||||
@ -126,7 +131,6 @@ class RegularContractController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 契約区分確認画面の「確認して進む」ボタン押下時の分岐処理
|
* 契約区分確認画面の「確認して進む」ボタン押下時の分岐処理
|
||||||
* 本人確認書類アップロード画面 or 利用期間選択画面へ遷移
|
* 本人確認書類アップロード画面 or 利用期間選択画面へ遷移
|
||||||
|
|||||||
@ -42,8 +42,6 @@ class UserEditConfirmController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 入力内容確認画面から「変更を確定する」ボタン押下時
|
// 入力内容確認画面から「変更を確定する」ボタン押下時
|
||||||
public function submit(Request $request)
|
public function submit(Request $request)
|
||||||
{
|
{
|
||||||
@ -59,6 +57,7 @@ class UserEditConfirmController extends Controller
|
|||||||
$token = Str::random(64);
|
$token = Str::random(64);
|
||||||
$changeData = $request->except(['_token']);
|
$changeData = $request->except(['_token']);
|
||||||
$changeData['user_id'] = $user_id;
|
$changeData['user_id'] = $user_id;
|
||||||
|
$changeData['user_seq'] = $user->user_seq;
|
||||||
|
|
||||||
// 本人確認書類画像アップロード処理
|
// 本人確認書類画像アップロード処理
|
||||||
if ($request->hasFile('photo_filename1') && $request->file('photo_filename1')->isValid()) {
|
if ($request->hasFile('photo_filename1') && $request->file('photo_filename1')->isValid()) {
|
||||||
@ -134,7 +133,7 @@ class UserEditConfirmController extends Controller
|
|||||||
$updateData['photo_filename2'] = $changeData['photo_filename2'];
|
$updateData['photo_filename2'] = $changeData['photo_filename2'];
|
||||||
}
|
}
|
||||||
if (!empty($changeData['user_pass'])) {
|
if (!empty($changeData['user_pass'])) {
|
||||||
$updateData['user_pass'] = self::customPasswordHash($changeData['user_pass'], $changeData['user_id']);
|
$updateData['user_pass'] = self::customPasswordHash($changeData['user_pass'], $changeData['user_seq']);
|
||||||
}
|
}
|
||||||
DB::table('user')
|
DB::table('user')
|
||||||
->where('user_id', $changeData['user_id'])
|
->where('user_id', $changeData['user_id'])
|
||||||
@ -160,9 +159,9 @@ class UserEditConfirmController extends Controller
|
|||||||
/**
|
/**
|
||||||
* パスワードをSHA256→SALT連結→25回ストレッチでハッシュ化
|
* パスワードをSHA256→SALT連結→25回ストレッチでハッシュ化
|
||||||
*/
|
*/
|
||||||
private static function customPasswordHash($password, $user_id)
|
private static function customPasswordHash($password, $user_seq)
|
||||||
{
|
{
|
||||||
$salt = $user_id . 'SOMSALT';
|
$salt = $user_seq . 'SOMSALT';
|
||||||
$hash = hash('sha256', $password);
|
$hash = hash('sha256', $password);
|
||||||
$hash .= $salt;
|
$hash .= $salt;
|
||||||
for ($i = 0; $i < 25; $i++) {
|
for ($i = 0; $i < 25; $i++) {
|
||||||
|
|||||||
@ -39,13 +39,60 @@ return null;
|
|||||||
$btn_text = '更新する';
|
$btn_text = '更新する';
|
||||||
$btn_active = true;
|
$btn_active = true;
|
||||||
|
|
||||||
// 契約終了月以外は「ご契約中」
|
// 契約終了月より前は「ご契約中」
|
||||||
if ($periode_month && $periode_year && ($now->month != $periode_month || $now->year != $periode_year)) {
|
if ($now->lt($contract_end_dt)) {
|
||||||
$bg = 'bg-white';
|
$bg = 'bg-white';
|
||||||
$btn_text = 'ご契約中';
|
$btn_text = 'ご契約中';
|
||||||
$btn_active = false;
|
$btn_active = false;
|
||||||
} else {
|
} else {
|
||||||
// 猶予期間のCarbon生成
|
// 契約終了月より後は猶予期間判定
|
||||||
|
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)) {
|
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_date = $contract_end_dt->format('Y-m-') . str_pad($start_dd, 2, '0', STR_PAD_LEFT);
|
||||||
@ -53,12 +100,10 @@ return null;
|
|||||||
$start_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $start_date . ' ' . $start_time . ':00');
|
$start_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $start_date . ' ' . $start_time . ':00');
|
||||||
// 終了日
|
// 終了日
|
||||||
if ($start_dd < $end_dd) {
|
if ($start_dd < $end_dd) {
|
||||||
// 終了月も契約終了月
|
|
||||||
$end_date=$contract_end_dt->format('Y-m-') . str_pad($end_dd, 2, '0', STR_PAD_LEFT);
|
$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_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');
|
$end_dt = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $end_date . ' ' . $end_time . ':00');
|
||||||
} else {
|
} else {
|
||||||
// 終了日は契約終了月の翌月
|
|
||||||
$next_month_dt = $contract_end_dt->copy()->addMonth();
|
$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_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_time = ($end_hm && preg_match('/^\d{2}:\d{2}$/', $end_hm)) ? $end_hm : '23:59';
|
||||||
@ -112,8 +157,6 @@ return null;
|
|||||||
$btn_active = true;
|
$btn_active = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
@endphp
|
@endphp
|
||||||
@if($bg == 'bg-white')
|
@if($bg == 'bg-white')
|
||||||
<div class="card border-success">
|
<div class="card border-success">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user