@extends('layouts.app') @section('content')
定期契約情報
@forelse($contracts as $contract) @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
{{ $contract->park_name }}
{{ $contract->psection_subject ?? '' }} {{ $contract->usertype_subject1 ?? '' }}
{{ $contract->ptype_subject ?? '' }} {{ $contract->pplace_no ?? '' }}
定期契約ID {{ $contract->contract_id }}
期間 {{ \Carbon\Carbon::parse($contract->contract_periods)->format('Y-m-d') }}から
{{ $contract->enable_months }}ヶ月
@if($btn_active) {{ $btn_text }} @else @endif
@empty

定期契約情報はありません
新規定期契約

@endforelse
シール発行
@forelse($seals as $seal)
@if(!empty($seal->contract_qr_id)) {!! QrCode::size(120)->generate($seal->contract_qr_id) !!} @else
QRコード
未発行
@endif
{{ $seal->psection_subject ?? '' }} {{ $seal->usertype_subject1 ?? '' }}
{{ $seal->ptype_subject ?? '' }} {{ $seal->pplace_no ?? '' }}
定期契約ID {{ $seal->contract_id }}
{{ $seal->enable_months }}ヶ月
@empty
シール発行対象の契約はありません。
@endforelse
{{ $user_name }}さんへのお知らせ お知らせ一覧を見る
    @if($information)
  • {{ $information->entry_date }} {{ $information->user_information_history }}
  • @else
  • お知らせはありません。
  • @endif
@endsection