Compare commits

..

No commits in common. "ada39712596d7f09e45b3e62ce5424004e60790f" and "5682ea16149c914c52115c238938894fd545010a" have entirely different histories.

View File

@ -51,101 +51,100 @@
</div> </div>
</div> </div>
</form> </form>
<div style="overflow-x: auto; width: 100%;"> <table id="searchTable" class="tablesorter table table-striped">
<table id="searchTable" class="tablesorter table table-striped"> <thead>
<thead> <tr>
<tr> <th class="header">
<th class="header"> 駐輪場名
駐輪場名 <a href="{{ request()->fullUrlWithQuery(['sort' => 'park_ruby', 'order' => 'asc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-up-fill"></i></a>
<a href="{{ request()->fullUrlWithQuery(['sort' => 'park_ruby', 'order' => 'asc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-up-fill"></i></a> <a href="{{ request()->fullUrlWithQuery(['sort' => 'park_ruby', 'order' => 'desc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-down-fill"></i></a>
<a href="{{ request()->fullUrlWithQuery(['sort' => 'park_ruby', 'order' => 'desc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-down-fill"></i></a> </th>
</th> <th class="header">
<th class="header"> 市町村名
市町村名 <a href="{{ request()->fullUrlWithQuery(['sort' => 'city_id', 'order' => 'asc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-up-fill"></i></a>
<a href="{{ request()->fullUrlWithQuery(['sort' => 'city_id', 'order' => 'asc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-up-fill"></i></a> <a href="{{ request()->fullUrlWithQuery(['sort' => 'city_id', 'order' => 'desc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-down-fill"></i></a>
<a href="{{ request()->fullUrlWithQuery(['sort' => 'city_id', 'order' => 'desc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-down-fill"></i></a> </th>
</th> <th class="header">
<th class="header"> 駅名
駅名 <a href="{{ request()->fullUrlWithQuery(['sort' => 'station_name_ruby', 'order' => 'asc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-up-fill"></i></a>
<a href="{{ request()->fullUrlWithQuery(['sort' => 'station_name_ruby', 'order' => 'asc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-up-fill"></i></a> <a href="{{ request()->fullUrlWithQuery(['sort' => 'station_name_ruby', 'order' => 'desc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-down-fill"></i></a>
<a href="{{ request()->fullUrlWithQuery(['sort' => 'station_name_ruby', 'order' => 'desc', 'page' => 1]) }}" class="text-success"><i class="bi bi-caret-down-fill"></i></a> </th>
</th> <th class="header">自転車</th>
<th class="header">自転車</th> <th class="header">原付</th>
<th class="header">原付</th> <th class="header">自動二輪</th>
<th class="header">自動二輪</th> <th class="header">自動車</th>
<th class="header">自動車</th> </tr>
</tr> </thead>
</thead> <tbody>
<tbody> @forelse($parks_table as $row)
@forelse($parks_table as $row) <tr>
<tr> <td><a href="javascript:void(0);" class="btn-popup text-primary" data-park-id="{{ $row->park_id }}">
<td><a href="javascript:void(0);" class="btn-popup text-primary" data-park-id="{{ $row->park_id }}"> {{ $row->park_name }}
{{ $row->park_name }} </a></td>
</a></td> <td>{{ $row->city_name }}</td>
<td>{{ $row->city_name }}</td> <td>{{ $row->station_neighbor_station }}</td>
<td>{{ $row->station_neighbor_station }}</td> {{-- 自転車・原付・自動二輪・自動車列 --}}
{{-- 自転車・原付・自動二輪・自動車列 --}} @foreach(['自転車', '原付', '自動二輪', '自動車'] as $vehicle)
@foreach(['自転車', '原付', '自動二輪', '自動車'] as $vehicle) <td>
<td> @php
@php $zonesForType = ($zones[$row->park_id] ?? collect())->where('psection_subject', $vehicle);
$zonesForType = ($zones[$row->park_id] ?? collect())->where('psection_subject', $vehicle); @endphp
@endphp @forelse ($zonesForType as $zone)
@forelse ($zonesForType as $zone) @php
@php $reserveCount = ($reserve[$row->park_id] ?? collect())
$reserveCount = ($reserve[$row->park_id] ?? collect()) ->where('psection_id', $zone->psection_id)
->where('psection_id', $zone->psection_id) ->count();
->count(); $vacancy = $zone->zone_tolerance - $zone->zone_number - $reserveCount;
$vacancy = $zone->zone_tolerance - $zone->zone_number - $reserveCount; // 猶予期間判定
// 猶予期間判定 $grace = $city_grace_periods[$row->city_id] ?? null;
$grace = $city_grace_periods[$row->city_id] ?? null; $now = \Carbon\Carbon::now();
$now = \Carbon\Carbon::now(); $inGrace = false;
$inGrace = false; if ($grace && $grace->update_grace_period_start_date && $grace->update_grace_period_start_time && $grace->update_grace_period_end_date && $grace->update_grace_period_end_time) {
if ($grace && $grace->update_grace_period_start_date && $grace->update_grace_period_start_time && $grace->update_grace_period_end_date && $grace->update_grace_period_end_time) { $year = $now->year;
$year = $now->year; $month = $now->month;
$month = $now->month; $startDay = (int)$grace->update_grace_period_start_date;
$startDay = (int)$grace->update_grace_period_start_date; $endDay = (int)$grace->update_grace_period_end_date;
$endDay = (int)$grace->update_grace_period_end_date; if ($startDay > $endDay) {
if ($startDay > $endDay) { // 月またぎ
// 月またぎ // 前月の開始日~今月の終了日
// 前月の開始日~今月の終了日 $prevMonth = $now->copy()->subMonth();
$prevMonth = $now->copy()->subMonth(); $startPrev = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $prevMonth->year, $prevMonth->month, $startDay, $grace->update_grace_period_start_time));
$startPrev = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $prevMonth->year, $prevMonth->month, $startDay, $grace->update_grace_period_start_time)); $endCurr = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $endDay, $grace->update_grace_period_end_time));
$endCurr = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $endDay, $grace->update_grace_period_end_time)); // 今月の開始日~翌月の終了日
// 今月の開始日~翌月の終了日 $startCurr = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $startDay, $grace->update_grace_period_start_time));
$startCurr = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $startDay, $grace->update_grace_period_start_time)); $nextMonth = $month == 12 ? 1 : $month + 1;
$nextMonth = $month == 12 ? 1 : $month + 1; $nextYear = $month == 12 ? $year + 1 : $year;
$nextYear = $month == 12 ? $year + 1 : $year; $endNext = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $nextYear, $nextMonth, $endDay, $grace->update_grace_period_end_time));
$endNext = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $nextYear, $nextMonth, $endDay, $grace->update_grace_period_end_time)); $inGrace = $now->between($startPrev, $endCurr) || $now->between($startCurr, $endNext);
$inGrace = $now->between($startPrev, $endCurr) || $now->between($startCurr, $endNext); } else {
} else { // 同月
// 同月 $start = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $startDay, $grace->update_grace_period_start_time));
$start = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $startDay, $grace->update_grace_period_start_time)); $end = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $endDay, $grace->update_grace_period_end_time));
$end = \Carbon\Carbon::createFromFormat('Y-m-d H:i', sprintf('%04d-%02d-%02d %s', $year, $month, $endDay, $grace->update_grace_period_end_time)); $inGrace = $now->between($start, $end);
$inGrace = $now->between($start, $end); }
} }
} @endphp
@endphp @if ($vacancy > 0 && $inGrace)
@if ($vacancy > 0 && $inGrace) <button class="btn btn-block btn-sm btn-outline-success btn_82-table btn-popup" data-park-id="{{ $row->park_id }}">定期契約</button>
<button class="btn btn-block btn-sm btn-outline-success btn_82-table btn-popup" data-park-id="{{ $row->park_id }}">定期契約</button> @elseif (!$inGrace)
@elseif (!$inGrace) <button class="btn btn-block btn-sm btn-outline-danger btn_103-table btn-popup" data-park-id="{{ $row->park_id }}">販売期間外</button>
<button class="btn btn-block btn-sm btn-outline-danger btn_103-table btn-popup" data-park-id="{{ $row->park_id }}">販売期間外</button> @elseif ($vacancy <= 0 && $inGrace)
@elseif ($vacancy <= 0 && $inGrace) <button class="btn btn-block btn-sm btn-outline-danger btn_103-table btn-popup" data-park-id="{{ $row->park_id }}">空き待ち申込</button>
<button class="btn btn-block btn-sm btn-outline-danger btn_103-table btn-popup" data-park-id="{{ $row->park_id }}">空き待ち申込</button> @endif
@endif @empty
@empty <span class="text-muted"></span>
<span class="text-muted"></span> @endforelse
@endforelse </td>
</td> @endforeach
@endforeach </tr>
</tr> @empty
@empty <tr>
<tr> <td colspan="7" class="text-center">該当する駐輪場はありません。</td>
<td colspan="7" class="text-center">該当する駐輪場はありません。</td> </tr>
</tr> @endforelse
@endforelse </tbody>
</tbody> </table>
</table>
</div>
@php @php
$totalPages = ceil($parks_table_total / $parks_table_perPage); $totalPages = ceil($parks_table_total / $parks_table_perPage);
$currentPage = $parks_table_page; $currentPage = $parks_table_page;