main_kin #18

Merged
go.unhi merged 16 commits from main_kin into main 2025-09-01 10:48:12 +09:00
45 changed files with 1612 additions and 1982 deletions
Showing only changes of commit ef4c9fe57c - Show all commits

View File

@ -12,10 +12,15 @@ use Illuminate\Support\Facades\DB;
class JurisdictionParkingController extends Controller
{
public function list(Request $request)
{
$list = JurisdictionParking::query()->paginate(20);
return view('admin.jurisdiction_parkings.list', compact('list'));
}
{
$sort = $request->input('sort', 'jurisdiction_parking_id');
$sort_type = $request->input('sort_type', 'asc');
$list = JurisdictionParking::orderBy($sort, $sort_type)->paginate(20);
return view('admin.jurisdiction_parkings.list', compact('list', 'sort', 'sort_type'));
}
public function add(Request $request)
{
@ -37,9 +42,9 @@ class JurisdictionParkingController extends Controller
}
public function edit(Request $request, $jurisdiction_parking_id)
public function edit(Request $request, $id)
{
$record = JurisdictionParking::findOrFail($jurisdiction_parking_id);
$record = JurisdictionParking::findOrFail($id);
if ($request->isMethod('post')) {
$validated = $request->validate([
@ -59,6 +64,7 @@ class JurisdictionParkingController extends Controller
return view('admin.jurisdiction_parkings.edit', compact('record', 'parks', 'opes'));
}
public function delete(Request $request)
{
if ($request->has('pk')) {

View File

@ -1,119 +0,0 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\NeighborStation;
class NeighborStationController extends Controller
{
// 一覧表示
public function list(Request $request)
{
$sort = $request->input('sort', 'station_id');
$sort_type = $request->input('sort_type', 'asc');
$allowedSorts = ['station_id', 'park_id', 'station_neighbor_station', 'station_name_ruby', 'station_route_name'];
if (!in_array($sort, $allowedSorts)) {
$sort = 'station_id';
}
if (!in_array($sort_type, ['asc', 'desc'])) {
$sort_type = 'asc';
}
$stations = NeighborStation::select([
'station_id',
'station_neighbor_station',
'station_name_ruby',
'station_route_name',
// 'station_latitude',
// 'station_longitude',
'park_id'
])->orderBy($sort, $sort_type)->paginate(20);
return view('admin.neighbor_stations.list', compact('stations', 'sort', 'sort_type'));
}
// 新規登録画面と登録処理
public function add(Request $request)
{
if ($request->isMethod('post')) {
$validated = $request->validate([
'station_neighbor_station' => 'required|string|max:255',
'station_name_ruby' => 'nullable|string|max:255',
'station_route_name' => 'nullable|string|max:255',
'park_id' => 'nullable|integer',
'operator_id' => 'nullable|integer',
]);
NeighborStation::create($validated);
return redirect()->route('neighbor_stations')->with('success', '近傍駅が登録されました');
}
return view('admin.neighbor_stations.add');
}
// 編集画面・更新処理
public function edit(Request $request, $id)
{
$station = NeighborStation::findOrFail($id);
if ($request->isMethod('post')) {
$validated = $request->validate([
'station_neighbor_station' => 'required|string|max:255',
'station_name_ruby' => 'nullable|string|max:255',
'station_route_name' => 'nullable|string|max:255',
'park_id' => 'nullable|integer',
'operator_id' => 'nullable|integer',
]);
$station->update($validated);
return redirect()->route('neighbor_stations')->with('success', '更新しました');
}
return view('admin.neighbor_stations.edit', compact('station'));
}
// 詳細表示
public function info($id)
{
$station = NeighborStation::findOrFail($id);
return view('admin.neighbor_stations.info', compact('station'));
}
// 削除処理
public function delete(Request $request)
{
$ids = $request->input('pk'); // ← 接收复数 checkbox 名称 pk[]
if (!empty($ids)) {
NeighborStation::destroy($ids); // 一次性删除多个
return redirect()->route('neighbor_stations')->with('success', '削除しました');
}
return redirect()->route('neighbor_stations')->with('error', '削除対象が見つかりません');
}
// CSVインポート
public function import(Request $request)
{
// TODO: 実装
return redirect()->route('neighbor_stations')->with('info', 'CSVインポートは未実装です');
}
// CSVエクスポート
public function export()
{
// TODO: 実装
return response()->streamDownload(function () {
echo "id,station_neighbor_station,station_name_ruby,station_route_name,park_id,operator_id\n";
foreach (NeighborStation::all() as $station) {
echo "{$station->id},{$station->station_neighbor_station},{$station->station_name_ruby},{$station->station_route_name},{$station->park_id},{$station->operator_id}\n";
}
}, 'neighbor_stations.csv');
}
}

View File

@ -0,0 +1,140 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Station;
class StationController extends Controller
{
/**
* 一覧表示
*/
public function list(Request $request)
{
$sort = $request->input('sort', 'station_id');
$sort_type = $request->input('sort_type', 'asc');
// 許可されたソート項目のみ
$allowedSorts = [
'station_id',
'park_id',
'station_neighbor_station',
'station_name_ruby',
'station_route_name'
];
if (!in_array($sort, $allowedSorts)) {
$sort = 'station_id';
}
if (!in_array($sort_type, ['asc', 'desc'])) {
$sort_type = 'asc';
}
// 必要カラムのみ取得
$stations = Station::select([
'station_id',
'station_neighbor_station',
'station_name_ruby',
'station_route_name',
'park_id',
'operator_id'
])->orderBy($sort, $sort_type)->paginate(20);
return view('admin.stations.list', compact('stations', 'sort', 'sort_type'));
}
/**
* 新規登録
*/
public function add(Request $request)
{
if ($request->isMethod('post')) {
$validated = $request->validate([
'station_neighbor_station' => 'required|string|max:255',
'station_name_ruby' => 'nullable|string|max:255',
'station_route_name' => 'nullable|string|max:255',
'park_id' => 'nullable|integer',
'operator_id' => 'nullable|integer',
]);
Station::create($validated);
return redirect()->route('stations')->with('success', '近傍駅が登録されました');
}
return view('admin.stations.add');
}
/**
* 編集
*/
public function edit(Request $request, $id)
{
$station = Station::findOrFail($id);
if ($request->isMethod('post')) {
$validated = $request->validate([
'station_neighbor_station' => 'required|string|max:255',
'station_name_ruby' => 'nullable|string|max:255',
'station_route_name' => 'nullable|string|max:255',
'park_id' => 'nullable|integer',
'operator_id' => 'nullable|integer',
]);
$station->update($validated);
return redirect()->route('stations')->with('success', '更新しました');
}
return view('admin.stations.edit', compact('station'));
}
/**
* 詳細
*/
public function info($id)
{
$station = Station::findOrFail($id);
return view('admin.stations.info', compact('station'));
}
/**
* 削除
*/
public function delete(Request $request)
{
$ids = $request->input('pk'); // 複数ID対応
if (!empty($ids)) {
Station::destroy($ids);
return redirect()->route('stations')->with('success', '削除しました');
}
return redirect()->route('stations')->with('error', '削除対象が見つかりません');
}
/**
* CSVインポート
*/
public function import(Request $request)
{
// TODO: 実装予定
return redirect()->route('stations')->with('info', 'CSVインポートは未実装です');
}
/**
* CSVエクスポート
*/
public function export()
{
return response()->streamDownload(function () {
// Excel用のUTF-8 BOM
echo "\xEF\xBB\xBF";
echo "station_id,station_neighbor_station,station_name_ruby,station_route_name,park_id,operator_id\n";
foreach (Station::all() as $station) {
echo "{$station->station_id},{$station->station_neighbor_station},{$station->station_name_ruby},{$station->station_route_name},{$station->park_id},{$station->operator_id}\n";
}
}, 'stations.csv');
}
}

View File

@ -39,6 +39,15 @@ class Park extends Model
{
return $this->hasMany(PriceA::class, 'park_id', 'park_id');
}
/**
* 駐輪場一覧を取得(セレクトボックス用)
* getList() 呼び出し互換
* @return \Illuminate\Support\Collection
*/
public static function getList()
{
return self::orderBy('park_id', 'asc')
->pluck('park_name', 'park_id');
}
}

View File

@ -4,15 +4,11 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class NeighborStation extends Model
class Station extends Model
{
// テーブル名を指定
protected $table = 'station';
// 主キーを指定
protected $primaryKey = 'station_id';
// ホワイトリスト
protected $fillable = [
'park_id',
'station_neighbor_station',
@ -20,6 +16,4 @@ class NeighborStation extends Model
'station_route_name',
'operator_id',
];
// タイムスタンプのカラム名がデフォルトと同じなので、特に設定不要
}
}

View File

@ -21,7 +21,7 @@
<section class="content">
<div class="container-fluid">
<form method="post" action="{{ route('contract_allowable_cities_edit', ['contract_allowable_city_id' => $record->contract_allowable_city_id]) }}">
<form method="post" action="{{ route('contract_allowable_cities_edit', ['id' => $record->contract_allowable_city_id]) }}">
@csrf
<div class="card p-4">
{{-- 契約許容市区マスタID --}}

View File

@ -2,6 +2,7 @@
@section('title', '[東京都|〇〇駐輪場] 契約許容市区マスタ')
@section('content')
<!-- Content Header -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
@ -10,8 +11,8 @@
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{route('home')}}">ホーム</a></li>
<li class="breadcrumb-item"><a href="#">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item"><a href="{{ route('home') }}">ホーム</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">契約許容市区マスタ</li>
</ol>
</div>
@ -19,10 +20,10 @@
</div>
</div>
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
<div class="row">
<!-- 検索条件 -->
<div class="container-fluid">
<!-- 検索条件(ここはそのまま保持) -->
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h3 class="card-title">絞り込み</h3></div>
@ -71,80 +72,62 @@
</div>
</div>
</div>
<!-- 検索条件ここまで -->
<!-- ボタン・ページネーション -->
<!-- ボタン + ページネーション -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('contract_allowable_cities_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="button" class="btn btn-sm btn-default mr10" id="export_csv"
action="{{ route('contract_allowable_cities_export') }}">CSV出力</button>
{{ $list->appends(['sort' => $sort,'sort_type'=>$sort_type])->links('pagination') }}
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<!-- 一覧テーブル -->
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<!-- チェックボックス側 -->
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 table_left">
<!-- 単一テーブル構成 -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form method="post" action="{{ route('contract_allowable_cities_delete') }}" id="form_delete">
@csrf
<table class="table dataTable">
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='contract_allowable_city_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="contract_allowable_city_id"><span>契約許容市区ID</span></th>
<th class="sorting {{ ($sort=='city_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="city_id"><span>市区ID</span></th>
<th class="sorting {{ ($sort=='contract_allowable_city_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="contract_allowable_city_name"><span>許容市区名</span></th>
<th class="sorting {{ ($sort=='park_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="park_id"><span>駐輪場ID</span></th>
<th><span>隣接区フラグ</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td>
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox"
value="{{ $item->contract_allowable_city_id }}" name="id[]">
<div class="btn_action ml-2">
<a href="{{ route('contract_allowable_cities_edit', ['contract_allowable_city_id' => $item->contract_allowable_city_id]) }}"
class="btn btn-sm btn-default">編集</a>
@foreach($list as $item)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox"
value="{{ $item->contract_allowable_city_id }}" name="id[]">
<a href="{{ route('contract_allowable_cities_edit', ['id' => $item->contract_allowable_city_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</div>
</td>
</tr>
@endforeach
</td>
<td class="sm-item text-left align-middle">{{ $item->contract_allowable_city_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->city_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->contract_allowable_city_name }}</td>
<td class="sm-item text-left align-middle">{{ $item->park_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->same_district_flag == 0 ? '隣接市' : 'その他' }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<!-- テーブル本体 -->
<div class="col-xl-10 col-lg-10 col-md-10 col-sm-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<th class="sorting @if($sort=="contract_allowable_city_id"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif" sort="contract_allowable_city_id">
<span>契約許容市区ID</span>
</th>
<th><span>市区ID</span></th>
<th><span>許容市区名</span></th>
<th><span>駐輪場ID</span></th>
<th><span>隣接区フラグ</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class="sm-item text-left"><span>{{ $item->contract_allowable_city_id }}</span></td>
<td class="sm-item text-left"><span>{{ $item->city_id }}</span></td>
<td class="sm-item text-left"><span>{{ $item->contract_allowable_city_name }}</span></td>
<td class="sm-item text-left"><span>{{ $item->park_id }}</span></td>
<td class="sm-item text-left"><span>{{ $item->same_district_flag == 0 ? '隣接市' : 'その他' }}</span></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<!-- 単一テーブル構成ここまで -->
</div>
</div>
</section>
<script>

View File

@ -27,11 +27,15 @@
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}">
</form>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('devices_add') }}'">{{ __('新規') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">{{ __('削除') }}</button>
{{ $list->appends(['sort'=>$sort,'sort_type'=>$sort_type])->links('pagination') }}
<!-- ツールバー -->
<div class="container-fluid mb20 d-flex justify-content-between align-items-center">
<div>
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('devices_add') }}'">{{ __('新規') }}</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">{{ __('削除') }}</button>
</div>
<div>
{{ $list->appends(['sort'=>$sort,'sort_type'=>$sort_type])->links('pagination') }}
</div>
</div>
{{-- フラッシュ --}}
@ -56,140 +60,66 @@
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
{{-- 左:チェック列+編集ボタン --}}
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
{{-- 単一テーブル --}}
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('devices_delete') }}" method="post" id="form_delete">
@csrf
<table class="table dataTable">
@php
$TYPE = [1=>'サーバー', 2=>'プリンタ', 3=>'その他'];
$WORK = ['1'=>'稼働', '0'=>'停止', 1=>'稼働', 0=>'停止'];
@endphp
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr><th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th></tr>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting @if($sort=='device_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"
sort="device_id"><span>{{ __('デバイスID') }}</span></th>
<th class="sorting @if($sort=='park_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left"
sort="park_id"><span>{{ __('駐輪場ID') }}</span></th>
<th class="sorting @if($sort=='device_type'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left"
sort="device_type"><span>{{ __('デバイス種別') }}</span></th>
<th class="text-left"><span>{{ __('デバイス名') }}</span></th>
<th class="text-left"><span>{{ __('識別子') }}</span></th>
<th class="text-left"><span>{{ __('稼働/停止') }}</span></th>
<th class="sorting @if($sort=='device_workstart'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"
sort="device_workstart"><span>{{ __('稼働開始日') }}</span></th>
<th class="sorting @if($sort=='device_replace'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"
sort="device_replace"><span>{{ __('リプレース予約日') }}</span></th>
<th class="text-left"><span>{{ __('備考') }}</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr role="row">
<td>
<input type="checkbox" class="minimal m-0 checkbox" name="ids[]" value="{{ $item->device_id }}">
<div class="btn_action">
<a href="{{ route('devices_edit',['id'=>$item->device_id]) }}" class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="ids[]" value="{{ $item->device_id }}">
<a href="{{ route('devices_edit',['id'=>$item->device_id]) }}" class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-right">{{ $item->device_id }}</td>
<td class="sm-item text-left">
{{ $item->park_id }}
@if($item->relationLoaded('park') && $item->park)
: {{ $item->park->park_name ?? '' }}
@endif
</td>
<td class="sm-item text-left">{{ $TYPE[$item->device_type] ?? $item->device_type }}</td>
<td class="sm-item text-left">{{ $item->device_subject }}</td>
<td class="sm-item text-left">{{ $item->device_identifier }}</td>
<td class="sm-item text-left">{{ $WORK[$item->device_work] ?? $item->device_work }}</td>
<td class="sm-item text-right">{{ optional($item->device_workstart)->format('Y/m/d') }}</td>
<td class="sm-item text-right">{{ optional($item->device_replace)->format('Y/m/d') }}</td>
<td class="sm-item text-left">{{ $item->device_remarks }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
<form id="form_import_export" method="post" enctype="multipart/form-data">@csrf</form>
</div>
{{-- 右:本体 --}}
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
@php
$TYPE = [1=>'サーバー',2=>'プリンタ',3=>'その他'];
$WORK = ['1'=>'稼働','0'=>'停止',1=>'稼働',0=>'停止'];
@endphp
<table class="table dataTable">
<thead>
<tr>
{{-- 1 デバイスID--}}
<th class="sorting @if($sort=='device_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"
sort="device_id"><span>{{ __('デバイスID') }}</span></th>
{{-- 2 駐輪場ID --}}
<th class="sorting @if($sort=='park_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left"
sort="park_id"><span>{{ __('駐輪場ID') }}</span></th>
{{-- 3 デバイス種別--}}
<th class="sorting @if($sort=='device_type'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left"
sort="device_type"><span>{{ __('デバイス種別') }}</span></th>
{{-- 4 デバイス名 --}}
<th class="text-left"><span>{{ __('デバイス名') }}</span></th>
{{-- 5 識別子 --}}
<th class="text-left"><span>{{ __('識別子') }}</span></th>
{{-- 6 稼働/停止 --}}
<th class="text-left"><span>{{ __('稼働/停止') }}</span></th>
{{-- 7 稼働開始日--}}
<th class="sorting @if($sort=='device_workstart'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"
sort="device_workstart"><span>{{ __('稼働開始日') }}</span></th>
{{-- 8 リプレース予約日 --}}
<th class="sorting @if($sort=='device_replace'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"
sort="device_replace"><span>{{ __('リプレース予約日') }}</span></th>
{{-- 9 備考 --}}
<th class="text-left"><span>{{ __('備考') }}</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
{{-- 1 デバイスID --}}
<td class="sm-item text-right">
<span>{{ mb_substr($item->device_id, 0, 10) }}</span>
</td>
{{-- 2 駐輪場ID駐輪場名 --}}
<td class="sm-item text-left">
<span>
{{ mb_substr($item->park_id, 0, 10) }}
@if($item->relationLoaded('park') && $item->park)
: {{ mb_substr($item->park->park_name ?? '', 0, 10) }}
@endif
</span>
</td>
{{-- 3 デバイス種別 --}}
<td class="sm-item text-left">
<span>{{ mb_substr($TYPE[$item->device_type] ?? (string)$item->device_type, 0, 10) }}</span>
</td>
{{-- 4 デバイス名 --}}
<td class="sm-item text-left">
<span>{{ mb_substr($item->device_subject, 0, 10) }}</span>
</td>
{{-- 5 識別子--}}
<td class="sm-item text-left">
<span>{{ mb_substr($item->device_identifier, 0, 10) }}</span>
</td>
{{-- 6 稼働/停止--}}
<td class="sm-item text-left">
<span>{{ $WORK[$item->device_work] ?? $item->device_work }}</span>
</td>
{{-- 7 稼働開始日 --}}
<td class="sm-item text-right">
@php
$ws = $item->device_workstart instanceof \Carbon\Carbon ? $item->device_workstart->format('Y/m/d') : ($item->device_workstart ? \Carbon\Carbon::parse($item->device_workstart)->format('Y/m/d') : '');
@endphp
<span>{{ $ws }}</span>
</td>
{{-- 8 リプレース予約日) --}}
<td class="sm-item text-right">
@php
$rp = $item->device_replace instanceof \Carbon\Carbon ? $item->device_replace->format('Y/m/d') : ($item->device_replace ? \Carbon\Carbon::parse($item->device_replace)->format('Y/m/d') : '');
@endphp
<span>{{ $rp }}</span>
</td>
{{-- 9 備考 --}}
<td class="sm-item text-left">
<span>{{ mb_substr($item->device_remarks, 0, 10) }}</span>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@ -198,21 +128,39 @@
@push('scripts')
<script>
document.querySelectorAll('th.sorting[sort]').forEach(function(th){
th.style.cursor = 'pointer';
th.addEventListener('click', function(){
var field = this.getAttribute('sort');
var cur = document.getElementById('sort').value;
var type = document.getElementById('sort_type').value || 'asc';
var next = (cur === field && type === 'asc') ? 'desc' : 'asc';
document.getElementById('sort').value = field;
document.getElementById('sort_type').value = next;
document.getElementById('list-form').submit();
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function() {
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
});
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(function(cb){ cb.checked = e.target.checked; });
});
</script>
@endpush
@endsection

View File

@ -21,7 +21,7 @@
<section class="content">
<div class="container-fluid">
<form method="post" action="{{ route('jurisdiction_parkings_edit', ['jurisdiction_parking_id' => $record->jurisdiction_parking_id]) }}">
<form method="post" action="{{ route('jurisdiction_parkings_edit', ['id' => $record->jurisdiction_parking_id]) }}">
@csrf
<div class="card p-4">
{{-- 管轄駐輪場ID表示のみ --}}

View File

@ -1,5 +1,5 @@
@extends('layouts.app')
@section('title', '[東京都|○○駐車場] 管轄駐輪場')
@section('title', '[東京都|〇〇駐輪場] 管轄駐輪場マスタ')
@section('content')
<!-- Content Header -->
@ -12,28 +12,36 @@
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item active">管轄駐輪場</li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">管轄駐輪場マスタ</li>
</ol>
</div>
</div>
</div>
</div>
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('jurisdiction_parkings') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('jurisdiction_parkings_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">CSV出力</button>
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
<div class="container-fluid mb20 d-flex justify-content-between">
<div>
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('jurisdiction_parkings_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
</div>
<div>
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<!-- 成功 / 失敗 メッセージ -->
<div class="col-lg-12">
@if(session('success'))
<div class="alert alert-success alert-dismissible">{{ session('success') }}</div>
@ -42,41 +50,20 @@
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<!-- 左側チェックボックス -->
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('jurisdiction_parkings_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table dataTable">
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td>
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $item->jurisdiction_parking_id }}" name="pk[]">
<div class="btn_action">
<a href="{{ route('jurisdiction_parkings_edit', ['jurisdiction_parking_id' => $item->jurisdiction_parking_id]) }}" class="btn btn-sm btn-default ml10">編集</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<!-- 右側データテーブル -->
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<th><span>管轄駐輪場ID</span></th>
<th><span>管轄名</span></th>
{{-- チェック + 編集 用の1列 --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='jurisdiction_parking_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="jurisdiction_parking_id"><span>管轄駐輪場ID</span></th>
<th class="sorting {{ ($sort=='jurisdiction_parking_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="jurisdiction_parking_name"><span>管轄名</span></th>
<th><span>オペレーター(エリアマネージャ)</span></th>
<th><span>駐車場</span></th>
</tr>
@ -84,19 +71,29 @@
<tbody>
@foreach($list as $item)
<tr>
<td class="sm-item text-left">{{ $item->jurisdiction_parking_id }}</td>
<td class="sm-item text-left">{{ $item->jurisdiction_parking_name }}</td>
<td class="sm-item text-left">{{ $item->ope->ope_name ?? '' }}</td>
<td class="sm-item text-left">{{ $item->park->park_name ?? '' }}</td>
{{-- チェック + 編集ボタン --}}
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->jurisdiction_parking_id }}">
<a href="{{ route('jurisdiction_parkings_edit', ['id' => $item->jurisdiction_parking_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->jurisdiction_parking_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->jurisdiction_parking_name }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope->ope_name ?? '' }}</td>
<td class="sm-item text-left align-middle">{{ $item->park->park_name ?? '' }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</section>
<form action="{{ route('jurisdiction_parkings_export') }}" method="GET" id="form_export"></form>
@endsection
@endsection

View File

@ -27,7 +27,7 @@
<div class="d-flex justify-content-start align-items-center">
@if($isInfo)
<a href="{{ route('managers_add') }}" class="btn btn-lg btn-success mr-2">{{ __('登録') }}</a>
<a href="{{ route('managers_edit', ['manager_id' => $manager_id]) }}" class="btn btn-lg btn-danger">{{ __('編集') }}</a>
<a href="{{ route('managers_edit', ['id' => $manager_id]) }}" class="btn btn-lg btn-danger">{{ __('編集') }}</a>
@else
<button type="submit" class="btn btn-lg btn-success mr-2">
{{ $isAddPage ? __('登録') : __('保存') }}
@ -44,7 +44,7 @@
@if($isInfo || $isEdit)
{{-- 駐車場管理者ID表示のみ --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_id') }}</label>
<label>{{ __('駐車場管理者ID') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -58,7 +58,7 @@
{{-- 駐車場管理者名 --}}
<div class="form-group col-3">
<label @if(!$isInfo) class="required" @endif>{{ __('validation.attributes.manager_name') }}</label>
<label @if(!$isInfo) class="required" @endif>{{ __('駐車場管理者名') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -72,7 +72,7 @@
{{-- 種別 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_type') }}</label>
<label>{{ __('種別') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -86,7 +86,7 @@
{{-- 所属駐輪場 --}}
<div class="form-group col-3">
<label @if(!$isInfo) class="required" @endif>{{ __('validation.attributes.park_name') }}</label>
<label @if(!$isInfo) class="required" @endif>{{ __('駐輪場名') }}</label>
</div>
<div class="form-group col-9">
<select class="form-control form-control-lg mb10"
@ -103,7 +103,7 @@
{{-- 管理デバイス1 --}}
<div class="form-group col-3">
<label @if(!$isInfo) class="required" @endif>{{ __('validation.attributes.manager_device1') }}</label>
<label @if(!$isInfo) class="required" @endif>{{ __('管理デバイス1') }}</label>
</div>
<div class="form-group col-9">
<select class="form-control form-control-lg mb10"
@ -120,7 +120,7 @@
{{-- 管理デバイス2 --}}
<div class="form-group col-3">
<label @if(!$isInfo) class="required" @endif>{{ __('validation.attributes.manager_device2') }}</label>
<label @if(!$isInfo) class="required" @endif>{{ __('管理デバイス2') }}</label>
</div>
<div class="form-group col-9">
<select class="form-control form-control-lg mb10"
@ -137,7 +137,7 @@
{{-- メールアドレス --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_mail') }}</label>
<label>{{ __('メールアドレス') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -150,7 +150,7 @@
{{-- 電話番号 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_tel') }}</label>
<label>{{ __('電話番号') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -163,7 +163,7 @@
{{-- アラート1送信checkbox + hidden 0 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_alert1') }}</label>
<label>{{ __('アラート1') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group align-items-center">
@ -177,7 +177,7 @@
{{-- アラート2送信checkbox + hidden 0 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_alert2') }}</label>
<label>{{ __('アラート2') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group align-items-center">
@ -191,7 +191,7 @@
{{-- 退職フラグ --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_quit_flag') }}</label>
<label>{{ __('退職フラグ') }}</label>
</div>
<div class="form-group col-9">
<div class="row">
@ -214,7 +214,7 @@
{{-- 退職日 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.manager_quitday') }}</label>
<label>{{ __('退職日') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -232,7 +232,7 @@
<div class="d-flex justify-content-start align-items-center">
@if($isInfo)
<a href="{{ route('managers_add') }}" class="btn btn-lg btn-success mr-2">{{ __('登録') }}</a>
<a href="{{ route('managers_edit', ['manager_id' => $manager_id]) }}" class="btn btn-lg btn-danger">{{ __('編集') }}</a>
<a href="{{ route('managers_edit', ['id' => $manager_id]) }}" class="btn btn-lg btn-danger">{{ __('編集') }}</a>
@else
<button type="submit" class="btn btn-lg btn-success mr-2">
{{ $isAddPage ? __('登録') : __('保存') }}

View File

@ -43,7 +43,7 @@
<div class="card p-3">
{{-- 更新用フォーム --}}
<form method="post" action="{{ route('managers_edit', ['manager_id' => $mid]) }}">
<form method="post" action="{{ route('managers_edit', ['id' => $mid]) }}">
@csrf
@include('admin.managers._form', ['isEdit' => 1, 'isInfo' => 0])

View File

@ -3,7 +3,7 @@
@section('content')
@php
// 兼容控制器传参:$record 或 $manager_id
$mid = $record->manager_id ?? ($manager_id ?? null);
@endphp

View File

@ -2,210 +2,134 @@
@section('title', '[東京都|〇〇駐輪場] 駐輪場管理者マスタ')
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('駐輪場管理者マスタ') }}</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript: void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{ __('駐輪場管理者マスタ') }}</li>
</ol>
</div>
<!-- Content Header -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">駐輪場管理者マスタ</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">駐輪場管理者マスタ</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
<div class="row">
{{-- 並び替え用 --}}
<form action="{{ route('managers') }}" method="post" id="list-form">
@csrf
<input type="hidden" value="{{ $sort }}" name="sort" id="sort">
<input type="hidden" value="{{ $sort_type }}" name="sort_type" id="sort_type">
</form>
<div class="container-fluid mb20">
{{-- 新規 --}}
<a href="{{ route('managers_add') }}" class="btn btn-sm btn-default mr10">
{{ __('新規') }}
</a>
{{-- 削除(左侧勾选后提交下方 form_delete --}}
<button type="submit" class="btn btn-sm btn-default mr10" id="delete" form="form_delete">
{{ __('削除') }}
</button>
{{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div>
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
{{-- 左:チェック&操作 --}}
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<form action="{{ route('managers_delete') }}" method="post" id="form_delete">
@csrf
<table class="table dataTable">
<thead>
<tr>
<th>
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr role="row">
<td>
<input type="checkbox" class="minimal m-0 checkbox"
value="{{ $item->manager_id }}" name="pk[]">
<div class="btn_action">
{{-- <a href="{{ route('managers_add') }}" class="btn btn-sm btn-default">詳細</a> --}}
<a href="{{ route('managers_info', ['manager_id' => $item->manager_id]) }}"
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
{{-- 右:一覧テーブル --}}
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
{{-- 駐車場管理者ID --}}
<th class="sorting @if($sort=='manager_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_id"><span>{{ __('validation.attributes.manager_id') }}</span></th>
{{-- 駐車場管理者名 --}}
<th class="sorting @if($sort=='manager_name'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_name"><span>{{ __('validation.attributes.manager_name') }}</span></th>
{{-- 種別 --}}
<th><span>{{ __('validation.attributes.manager_type') }}</span></th>
{{-- 所属駐車場ID --}}
<th class="sorting @if($sort=='manager_parkid'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_parkid"><span>{{ __('validation.attributes.manager_parkid') }}</span></th>
{{-- 管理デバイス1/2 --}}
<th><span>{{ __('validation.attributes.manager_device1') }}</span></th>
<th><span>{{ __('validation.attributes.manager_device2') }}</span></th>
{{-- メール --}}
<th><span>{{ __('validation.attributes.manager_mail') }}</span></th>
{{-- 電話 --}}
<th class="sorting @if($sort=='manager_tel'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_tel"><span>{{ __('validation.attributes.manager_tel') }}</span></th>
{{-- アラート1★sort 修正済) --}}
<th class="sorting @if($sort=='manager_alert1'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_alert1"><span>{{ __('validation.attributes.manager_alert1') }}</span></th>
{{-- アラート2 --}}
<th class="sorting @if($sort=='manager_alert2'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_alert2"><span>{{ __('validation.attributes.manager_alert2') }}</span></th>
{{-- 退職フラグ --}}
<th class="sorting @if($sort=='manager_quit_flag'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif"
sort="manager_quit_flag"><span>{{ __('validation.attributes.manager_quit_flag') }}</span></th>
{{-- 退職日 --}}
<th><span>{{ __('validation.attributes.manager_quitday') }}</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class='sm-item text-left'>
<span>{{ mb_substr($item->manager_id, 0, 10) }}</span>
</td>
<td class='sm-item text-right'>
<span>{{ mb_substr($item->manager_name, 0, 10) }}</span>
</td>
<td class='sm-item text-left'>
<span>{{ mb_substr($item->manager_type, 0, 10) }}</span>
</td>
<td class='sm-item text-right'>
<span>{{ mb_substr(!empty($item->getPark()) ? $item->getPark()->park_name : "", 0, 10) }}</span>
</td>
<td class='sm-item text-right'>
<span>{{ mb_substr(!empty($item->getDevice1()) ? $item->getDevice1()->device_subject : "", 0, 10) }}</span>
</td>
<td class='sm-item text-right'>
<span>{{ mb_substr(!empty($item->getDevice2()) ? $item->getDevice2()->device_subject : "", 0, 10) }}</span>
</td>
<td class='sm-item text-left'>
<span>{{ mb_substr($item->manager_mail, 0, 20) }}</span>
</td>
<td class='sm-item text-left'>
<span>{{ mb_substr($item->manager_tel, 0, 20) }}</span>
</td>
<td class='sm-item text-left'>
<span>{{ mb_substr($item->manager_alert1, 0, 20) }}</span>
</td>
<td class='sm-item text-left'>
<span>{{ mb_substr($item->manager_alert2, 0, 20) }}</span>
</td>
<td class='sm-item text-left'>
<span>{{ $item->getManagerQuitFlagDisplay() }}</span>
</td>
<td class='sm-item text-right'>
@if($item->manager_quitday)
<span class="text-muted"><i class="fa fa-clock-o mr-1"></i>
{{ mb_substr($item->manager_quitday, 0, 10) }}
</span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('managers') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<!-- 操作ボタン -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('managers_add') }}'">新規</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
</section>
<script>
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function () {
const checks = document.querySelectorAll('#form_delete .checkbox');
checks.forEach(ch => ch.checked = this.checked);
});
</script>
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@endif
</div>
<!-- 単一テーブル構成 -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('managers_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
{{-- チェック + 編集ボタン列 --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='manager_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_id"><span>駐輪場管理者ID</span></th>
<th class="sorting {{ ($sort=='manager_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_name"><span>駐輪場管理者名</span></th>
<th><span>種別</span></th>
<th class="sorting {{ ($sort=='manager_parkid') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_parkid"><span>所属駐車場ID</span></th>
<th><span>管理デバイス1</span></th>
<th><span>管理デバイス2</span></th>
<th><span>メール</span></th>
<th class="sorting {{ ($sort=='manager_tel') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_tel"><span>電話</span></th>
<th class="sorting {{ ($sort=='manager_alert1') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_alert1"><span>アラート1</span></th>
<th class="sorting {{ ($sort=='manager_alert2') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_alert2"><span>アラート2</span></th>
<th class="sorting {{ ($sort=='manager_quit_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="manager_quit_flag"><span>退職フラグ</span></th>
<th><span>退職日</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
{{-- チェック+編集ボタン --}}
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->manager_id }}">
<a href="{{ route('managers_info', ['id' => $item->manager_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->manager_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->manager_name }}</td>
<td class="sm-item text-left align-middle">{{ $item->manager_type }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getPark()) ? $item->getPark()->park_name : '' }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getDevice1()) ? $item->getDevice1()->device_subject : '' }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getDevice2()) ? $item->getDevice2()->device_subject : '' }}</td>
<td class="sm-item text-left align-middle">{{ $item->manager_mail }}</td>
<td class="sm-item text-left align-middle">{{ $item->manager_tel }}</td>
<td class="sm-item text-left align-middle">{{ $item->manager_alert1 }}</td>
<td class="sm-item text-left align-middle">{{ $item->manager_alert2 }}</td>
<td class="sm-item text-left align-middle">{{ $item->getManagerQuitFlagDisplay() }}</td>
<td class="sm-item text-left align-middle">
@if($item->manager_quitday)
<span class="text-muted">
<i class="fa fa-clock-o mr-1"></i>
{{ mb_substr($item->manager_quitday, 0, 10) }}
</span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで -->
</div>
</section>
<form action="{{ route('managers_export') }}" method="GET" id="form_export"></form>
<script>
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function () {
const checks = document.querySelectorAll('#form_delete .checkbox');
checks.forEach(ch => ch.checked = this.checked);
});
</script>
@endsection

View File

@ -1,238 +1,183 @@
@extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータキュー')
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{__('オペレータキュー')}}</h1>
</div><!-- /.col -->
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{route('home')}}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript: void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{__('オペレータキュー')}}</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->
<!-- Main content -->
<section class="content">
<!-- キューステータス -->
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h3 class="card-title">絞り込みフィルター</h3></div>
<div class="card-body">
<form action="{{ route('operator_ques') }}" method="POST" id="filter-form">
@csrf
<input type="hidden" name="sort" id="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type ?? '' }}">
<div class="row">
<div class="form-group col-12">
<label>キューステータス</label>
<select name="que_status" class="form-control">
<option value="">-- 選択してください --</option>
@foreach(\App\Models\OperatorQue::QueStatus as $key => $label)
<option value="{{ $key }}"
@if(old('que_status', $que_status ?? '') == $key) selected @endif>
{{ $label }}
</option>
@endforeach
</select>
</div>
</div>
<div class="form-group col-12 text-left mt-2">
<button type="submit" name="action" value="filter" class="btn btn-default">絞り込み</button>
<button type="submit" name="action" value="reset" class="btn btn-default">解除</button>
</div>
</form>
</div>
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">オペレータキュー</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item active">オペレータキュー</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<!-- 絞り込みフィルター -->
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h3 class="card-title">絞り込みフィルター</h3></div>
<div class="card-body">
<form action="{{ route('operator_ques') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
<div class="row">
<div class="form-group col-12">
<label>キューステータス</label>
<select name="que_status" class="form-control">
<option value="">-- 選択してください --</option>
@foreach(\App\Models\OperatorQue::QueStatus as $key => $label)
<option value="{{ $key }}" {{ old('que_status', $que_status ?? '') == $key ? 'selected' : '' }}>
{{ $label }}
</option>
@endforeach
</select>
</div>
</div>
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="row">
<form action="{{route('operator_ques')}}" method='post' id='list-form'>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" value="{{$sort}}" name="sort" id="sort">
<input type="hidden" value="{{$sort_type}}" name="sort_type" id="sort_type">
<div class="form-group col-12 text-left">
<button type="submit" name="action" value="filter" class="btn btn-default">絞り込み</button>
<button type="submit" name="action" value="reset" class="btn btn-default">解除</button>
</div>
</form>
<div class="container-fluid mb20">
<button type="submit" class="btn btn-sm btn-default mr10" name="delete"
id="delete">{{__('削除')}}</button>
<button type="submit" class="btn btn-sm btn-default mr10" name="import_csv" id="import_csv" action="{{route('operator_ques_import')}}">{{__('インポート')}}</button>
<button type="submit" class="btn btn-sm btn-default mr10" name="export_csv" id="export_csv" action="{{route('operator_ques_export')}}">{{__('CSV出力')}}</button>
{{ $list->appends(['sort' => $sort,'sort_type'=>$sort_type])->links('pagination') }}
</div>
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<form action="{{route('operator_ques_delete')}}" method="post" id="form_delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<table class="table dataTable">
<thead>
<tr>
<th>
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr role="row">
<td>
<input type="checkbox" class="minimal m-0 checkbox"
value="{{ $item->que_id }}" name="pk[]">
<div class="btn_action">
{{-- 詳細 --}}
{{-- <a href="{{ route('operator_ques_add') }}" class="btn btn-sm btn-default">詳細</a> --}}
{{-- 編集 --}}
<a href="{{ route('operator_ques_info', ['id' => $item->que_id]) }}"
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<!--キューID-->
<th class="sorting @if($sort=="que_id"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="que_id"><span>{{__('validation.attributes.que_id')}}</span>
</th>
<!-- 利用者名 -->
<th class="sorting @if($sort=="user_id"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="user_id"><span>{{__('validation.attributes.user_name')}}</span>
</th>
<!-- 携帯電話番号 -->
<th><span>{{__('validation.attributes.user_mobile')}}</span></th>
<!-- 自宅電話番号 -->
<th><span>{{__('validation.attributes.user_homephone')}}</span></th>
<!-- 駐輪場 -->
<th class="sorting @if($sort=="park_name"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="park_name"><span>{{__('validation.attributes.park_name')}}</span>
</th>
<!-- キュー種別 -->
<th class="sorting @if($sort=="que_class"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="que_class"><span>{{__('validation.attributes.que_class')}}</span>
</th>
<!-- キューコメント -->
<th class="sorting @if($sort=="que_comment"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="que_comment"><span>{{__('validation.attributes.que_comment')}}</span>
</th>
<!-- キューステータス -->
<th class="sorting @if($sort=="que_status"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="que_status"><span>{{__('validation.attributes.que_status')}}</span>
</th>
<!-- キューステータスコメント -->
<th><span>{{__('validation.attributes.que_status_comment')}}</span></th>
<!-- 処理リンク -->
<th><span>{{__('validation.attributes.processing')}}</span>
</th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class='sm-item text-left'>
<span>{{mb_substr($item->que_id, 0, 10)}}</span></td>
<!-- 利用者名 -->
<td class='sm-item text-right'>
<span>{{mb_substr(!empty($item->getUser())?$item->getUser()->user_name:"", 0, 10)}}</span></td>
<!-- 携帯電話番号 -->
<td class='sm-item text-left'>
<span>{{mb_substr(!empty($item->getUser())?$item->getUser()->user_mobile:"", 0, 15)}}</span></td>
<!-- 自宅電話番号 -->
<td class='sm-item text-left'>
<span>{{mb_substr(!empty($item->getUser())?$item->getUser()->user_homephone:"", 0, 15)}}</span></td>
<!-- 駐輪場 -->
<td class='sm-item text-right'>
<span>{{mb_substr(!empty($item->getPark())?$item->getPark()->park_name:"", 0, 10)}}</span></td>
<!-- キュー種別 -->
<td class='sm-item text-right'>
<span>{{ mb_substr($item->getQueClassLabel(), 0, 10) }}</span>
</td>
<!-- キューコメント -->
<td class='sm-item text-right'>
<span>{{ mb_substr($item->que_comment, 0, 20) }}</span>
</td>
<!-- キューステータス -->
<td class='sm-item text-right'>
<span>{{ mb_substr($item->getQueStatusLabel(), 0, 10) }}</span>
</td>
<!-- キューステータスコメント -->
<td class='sm-item text-right'>
<span>{{mb_substr($item->que_status_comment, 0, 20)}}</span></td>
<!-- //TODO 処理リンク -->
<td class='sm-item text-left'><span></span></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- /.row -->
</div><!-- /.container-fluid -->
</section>
<!-- /.content -->
</div>
</div>
<!-- 絞り込みフィルター -->
@endsection
<div class="container-fluid">
<!-- ツールバー -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('operator_ques_import') }}'">インポート</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<!-- ツールバー -->
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<!-- メッセージ表示 -->
<!-- 単一テーブル構成 -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('operator_ques_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='que_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="que_id"><span>キューID</span></th>
<th class="sorting {{ ($sort=='user_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="user_id"><span>利用者名</span></th>
<th><span>携帯電話番号</span></th>
<th><span>自宅電話番号</span></th>
<th class="sorting {{ ($sort=='park_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="park_name"><span>駐輪場</span></th>
<th class="sorting {{ ($sort=='que_class') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="que_class"><span>キュー種別</span></th>
<th class="sorting {{ ($sort=='que_comment') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="que_comment"><span>キューコメント</span></th>
<th class="sorting {{ ($sort=='que_status') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="que_status"><span>キューステータス</span></th>
<th><span>キューステータスコメント</span></th>
<th><span>処理リンク</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->que_id }}">
<a href="{{ route('operator_ques_info', ['id' => $item->que_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->que_id }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getUser()) ? $item->getUser()->user_name : '' }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getUser()) ? $item->getUser()->user_mobile : '' }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getUser()) ? $item->getUser()->user_homephone : '' }}</td>
<td class="sm-item text-left align-middle">{{ !empty($item->getPark()) ? $item->getPark()->park_name : '' }}</td>
<td class="sm-item text-left align-middle">{{ $item->getQueClassLabel() }}</td>
<td class="sm-item text-left align-middle">{{ $item->que_comment }}</td>
<td class="sm-item text-left align-middle">{{ $item->getQueStatusLabel() }}</td>
<td class="sm-item text-left align-middle">{{ $item->que_status_comment }}</td>
<td class="sm-item text-left align-middle"></td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成 -->
</div>
</section>
<form action="{{ route('operator_ques_export') }}" method="GET" id="form_export"></form>
@push('scripts')
<script>
// 全選択・全解除
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
</script>
@endpush
@endsection

View File

@ -1,320 +1,176 @@
@extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ')
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{__('オペレータマスタ')}}</h1>
</div><!-- /.col -->
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{__('オペレータマスタ')}}</li>
</ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div>
<!-- /.content-header -->
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<div class="row">
<form action="{{ route('opes') }}" method="post" id="list-form">
@csrf
<input type="hidden" value="{{ $sort }}" name="sort" id="sort">
<input type="hidden" value="{{ $sort_type }}" name="sort_type" id="sort_type">
</form>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('opes_add') }}'"> 新規</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">{{ __('削除') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_import') }}">{{ __('インポート') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_export') }}">{{ __('CSV出力') }}</button>
{{ $list->appends(['sort' => $sort,'sort_type'=>$sort_type])->links('pagination') }}
</div>
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<form action="{{ route('opes_delete') }}" method="post" id="form_delete">
@csrf
<table class="table dataTable">
<thead>
<tr>
<th>
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr role="row">
<td>
<input type="checkbox" class="minimal m-0 checkbox"
value="{{ $item->ope_id }}" name="pk[]">
<div class="btn_action">
<a href="{{ route('opes_info',['id'=>$item->ope_id]) }}"
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<!-- オペレータID -->
<th class="sorting @if($sort=="ope_id"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_id"><span>{{__('validation.attributes.ope_id')}}</span>
</th>
<!-- オペレータ名 -->
<th class="sorting @if($sort=="ope_name"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_name"><span>{{__('validation.attributes.ope_name')}}</span>
</th>
<!-- オペレータ名 -->
<th><span>{{__('validation.attributes.password')}}</span></th>
<!-- オペレータ種別 -->
<th class="sorting @if($sort=="ope_type"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_type"><span>{{__('validation.attributes.ope_type')}}</span>
</th>
<!-- メールアドレス -->
<th><span>{{__('validation.attributes.ope_mail')}}</span>
</th>
<!-- 電話番号 -->
<th class="sorting @if($sort=="ope_phone"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_phone"><span>{{__('validation.attributes.ope_phone')}}</span>
</th>
<!-- キュー1アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que1"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que1">
<span>{{__('validation.attributes.ope_sendalart_que1')}}</span>
</th>
<!-- キュー2アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que2"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que2">
<span>{{__('validation.attributes.ope_sendalart_que2')}}</span>
</th>
<!-- キュー3アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que3"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que3">
<span>{{__('validation.attributes.ope_sendalart_que3')}}</span>
</th>
<!-- キュー4アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que4"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que4">
<span>{{__('validation.attributes.ope_sendalart_que4')}}</span>
</th>
<!-- キュー5アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que5"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que5">
<span>{{__('validation.attributes.ope_sendalart_que5')}}</span>
</th>
<!-- キュー6アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que6"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que6">
<span>{{__('validation.attributes.ope_sendalart_que6')}}</span>
</th>
<!-- キュー7アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que7"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que7">
<span>{{__('validation.attributes.ope_sendalart_que7')}}</span>
</th>
<!-- キュー8アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que8"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que8">
<span>{{__('validation.attributes.ope_sendalart_que8')}}</span>
</th>
<!-- キュー9アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que9"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que9">
<span>{{__('validation.attributes.ope_sendalart_que9')}}</span>
</th>
<!-- キュー10アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que10"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que10">
<span>{{__('validation.attributes.ope_sendalart_que10')}}</span>
</th>
<!-- キュー11アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que11"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que11">
<span>{{__('validation.attributes.ope_sendalart_que11')}}</span>
</th>
<!-- キュー12アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que12"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que12">
<span>{{__('validation.attributes.ope_sendalart_que12')}}</span>
</th>
<!-- キュー13アラート送信 -->
<th class="sorting @if($sort=="ope_sendalart_que13"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_sendalart_que13">
<span>{{__('validation.attributes.ope_sendalart_que13')}}</span>
</th>
<!-- 管理者権限付与 -->
<th class="sorting @if($sort=="ope_auth1"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_auth1">
<span>{{__('validation.attributes.ope_auth1')}}</span>
</th>
<!-- エリアマネージャー権限付与 -->
<th class="sorting @if($sort=="ope_auth1"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_auth1">
<span>{{__('validation.attributes.ope_auth1')}}</span>
</th>
<!-- エリアオペレーター権限付与 -->
<th class="sorting @if($sort=="ope_auth1"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_auth1">
<span>{{__('validation.attributes.ope_auth1')}}</span>
</th>
<!-- オペレーター権限付与 -->
<th class="sorting @if($sort=="ope_auth1"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_auth1">
<span>{{__('validation.attributes.ope_auth1')}}</span>
</th>
<!-- 退職フラグ -->
<th class="sorting @if($sort=="ope_quit_flag"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_quit_flag"><span>{{__('validation.attributes.ope_quit_flag')}}</span>
</th>
<!-- 退職日 -->
<th class="sorting @if($sort=="ope_quitday"){{$sort_type == 'asc'?'sorting_asc':'sorting_desc'}}@endif"
sort="ope_quitday"><span>{{__('validation.attributes.ope_quitday')}}</span>
</th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<!-- オペレータID -->
<td class='sm-item text-left'><span>{{mb_substr($item->ope_id, 0, 10)}}</span>
</td>
<!-- オペレータ名 -->
<td class='sm-item text-right'><span>{{mb_substr($item->ope_name, 0, 10)}}</span>
</td>
<td class='sm-item text-right'><span>{{mb_substr($item->ope_pass, 0, 10)}}</span>
</td>
<!-- オペレータ種別 -->
<td class='sm-item text-right'>
<span>{{ __( \App\Models\Ope::OPE_TYPE[$item->ope_type] ) }}</span>
</td>
<!-- メールアドレス -->
<td class='sm-item text-right'><span>{{mb_substr($item->ope_mail, 0, 10)}}</span>
</td>
<!-- 電話番号 -->
<td class='sm-item text-left'>
<span>{{mb_substr($item->ope_phone, 0, 15)}}</span></td>
<!-- キュー1アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que1?__("はい"):__("いいえ")}}</span></td>
<!-- キュー2アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que2?__("はい"):__("いいえ")}}</span></td>
<!-- キュー3アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que3?__("はい"):__("いいえ")}}</span></td>
<!-- キュー4アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que4?__("はい"):__("いいえ")}}</span></td>
<!-- キュー5アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que5?__("はい"):__("いいえ")}}</span></td>
<!-- キュー6アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que6?__("はい"):__("いいえ")}}</span></td>
<!-- キュー7アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que7?__("はい"):__("いいえ")}}</span></td>
<!-- キュー8アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que8?__("はい"):__("いいえ")}}</span></td>
<!-- キュー9アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que9?__("はい"):__("いいえ")}}</span></td>
<!-- キュー10アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que10?__("はい"):__("いいえ")}}</span></td>
<!-- キュー11アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que11?__("はい"):__("いいえ")}}</span></td>
<!-- キュー12アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que12?__("はい"):__("いいえ")}}</span></td>
<!-- キュー13アラート送信 -->
<td class='sm-item text-right'>
<span>{{$item->ope_sendalart_que13?__("はい"):__("いいえ")}}</span></td>
<!-- 管理者権限付与 -->
<td class='sm-item text-right'>
<span>{{$item->ope_auth1}}</span></td>
<!-- エリアマネージャー権限付与 -->
<td class='sm-item text-right'>
<span>{{$item->ope_auth2}}</span></td>
<!-- エリアオペレーター権限付与 -->
<td class='sm-item text-right'>
<span>{{$item->ope_auth3}}</span></td>
<!-- オペレーター権限付与 -->
<td class='sm-item text-right'>
<span>{{$item->ope_auth4}}</span></td>
<!-- 退職フラグ -->
<td class='sm-item text-right'><span>{{$item->ope_quit_flag?__("退職"):__("退職しない")}}</span>
</td>
<!-- 退職日 -->
<td class='sm-item text-right'>
@if($item->ope_quitday)
<span class="text-muted"><i class="fa fa-clock-o mr-1"></i>
{{mb_substr($item->ope_quitday, 0, 10)}}
</span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">オペレータマスタ</h1>
</div>
</div><!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">オペレータマスタ</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('opes') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<!-- ツールバー -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('opes_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_import') }}">インポート</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_export') }}">CSV出力</button>
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div>
</div>
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> エラー:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> エラー:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('opes_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='ope_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_id"><span>オペレータID</span></th>
<th class="sorting {{ ($sort=='ope_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_name"><span>オペレータ名</span></th>
<th><span>パスワード</span></th>
<th class="sorting {{ ($sort=='ope_type') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_type"><span>オペレータ種別</span></th>
<th><span>メールアドレス</span></th>
<th class="sorting {{ ($sort=='ope_phone') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_phone"><span>電話番号</span></th>
<th><span>キュー1~13アラート送信</span></th>
<th><span>管理者権限</span></th>
<th><span>エリアマネージャー</span></th>
<th><span>エリアオペレーター</span></th>
<th><span>オペレーター権限</span></th>
<th class="sorting {{ ($sort=='ope_quit_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quit_flag"><span>退職フラグ</span></th>
<th class="sorting {{ ($sort=='ope_quitday') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="ope_quitday"><span>退職日</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->ope_id }}">
<a href="{{ route('opes_info', ['id' => $item->ope_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->ope_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_name }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_pass }}</td>
<td class="sm-item text-left align-middle">{{ \App\Models\Ope::OPE_TYPE[$item->ope_type] }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_mail }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_phone }}</td>
<td class="sm-item text-left align-middle">
{{ $item->ope_sendalart_que1 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que2 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que3 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que4 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que5 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que6 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que7 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que8 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que9 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que10 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que11 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que12 ? 'はい' : 'いいえ' }} /
{{ $item->ope_sendalart_que13 ? 'はい' : 'いいえ' }}
</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth1 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth2 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth3 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_auth4 }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_quit_flag ? '退職' : '在籍中' }}</td>
<td class="sm-item text-left align-middle">{{ $item->ope_quitday }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</section>
<form action="{{ route('opes_export') }}" method="GET" id="form_export"></form>
@push('scripts')
<script>
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
</script>
@endpush
@endsection

View File

@ -9,7 +9,7 @@
{{-- 登録・削除 ボタン(上部) --}}
<div class="text-left mt-2 mb-3">
@if($isInfo)
<a href="{{ route('payments_edit', ['payment_id' => $payment->payment_id]) }}" class="btn btn-lg btn-success">編集</a>
<a href="{{ route('payments_edit', ['id' => $payment->payment_id]) }}" class="btn btn-lg btn-success">編集</a>
@else
<button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit)
@ -198,7 +198,7 @@
{{-- 登録・削除 ボタン(下部重ね) --}}
<div class="text-left mt-2">
@if($isInfo)
<a href="{{ route('payments_edit', ['payment_id' => $payment->payment_id]) }}" class="btn btn-lg btn-success">編集</a>
<a href="{{ route('payments_edit', ['id' => $payment->payment_id]) }}" class="btn btn-lg btn-success">編集</a>
@else
<button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit)

View File

@ -21,7 +21,7 @@
<section class="content">
<div class="container-fluid">
<form action="{{ route('payments_edit', ['payment_id' => $payment->payment_id]) }}" method="POST">
<form action="{{ route('payments_edit', ['id' => $payment->payment_id]) }}" method="POST">
@csrf
@include('admin.payments._form', [
'payment' => $payment,

View File

@ -1,5 +1,5 @@
@extends('layouts.app')
@section('title', '決済情報マスタ')
@section('title', '[東京都|〇〇駐輪場] 決済情報マスタ')
@section('content')
<!-- Content Header -->
@ -24,60 +24,51 @@
<section class="content">
<div class="container-fluid">
{{-- 一覧のソート用(既存規約踏襲) --}}
{{-- 並び替え用 hidden --}}
<form action="{{ route('payments') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<!-- ツールバー -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('payments_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
{{ $payments->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
{{ $payments->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<div class="col-lg-12">
@if(session('success'))
<div class="alert alert-success alert-dismissible">{{ session('success') }}</div>
@elseif(session('error'))
<div class="alert alert-danger alert-dismissible">{{ session('error') }}</div>
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<!-- 左側チェックボックス&編集ボタン -->
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('payments_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table dataTable">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
</thead>
<tbody>
@foreach($payments as $payment)
<tr>
<td>
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $payment->payment_id }}" name="id[]">
<div class="btn_action">
<a href="{{ route('payments_edit', ['payment_id' => $payment->payment_id]) }}" class="btn btn-sm btn-default ml10">編集</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<!-- 右側データテーブル -->
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
{{-- チェック + 編集 --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='payment_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="payment_id">
<span>決済情報ID</span>
</th>
@ -101,26 +92,34 @@
<tbody>
@foreach($payments as $payment)
<tr>
<td class="sm-item text-left">{{ $payment->payment_id }}</td>
<td class="sm-item text-left">{{ $payment->payment_companyname }}</td>
<td class="sm-item text-left">{{ $payment->payment_inquirytel }}</td>
<td class="sm-item text-left">{{ $payment->payment_inquiryname }}</td>
<td class="sm-item text-left">{{ $payment->payment_time }}</td>
<td class="sm-item text-left">{{ optional($payment->updated_at)->format('Y-m-d H:i') }}</td>
{{-- 同じセルに チェック + 編集ボタン --}}
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="id[]" value="{{ $payment->payment_id }}">
<a href="{{ route('payments_edit', ['id' => $payment->payment_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $payment->payment_id }}</td>
<td class="sm-item text-left align-middle">{{ $payment->payment_companyname }}</td>
<td class="sm-item text-left align-middle">{{ $payment->payment_inquirytel }}</td>
<td class="sm-item text-left align-middle">{{ $payment->payment_inquiryname }}</td>
<td class="sm-item text-left align-middle">{{ $payment->payment_time }}</td>
<td class="sm-item text-left align-middle">{{ optional($payment->updated_at)->format('Y-m-d H:i') }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</section>
<form action="{{ route('payments_export') }}" method="GET" id="form_export"></form>
{{-- 一括削除 & ソートのJS(既存規約に合わせ最小限) --}}
{{-- 一括削除 & ソートのJS --}}
@push('scripts')
<script>
// 全選択
@ -140,7 +139,7 @@
}
});
// ヘッダクリックでソート変更(既存 list と同様のカスタム属性 "sort" を使用)
// ヘッダクリックでソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');

View File

@ -22,7 +22,7 @@
<section class="content">
<div class="container-fluid">
<form method="POST" action="{{ route('print_areas_edit', ['print_area_id' => $record->print_area_id]) }}">
<form method="POST" action="{{ route('print_areas_edit', ['id' => $record->print_area_id]) }}">
@csrf
@include('admin.print_areas._form', [

View File

@ -21,7 +21,7 @@
<section class="content">
<div class="container-fluid">
<form method="POST" action="{{ route('print_areas_info', ['print_area_id' => $record->print_area_id]) }}">
<form method="POST" action="{{ route('print_areas_info', ['id' => $record->print_area_id]) }}">
@csrf
@include('admin.print_areas._form', ['isEdit' => 0, 'isInfo' => 1])
</form>

View File

@ -12,6 +12,7 @@
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">シール印刷範囲マスタ</li>
</ol>
</div>
@ -19,21 +20,28 @@
</div>
</div>
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('print_areas') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<!-- 操作ボタン + ページネーション -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('print_areas_add') }}'">新規</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete" onclick="return confirm('選択された項目を削除しますか?');">削除</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">CSV出力</button>
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<!-- メッセージ表示 -->
<div class="col-lg-12">
@if(session('success'))
<div class="alert alert-success alert-dismissible">{{ session('success') }}</div>
@ -42,57 +50,44 @@
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<!-- 左側チェックボックス -->
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<!-- 単一テーブル構成 -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('print_areas_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table dataTable">
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td>
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $item->print_area_id }}" name="pk[]">
<div class="btn_action">
<a href="{{ route('print_areas_edit', ['print_area_id' => $item->print_area_id]) }}" class="btn btn-sm btn-default ml10">編集</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<!-- 右側データテーブル -->
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<th><span>印刷範囲ID</span></th>
<th><span>印刷範囲名</span></th>
{{-- チェック + 編集ボタン --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='print_area_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="print_area_id"><span>印刷範囲ID</span></th>
<th class="sorting {{ ($sort=='print_area_name') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="print_area_name"><span>印刷範囲名</span></th>
<th><span>駐輪場名</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr>
<td class="sm-item text-left">{{ $item->print_area_id }}</td>
<td class="sm-item text-left">{{ $item->print_area_name }}</td>
<td class="sm-item text-left">{{ optional($item->park)->park_name }}</td>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->print_area_id }}">
<a href="{{ route('print_areas_edit', ['id' => $item->print_area_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->print_area_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->print_area_name }}</td>
<td class="sm-item text-left align-middle">{{ optional($item->park)->park_name ?? '-' }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで -->
</div>
</section>

View File

@ -18,8 +18,8 @@
@endif
<div class="card-header">
@if($isInfo)
<a href="{{route('regular_type_add')}}" class="btn btn-lg btn-success">{{__('登録')}}</a>
<a href="{{route('regular_type_edit',['id'=>$regular_type_id])}}" class="btn btn-lg btn-danger">{{__('編集')}}</a>
<a href="{{route('regular_types_add')}}" class="btn btn-lg btn-success">{{__('登録')}}</a>
<a href="{{route('regular_types_edit',['id'=>$regular_type_id])}}" class="btn btn-lg btn-danger">{{__('編集')}}</a>
@else
<button type="submit" class="btn btn-lg btn-danger register" >{{__('保存')}}</button>
@endIf
@ -171,8 +171,8 @@
</div>
</div>
@if($isInfo)
<a href="{{route('regular_type_add')}}" class="btn btn-lg btn-success">{{__('登録')}}</a>
<a href="{{route('regular_type_edit',['id'=>$regular_type_id])}}" class="btn btn-lg btn-danger">{{__('編集')}}</a>
<a href="{{route('regular_types_add')}}" class="btn btn-lg btn-success">{{__('登録')}}</a>
<a href="{{route('regular_types_edit',['id'=>$regular_type_id])}}" class="btn btn-lg btn-danger">{{__('編集')}}</a>
@else
<button type="submit" class="btn btn-lg btn-danger register" >{{__('保存')}}</button>
@endIf

View File

@ -31,7 +31,7 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<form method="post" action="{{ route('regular_type_add')}}" enctype="multipart/form-data">
<form method="post" action="{{ route('regular_types_add')}}" enctype="multipart/form-data">
<!-- TOKEN FORM -->
<input type="hidden" name="_token" value="{{ csrf_token() }}" >
<!-- / .TOKEN FORM -->

View File

@ -31,7 +31,7 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<form method="post" action="{{ route('regular_type_edit',['id'=>$regular_type_id])}}" enctype="multipart/form-data">
<form method="post" action="{{ route('regular_types_edit',['id'=>$regular_type_id])}}" enctype="multipart/form-data">
<!-- TOKEN FORM -->
<input type="hidden" name="_token" value="{{ csrf_token() }}" >
<!-- / .TOKEN FORM -->

View File

@ -31,7 +31,7 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<form method="post" action="{{ route('regular_type_info',['id'=>$regular_type_id])}}" enctype="multipart/form-data">
<form method="post" action="{{ route('regular_types_info',['id'=>$regular_type_id])}}" enctype="multipart/form-data">
<!-- TOKEN FORM -->
<input type="hidden" name="_token" value="{{ csrf_token() }}" >
<!-- / .TOKEN FORM -->

View File

@ -1,169 +1,114 @@
@extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] 定期種別マスタ')
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('定期種別マスタ') }}</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{ __('定期種別マスタ') }}</li>
</ol>
</div>
<!-- Content Header -->
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">定期種別マスタ</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">定期種別マスタ</li>
</ol>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
<div class="row">
<form action="{{ route('regular_types') }}" method="post" id="list-form">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" value="{{ $sort }}" name="sort" id="sort">
<input type="hidden" value="{{ $sort_type }}" name="sort_type" id="sort_type">
</form>
{{-- 並び替え用 hidden --}}
<form action="{{ route('regular_types') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<div class="container-fluid mb20">
<button type="submit" class="btn btn-sm btn-default mr10" name="delete" id="delete">{{ __('削除') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" name="import_csv" id="import_csv" action="{{ route('regular_types_import') }}">{{ __('インポート') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" name="export_csv" id="export_csv" action="{{ route('regular_types_export') }}">{{ __('CSV出力') }}</button>
{{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div>
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<form action="{{ route('regular_types_delete') }}" method="post" id="form_delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<table class="table dataTable">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
</thead>
<tbody>
@foreach($list as $item)
<tr role="row">
<td>
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $item->regular_type_id }}" name="pk[]">
<div class="btn_action">
<a href="{{ route('regular_type_info', ['id' => $item->regular_type_id]) }}" class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<!-- 定期種別ID -->
<th class="sorting @if($sort=='regular_type_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif" sort="regular_type_id">
<span>{{ __('validation.attributes.regular_type_id') }}</span>
</th>
<!-- 市区名 -->
<th><span>{{ __('validation.attributes.city_name') }}</span></th>
<!-- 定期種別1 -->
<th><span>{{ __('validation.attributes.regular_class_1') }}</span></th>
<!-- 定期種別2 -->
<th><span>{{ __('validation.attributes.regular_class_2') }}</span></th>
<!-- 定期種別3 -->
<th><span>{{ __('validation.attributes.regular_class_3') }}</span></th>
<!-- 定期種別6 -->
<th><span>{{ __('validation.attributes.regular_class_6') }}</span></th>
<!-- 定期種別12 -->
<th><span>{{ __('validation.attributes.regular_class_12') }}</span></th>
<!-- 備考 -->
<th><span>{{ __('validation.attributes.memo') }}</span></th>
</tr>
</thead>
@php
// 统一取一次常量,避免在 Blade 中多次写全限定类名
$rc = \App\Models\RegularType::RegularClass;
@endphp
<tbody>
@foreach($list as $item)
<tr>
<!-- 定期種別ID -->
<td class="sm-item text-left">
<span>{{ mb_substr($item->regular_type_id, 0, 10) }}</span>
</td>
<!-- 市区名 -->
<td class="sm-item text-right">
<span>{{ mb_substr($item->getCity()?->city_name ?? '-', 0, 10) }}</span>
</td>
<!-- 定期種別1 -->
<td class="sm-item text-right">
<span>{{ mb_substr(__($rc[$item->regular_class_1] ?? '-'), 0, 10) }}</span>
</td>
<!-- 定期種別2 -->
<td class="sm-item text-right">
<span>{{ mb_substr(__($rc[$item->regular_class_2] ?? '-'), 0, 10) }}</span>
</td>
<!-- 定期種別3 -->
<td class="sm-item text-right">
<span>{{ mb_substr(__($rc[$item->regular_class_3] ?? '-'), 0, 10) }}</span>
</td>
<!-- 定期種別6 -->
<td class="sm-item text-right">
<span>{{ mb_substr(__($rc[$item->regular_class_6] ?? '-'), 0, 10) }}</span>
</td>
<!-- 定期種別12 -->
<td class="sm-item text-right">
<span>{{ mb_substr(__($rc[$item->regular_class_12] ?? '-'), 0, 10) }}</span>
</td>
<!-- 備考 -->
<td class="sm-item text-right">
<span>{{ mb_substr($item->memo ?? '-', 0, 10) }}</span>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('regular_types_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
</section>
<!-- メッセージ表示 -->
<div class="col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@endif
</div>
<!-- 単一テーブル構成 -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('regular_types_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
{{-- チェック + 編集ボタン --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='regular_type_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="regular_type_id"><span>定期種別ID</span></th>
<th><span>市区名</span></th>
<th><span>定期種別1</span></th>
<th><span>定期種別2</span></th>
<th><span>定期種別3</span></th>
<th><span>定期種別6</span></th>
<th><span>定期種別12</span></th>
<th><span>備考</span></th>
</tr>
</thead>
<tbody>
@php
$rc = \App\Models\RegularType::RegularClass;
@endphp
@foreach($list as $item)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->regular_type_id }}">
<a href="{{ route('regular_types_info', ['id' => $item->regular_type_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->regular_type_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->getCity()?->city_name ?? '-' }}</td>
<td class="sm-item text-left align-middle">{{ __($rc[$item->regular_class_1] ?? '-') }}</td>
<td class="sm-item text-left align-middle">{{ __($rc[$item->regular_class_2] ?? '-') }}</td>
<td class="sm-item text-left align-middle">{{ __($rc[$item->regular_class_3] ?? '-') }}</td>
<td class="sm-item text-left align-middle">{{ __($rc[$item->regular_class_6] ?? '-') }}</td>
<td class="sm-item text-left align-middle">{{ __($rc[$item->regular_class_12] ?? '-') }}</td>
<td class="sm-item text-left align-middle">{{ $item->memo ?? '-' }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで -->
</div>
</section>
<form action="{{ route('regular_types_export') }}" method="GET" id="form_export"></form>
@endsection

View File

@ -3,152 +3,160 @@
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6"><h1 class="m-0 text-dark">{{ __('設定マスタ') }}</h1></div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{ __('設定マスタ') }}</li>
</ol>
</div>
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('設定マスタ') }}</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item active">{{ __('設定マスタ') }}</li>
</ol>
</div>
</div>
</div>
</div>
</div>
<section class="content">
<div class="container-fluid">
<div class="container-fluid">
{{-- ソート用フォーム --}}
<form action="{{ route('settings') }}" method="post" id="list-form" class="d-none">
@csrf
<input type="hidden" name="sort" id="sort" value="{{ $sort }}">
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}">
</form>
{{-- ソート用フォーム --}}
<form action="{{ route('settings') }}" method="post" id="list-form" class="d-none">
@csrf
<input type="hidden" name="sort" id="sort" value="{{ $sort }}">
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}">
</form>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('settings_add') }}'">{{ __('新規') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">{{ __('削除') }}</button>
{{ $list->appends(['sort'=>$sort,'sort_type'=>$sort_type])->links('pagination') }}
</div>
{{-- フラッシュ --}}
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
<!-- ツールバー -->
<div class="container-fluid mb20 d-flex justify-content-between align-items-center">
<div>
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('settings_add') }}'">
{{ __('新規') }}
</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">{{ __('削除') }}</button>
</div>
<div>
{{ $list->appends(['sort'=>$sort,'sort_type'=>$sort_type])->links('pagination') }}
</div>
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<div class="col-lg-12 sample03-wrapper no_padding_right mb20">
<form action="{{ route('settings_delete') }}" method="post" id="form_delete">
@csrf
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
{{-- 左:チェック+編集 --}}
<th style="width:140px; background:#f9f9f9;">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
{{-- 右:本体 --}}
<th sort="setting_id" class="sorting @if($sort=='setting_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right">
{{ __('設定ID') }}
</th>
<th sort="edit_master" class="sorting @if($sort=='edit_master'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left">
{{ __('編集マスタ') }}
</th>
<th sort="web_master" class="sorting @if($sort=='web_master'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left">
{{ __('ウェブ参照マスタ') }}
</th>
<th sort="auto_change_date" class="sorting @if($sort=='auto_change_date'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right">
{{ __('自動切替日時') }}
</th>
<th>{{ __('自動切換え参照マスタ') }}</th>
<th sort="printable_alert_flag" class="sorting @if($sort=='printable_alert_flag'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left">
{{ __('印字残警告') }}
</th>
<th class="text-right">{{ __('ロール紙印字可能数') }}</th>
<th class="text-right">{{ __('ロール紙印字残警告数') }}</th>
<th class="text-right">{{ __('キープアライブ(分)') }}</th>
</tr>
</thead>
<tbody>
@foreach($list as $row)
<tr>
{{-- 左:チェック+編集 --}}
<td class="sm-item text-left" style="background:#f9f9f9;">
<input type="checkbox" class="minimal m-0 checkbox" name="id[]" value="{{ $row->setting_id }}">
<div class="btn_action">
<a href="{{ route('settings_edit',['id'=>$row->setting_id]) }}" class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
{{-- フラッシュメッセージ --}}
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
</td>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
{{-- 右:本体 --}}
<td class="sm-item text-right">{{ $row->setting_id }}</td>
<td class="sm-item text-left">{{ $row->edit_master }}</td>
<td class="sm-item text-left">{{ $row->web_master }}</td>
<td class="sm-item text-right">
@php
$dt = $row->auto_change_date instanceof \Carbon\Carbon
? $row->auto_change_date->format('Y/m/d H:i')
: ($row->auto_change_date ? \Carbon\Carbon::parse($row->auto_change_date)->format('Y/m/d H:i') : '');
@endphp
{{ $dt }}
</td>
<td class="sm-item text-left">{{ $row->auto_chage_master }}</td>
<td class="sm-item text-left">{{ $row->printable_alert_flag ? '○' : '' }}</td>
<td class="sm-item text-right">{{ $row->printable_number }}</td>
<td class="sm-item text-right">{{ $row->printable_alert_number }}</td>
<td class="sm-item text-right">{{ $row->printer_keep_alive }}</td>
</tr>
@endforeach
</tbody>
</table>
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('settings_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th sort="setting_id" class="sorting {{ ($sort=='setting_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('設定ID') }}</span></th>
<th sort="edit_master" class="sorting {{ ($sort=='edit_master') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('編集マスタ') }}</span></th>
<th sort="web_master" class="sorting {{ ($sort=='web_master') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('ウェブ参照マスタ') }}</span></th>
<th sort="auto_change_date" class="sorting {{ ($sort=='auto_change_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('自動切替日時') }}</span></th>
<th><span>{{ __('自動切換え参照マスタ') }}</span></th>
<th sort="printable_alert_flag" class="sorting {{ ($sort=='printable_alert_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('印字残警告') }}</span></th>
<th class="text-right"><span>{{ __('ロール紙印字可能数') }}</span></th>
<th class="text-right"><span>{{ __('ロール紙印字残警告数') }}</span></th>
<th class="text-right"><span>{{ __('キープアライブ(分)') }}</span></th>
</tr>
</thead>
<tbody>
@foreach($list as $row)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="id[]" value="{{ $row->setting_id }}">
<a href="{{ route('settings_edit',['id'=>$row->setting_id]) }}" class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-right align-middle">{{ $row->setting_id }}</td>
<td class="sm-item text-left align-middle">{{ $row->edit_master }}</td>
<td class="sm-item text-left align-middle">{{ $row->web_master }}</td>
<td class="sm-item text-right align-middle">
@php
$dt = $row->auto_change_date instanceof \Carbon\Carbon
? $row->auto_change_date->format('Y/m/d H:i')
: ($row->auto_change_date ? \Carbon\Carbon::parse($row->auto_change_date)->format('Y/m/d H:i') : '');
@endphp
{{ $dt }}
</td>
<td class="sm-item text-left align-middle">{{ $row->auto_chage_master }}</td>
<td class="sm-item text-left align-middle">{{ $row->printable_alert_flag ? '○' : '' }}</td>
<td class="sm-item text-right align-middle">{{ $row->printable_number }}</td>
<td class="sm-item text-right align-middle">{{ $row->printable_alert_number }}</td>
<td class="sm-item text-right align-middle">{{ $row->printer_keep_alive }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</form>
</div>
</div>
</section>
{{-- 一括削除 & ソート --}}
@push('scripts')
<script>
document.querySelectorAll('th.sorting[sort]').forEach(function(th){
th.style.cursor = 'pointer';
th.addEventListener('click', function(){
var field = this.getAttribute('sort');
var cur = document.getElementById('sort').value;
var type = document.getElementById('sort_type').value || 'asc';
var next = (cur === field && type === 'asc') ? 'desc' : 'asc';
document.getElementById('sort').value = field;
document.getElementById('sort_type').value = next;
document.getElementById('list-form').submit();
});
});
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(function(cb){ cb.checked = e.target.checked; });
});
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
</script>
@endpush
@endsection

View File

@ -20,7 +20,7 @@
<div class="card-header">
@if($isInfo)
<a href="{{ route('settlement_transactions_add') }}" class="btn btn-lg btn-success">{{ __('登録') }}</a>
<a href="{{ route('settlement_transactions_edit', ['settlement_transaction_id' => $transaction->settlement_transaction_id]) }}"
<a href="{{ route('settlement_transactions_edit', ['id' => $transaction->settlement_transaction_id]) }}"
class="btn btn-lg btn-danger">{{ __('編集') }}</a>
@else
<button type="submit" class="btn btn-lg btn-danger register">{{ __('保存') }}</button>
@ -33,7 +33,7 @@
{{-- 決済トランザクションID編集/参照のみ) --}}
@if($isInfo || $isEdit)
<div class="form-group col-3">
<label>{{ __('validation.attributes.settlement_transaction_id') }}</label>
<label>{{ __('決済トランザクションID') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -48,7 +48,7 @@
{{-- 定期契約ID --}}
<div class="form-group col-3">
<label @if(!$isInfo) class="required" @endif>{{ __('validation.attributes.contract_id') }}</label>
<label @if(!$isInfo) class="required" @endif>{{ __('契約ID') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -62,7 +62,7 @@
{{-- ステータス --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.status') }}</label>
<label>{{ __('ステータス') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -76,7 +76,7 @@
{{-- 支払いコード --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.pay_code') }}</label>
<label>{{ __('支払いコード') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -90,7 +90,7 @@
{{-- 受付番号 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.contract_payment_number') }}</label>
<label>{{ __('受付番号') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -104,7 +104,7 @@
{{-- 企業コード --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.corp_code') }}</label>
<label>{{ __('企業コード') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -118,7 +118,7 @@
{{-- MMS予約照会日時 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.mms_date') }}</label>
<label>{{ __('MMS予約照会日時') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -132,7 +132,7 @@
{{-- CVS本部コード --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.cvs_code') }}</label>
<label>{{ __('CVS本部コード') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -146,7 +146,7 @@
{{-- 店舗コード --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.shop_code') }}</label>
<label>{{ __('店舗コード') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -160,7 +160,7 @@
{{-- 入金日時DBはdatetime。画面はdateで日付入力を想定 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.pay_date') }}</label>
<label>{{ __('入金日時') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -174,7 +174,7 @@
{{-- 決済金額 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.settlement_amount') }}</label>
<label>{{ __('決済金額') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -188,7 +188,7 @@
{{-- 印紙貼付フラグ --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.stamp_flag') }}</label>
<label>{{ __('印紙貼付フラグ') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -202,7 +202,7 @@
{{-- MD5ハッシュ値 --}}
<div class="form-group col-3">
<label>{{ __('validation.attributes.md5_string') }}</label>
<label>{{ __('MD5ハッシュ値') }}</label>
</div>
<div class="form-group col-9">
<div class="input-group">
@ -219,7 +219,7 @@
{{-- 下部ボタン(上部と同じ) --}}
@if($isInfo)
<a href="{{ route('settlement_transactions_add') }}" class="btn btn-lg btn-success">{{ __('登録') }}</a>
<a href="{{ route('settlement_transactions_edit', ['settlement_transaction_id' => $transaction->settlement_transaction_id]) }}"
<a href="{{ route('settlement_transactions_edit', ['id' => $transaction->settlement_transaction_id]) }}"
class="btn btn-lg btn-danger">{{ __('編集') }}</a>
@else
<button type="submit" class="btn btn-lg btn-danger register">{{ __('保存') }}</button>

View File

@ -28,7 +28,7 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<form method="POST" action="{{ route('settlement_transactions_edit', ['settlement_transaction_id' => $transaction->settlement_transaction_id]) }}" enctype="multipart/form-data">
<form method="POST" action="{{ route('settlement_transactions_edit', ['id' => $transaction->settlement_transaction_id]) }}" enctype="multipart/form-data">
@csrf
@include('admin.settlement_transactions._form', [
'transaction' => $transaction,

View File

@ -2,228 +2,179 @@
@section('title', '[東京都|〇〇駐輪場] 決済トランザクション')
@section('content')
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('決済トランザクション') }}</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">{{ __('ホーム') }}</a></li>
<li class="breadcrumb-item active">{{ __('決済トランザクション') }}</li>
</ol>
</div>
<div class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-lg-6">
<h1 class="m-0 text-dark">決済トランザクション</h1>
</div>
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item active">決済トランザクション</li>
</ol>
</div>
</div>
</div>
<!-- /.content-header -->
</div>
<section class="content">
<!-- 絞り込みフィルター -->
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h3 class="card-title">絞り込みフィルター</h3></div>
<div class="card-body">
<form action="{{ route('settlement_transactions') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" id="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type ?? '' }}">
<div class="row">
<div class="form-group col-12">
<label>定期契約ID</label>
<input type="text" name="contract_id" class="form-control"
value="{{ old('contract_id', $contract_id ?? '') }}">
</div>
</div>
<div class="form-group col-12 text-left">
<button type="submit" name="action" value="filter" class="btn btn-default">絞り込み</button>
<button type="submit" name="action" value="unlink" class="btn btn-default">解除</button>
</div>
</form>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
{{-- ソート保持用 --}}
<section class="content">
<!-- 絞り込みフィルター -->
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h3 class="card-title">絞り込みフィルター</h3></div>
<div class="card-body">
<form action="{{ route('settlement_transactions') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
<div class="row">
<div class="form-group col-12">
<label>定期契約ID</label>
<input type="text" name="contract_id" class="form-control"
value="{{ old('contract_id', $contract_id ?? '') }}">
</div>
</div>
<div class="form-group col-12 text-left">
<button type="submit" name="action" value="filter" class="btn btn-default">絞り込み</button>
<button type="submit" name="action" value="unlink" class="btn btn-default">解除</button>
</div>
</form>
<div class="container-fluid mb20">
{{ $transactions->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
{{-- 左:チェック&操作 --}}
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<form action="{{ route('settlement_transactions_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table dataTable">
<thead>
<tr>
<th>
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
</tr>
</thead>
<tbody>
@foreach($transactions as $item)
<tr role="row">
<td>
<input type="checkbox" class="minimal m-0 checkbox"
value="{{ $item->settlement_transaction_id }}" name="ids[]">
<div class="btn_action">
<a href="{{ route('settlement_transactions_edit', ['settlement_transaction_id' => $item->settlement_transaction_id]) }}"
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
{{-- 右:データ一覧 --}}
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<thead>
<tr>
<th class="sorting {{ ($sort=='settlement_transaction_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="settlement_transaction_id">
<span>{{ __('validation.attributes.settlement_transaction_id') }}</span>
</th>
<th class="sorting {{ ($sort=='contract_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="contract_id">
<span>{{ __('validation.attributes.contract_id') }}</span>
</th>
<th class="sorting {{ ($sort=='status') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="status">
<span>{{ __('validation.attributes.status') }}</span>
</th>
<th><span>{{ __('validation.attributes.pay_code') }}</span></th>
<th><span>{{ __('validation.attributes.contract_payment_number') }}</span></th>
<th class="sorting {{ ($sort=='corp_code') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="corp_code">
<span>{{ __('validation.attributes.corp_code') }}</span>
</th>
<th class="sorting {{ ($sort=='mms_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="mms_date">
<span>{{ __('validation.attributes.mms_date') }}</span>
</th>
<th class="sorting {{ ($sort=='cvs_code') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="cvs_code">
<span>{{ __('validation.attributes.cvs_code') }}</span>
</th>
<th class="sorting {{ ($sort=='shop_code') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="shop_code">
<span>{{ __('validation.attributes.shop_code') }}</span>
</th>
<th class="sorting {{ ($sort=='pay_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="pay_date">
<span>{{ __('validation.attributes.pay_date') }}</span>
</th>
<th><span>{{ __('validation.attributes.settlement_amount') }}</span></th>
<th><span>{{ __('validation.attributes.stamp_flag') }}</span></th>
<th><span>{{ __('validation.attributes.md5_string') }}</span></th>
</tr>
</thead>
<tbody>
@foreach($transactions as $item)
<tr>
<td class="sm-item text-left">{{ $item->settlement_transaction_id }}</td>
<td class="sm-item text-left">{{ $item->contract_id }}</td>
<td class="sm-item text-left">{{ $item->status }}</td>
<td class="sm-item text-left">{{ $item->pay_code }}</td>
<td class="sm-item text-left">{{ $item->contract_payment_number }}</td>
<td class="sm-item text-left">{{ $item->corp_code }}</td>
<td class="sm-item text-left">{{ $item->mms_date }}</td>
<td class="sm-item text-left">{{ $item->cvs_code }}</td>
<td class="sm-item text-left">{{ $item->shop_code }}</td>
<td class="sm-item text-left">{{ optional($item->pay_date)->format('Y-m-d H:i') }}</td>
<td class="sm-item text-left">{{ $item->settlement_amount }}</td>
<td class="sm-item text-left">{{ $item->stamp_flag }}</td>
<td class="sm-item text-left">{{ $item->md5_string }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
<div class="container-fluid">
<!-- ツールバー -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('settlement_transactions_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
{{ $transactions->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
@push('scripts')
<script>
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!}
</div>
@endif
</div>
// 削除
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) { alert('{{ __("削除対象が選択されていません。") }}'); return; }
if (confirm('{{ __("削除してよろしいですか?") }}')) {
document.getElementById('form_delete').submit();
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('settlement_transactions_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='settlement_transaction_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="settlement_transaction_id"><span>決済トランザクションID</span></th>
<th class="sorting {{ ($sort=='contract_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="contract_id"><span>定期契約ID</span></th>
<th class="sorting {{ ($sort=='status') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="status"><span>ステータス</span></th>
<th><span>決済コード</span></th>
<th><span>決済番号</span></th>
<th class="sorting {{ ($sort=='corp_code') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="corp_code"><span>企業コード</span></th>
<th class="sorting {{ ($sort=='mms_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="mms_date"><span>MMS日付</span></th>
<th class="sorting {{ ($sort=='cvs_code') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="cvs_code"><span>CVSコード</span></th>
<th class="sorting {{ ($sort=='shop_code') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="shop_code"><span>店舗コード</span></th>
<th class="sorting {{ ($sort=='pay_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="pay_date"><span>支払日</span></th>
<th><span>決済金額</span></th>
<th><span>スタンプ</span></th>
<th><span>MD5文字列</span></th>
</tr>
</thead>
<tbody>
@foreach($transactions as $item)
<tr>
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="ids[]" value="{{ $item->settlement_transaction_id }}">
<a href="{{ route('settlement_transactions_edit', ['id' => $item->settlement_transaction_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $item->settlement_transaction_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->contract_id }}</td>
<td class="sm-item text-left align-middle">{{ $item->status }}</td>
<td class="sm-item text-left align-middle">{{ $item->pay_code }}</td>
<td class="sm-item text-left align-middle">{{ $item->contract_payment_number }}</td>
<td class="sm-item text-left align-middle">{{ $item->corp_code }}</td>
<td class="sm-item text-left align-middle">{{ $item->mms_date }}</td>
<td class="sm-item text-left align-middle">{{ $item->cvs_code }}</td>
<td class="sm-item text-left align-middle">{{ $item->shop_code }}</td>
<td class="sm-item text-left align-middle">{{ optional($item->pay_date)->format('Y-m-d H:i') }}</td>
<td class="sm-item text-left align-middle">{{ $item->settlement_amount }}</td>
<td class="sm-item text-left align-middle">{{ $item->stamp_flag }}</td>
<td class="sm-item text-left align-middle">{{ $item->md5_string }}</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</section>
<form action="{{ route('settlement_transactions_export') }}" method="GET" id="form_export"></form>
@push('scripts')
<script>
// 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
});
// 削除確認
document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) {
alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit();
}
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
// ソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');
const current = "{{ $sort ?? '' }}";
const currentType = "{{ $sort_type ?? '' }}";
const nextCol = this.getAttribute('sort');
let nextType = 'asc';
if (current === nextCol) {
nextType = (currentType === 'asc') ? 'desc' : 'asc';
}
form.querySelector('[name=sort]').value = nextCol;
form.querySelector('[name=sort_type]').value = nextType;
form.submit();
});
});
// インポートファイル選択→自動送信必要ならUIを別途用意
const importBtn = document.querySelector('button[form="form_import"]');
const importInput = document.getElementById('import_file');
importBtn?.addEventListener('click', function(e){
e.preventDefault();
importInput.click();
});
importInput?.addEventListener('change', function(){
if (this.files.length > 0) {
document.getElementById('form_import').submit();
}
});
</script>
@endpush
});
</script>
@endpush
@endsection

View File

@ -12,7 +12,7 @@
@endif
<div class="card-header">
<a href="{{ route('neighbor_stations') }}" class="btn btn-secondary">戻る</a>
<a href="{{ route('stations') }}" class="btn btn-secondary">戻る</a>
</div>
<div class="card-body">

View File

@ -11,7 +11,7 @@
<div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="{{ route('neighbor_stations') }}">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item"><a href="{{ route('stations') }}">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">[東京都|〇〇駐輪場] 近傍駅マスタ</li>
</ol>
</div>
@ -23,7 +23,7 @@
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-md-8">
<form method="POST" action="{{ route('neighbor_station_add') }}">
<form method="POST" action="{{ route('stations_add') }}">
@csrf
<table class="table table-bordered">
@ -113,7 +113,7 @@
<button type="button" class="btn btn-danger ml-3" onclick="confirmDelete()">削除</button>
<form id="delete-form" method="POST"
action="{{ route('neighbor_stations_delete') }}"
action="{{ route('stations_delete') }}"
style="display:none;">
@csrf
<input type="hidden" name="pk[]" value="{{ old('station_id') ?? 0 }}">

View File

@ -27,9 +27,9 @@
<div class="row">
<div class="col-lg-12">
<div class="card">
<form method="post" action="{{ route('neighbor_station_edit', ['id' => $station->station_id]) }}" enctype="multipart/form-data">
<form method="post" action="{{ route('stations_edit', ['id' => $station->station_id]) }}" enctype="multipart/form-data">
@csrf
@include('admin.neighbor_stations._form', ['isEdit' => 1, 'isInfo' => 0, 'station' => $station])
@include('admin.stations._form', ['isEdit' => 1, 'isInfo' => 0, 'station' => $station])
</form>
</div>
</div>

View File

@ -1,10 +1,9 @@
{{-- resources/views/admin/neighbor_stations/import.blade.php --}}
@extends('layouts.admin')
@section('content')
<h1>近傍駅 インポート</h1>
<form method="POST" action="{{ route('neighbor_stations_import') }}" enctype="multipart/form-data">
<form method="POST" action="{{ route('stations_import') }}" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="csv_file">CSVファイルを選択:</label>
@ -13,5 +12,5 @@
<button type="submit" class="btn btn-primary">アップロード</button>
</form>
<a href="{{ route('neighbor_stations') }}" class="btn btn-secondary mt-3">戻る</a>
<a href="{{ route('stations') }}" class="btn btn-secondary mt-3">戻る</a>
@endsection

View File

@ -1,4 +1,3 @@
{{-- resources/views/admin/neighbor_stations/info.blade.php --}}
@extends('layouts.admin')
@section('content')
@ -21,5 +20,5 @@
<p>{{ $station->operator_id }}</p>
</div>
<a href="{{ route('neighbor_stations') }}" class="btn btn-secondary">戻る</a>
<a href="{{ route('stations') }}" class="btn btn-secondary">戻る</a>
@endsection

View File

@ -24,14 +24,14 @@
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('neighbor_stations') }}" method="POST" id="list-form">
<form action="{{ route('stations') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('neighbor_station_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('stations_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
@ -65,7 +65,7 @@
<!-- ここから単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('neighbor_stations_delete') }}" method="POST" id="form_delete">
<form action="{{ route('stations_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
@ -90,7 +90,7 @@
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $station->station_id }}">
<a href="{{ route('neighbor_station_edit', ['id' => $station->station_id]) }}"
<a href="{{ route('stations_edit', ['id' => $station->station_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
@ -113,5 +113,5 @@
</div>
</section>
<form action="{{ route('neighbor_stations_export') }}" method="GET" id="form_export"></form>
<form action="{{ route('stations_export') }}" method="GET" id="form_export"></form>
@endsection

View File

@ -9,7 +9,7 @@
{{-- 登録・削除 ボタン(上部) --}}
<div class="text-left mt-2 mb-3">
@if($isInfo)
<a href="{{ route('tax_edit', ['tax_id' => $tax->tax_id]) }}" class="btn btn-lg btn-success">編集</a>
<a href="{{ route('tax_edit', ['id' => $tax->tax_id]) }}" class="btn btn-lg btn-success">編集</a>
@else
<button type="submit" class="btn btn-lg btn成功 btn-success">登録</button>
@if($isEdit)
@ -66,7 +66,7 @@
{{-- 登録・削除 ボタン(下部重ね) --}}
<div class="text-left mt-2">
@if($isInfo)
<a href="{{ route('tax_edit', ['tax_id' => $tax->tax_id]) }}" class="btn btn-lg btn-success">編集</a>
<a href="{{ route('tax_edit', ['id' => $tax->tax_id]) }}" class="btn btn-lg btn-success">編集</a>
@else
<button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit)

View File

@ -21,7 +21,7 @@
<section class="content">
<div class="container-fluid">
<form action="{{ route('tax_edit', ['tax_id' => $tax->tax_id]) }}" method="POST">
<form action="{{ route('tax_edit', ['id' => $tax->tax_id]) }}" method="POST">
@csrf
@include('admin.tax._form', [
'tax' => $tax,

View File

@ -1,5 +1,5 @@
@extends('layouts.app')
@section('title', '消費税マスタ')
@section('title', '[東京都|〇〇駐輪場] 消費税マスタ')
@section('content')
<!-- Content Header -->
@ -23,60 +23,51 @@
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
{{-- 一覧のソート用(既存規約踏襲) --}}
{{-- 並び替え用 hidden --}}
<form action="{{ route('tax') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<!-- ツールバー -->
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('tax_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
{{ $taxes->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<div class="d-flex justify-content-end">
{{ $taxes->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<div class="col-lg-12">
@if(session('success'))
<div class="alert alert-success alert-dismissible">{{ session('success') }}</div>
@elseif(session('error'))
<div class="alert alert-danger alert-dismissible">{{ session('error') }}</div>
<!-- メッセージ表示 -->
<div class="form col-lg-12">
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('success') }}
</div>
@elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<!-- 左側チェックボックス&編集ボタン -->
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<!-- 単一テーブル構成 ----------------------------------------- -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('tax_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table dataTable">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
</thead>
<tbody>
@foreach($taxes as $tax)
<tr>
<td>
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $tax->tax_id }}" name="id[]">
<div class="btn_action">
<a href="{{ route('tax_edit', ['tax_id' => $tax->tax_id]) }}" class="btn btn-sm btn-default ml10">編集</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<!-- 右側データテーブル -->
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
{{-- チェック + 編集 --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='tax_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="tax_id">
<span>消費税ID</span>
</th>
@ -91,30 +82,37 @@
<tbody>
@foreach($taxes as $tax)
<tr>
<td class="sm-item text-left">{{ $tax->tax_id }}</td>
<td class="sm-item text-left">
{{-- 同じセルに チェック + 編集ボタン --}}
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="id[]" value="{{ $tax->tax_id }}">
<a href="{{ route('tax_edit', ['id' => $tax->tax_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $tax->tax_id }}</td>
<td class="sm-item text-left align-middle">
@php
$val = is_numeric($tax->tax_percent)
? number_format((float)$tax->tax_percent, 2, '.', '')
: (string)$tax->tax_percent;
@endphp
{{ $val }}%
</td>
<td class="sm-item text-left">{{ optional($tax->tax_day)->format('Y-m-d') }}</td>
<td class="sm-item text-left align-middle">{{ optional($tax->tax_day)->format('Y-m-d') }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div>
</section>
<form action="{{ route('tax_export') }}" method="GET" id="form_export"></form>
{{-- 一括削除 & ソートのJS既存規約に合わせ最小限 --}}
@push('scripts')
<script>
// 全選択
@ -134,7 +132,7 @@
}
});
// ヘッダクリックでソート変更(既存 list と同様のカスタム属性 "sort" を使用)
// ヘッダクリックでソート
document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){
const form = document.getElementById('list-form');

View File

@ -9,7 +9,7 @@
{{-- 登録・削除 ボタン --}}
<div class="text-left mt-4">
@if($isInfo)
<a href="{{ route('terms_edit', ['term_id' => $term->terms_id]) }}" class="btn btn-lg btn-success">編集</a>
<a href="{{ route('terms_edit', ['id' => $term->terms_id]) }}" class="btn btn-lg btn-success">編集</a>
@else
<button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit)
@ -98,7 +98,7 @@
{{-- 登録・削除 ボタン --}}
<div class="text-left mt-4">
@if($isInfo)
<a href="{{ route('terms_edit', ['term_id' => $term->terms_id]) }}" class="btn btn-lg btn-success">編集</a>
<a href="{{ route('terms_edit', ['id' => $term->terms_id]) }}" class="btn btn-lg btn-success">編集</a>
@else
<button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit)

View File

@ -21,7 +21,7 @@
<section class="content">
<div class="container-fluid">
<form action="{{ route('terms_edit', ['term_id' => $term->terms_id]) }}" method="POST">
<form action="{{ route('terms_edit', ['id' => $term->terms_id]) }}" method="POST">
@csrf
@include('admin.terms._form', [
'term' => $term,

View File

@ -23,95 +23,95 @@
<!-- Main Content -->
<section class="content">
<div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('terms') }}" method="POST" id="list-form">
@csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form>
<div class="container-fluid mb20">
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('terms_add') }}'"> 新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">CSV出力</button>
{{ $terms->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
<!-- 操作ボタン&ページネーション -->
<div class="container-fluid mb20 d-flex justify-content-between align-items-center">
<div>
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('terms_add') }}'">新規</button>
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_export">CSV出力</button>
</div>
<div>
{{ $terms->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div>
</div>
<!-- メッセージ表示 -->
<div class="col-lg-12">
@if(session('success'))
<div class="alert alert-success alert-dismissible">{{ session('success') }}</div>
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ session('success') }}
</div>
@elseif(session('error'))
<div class="alert alert-danger alert-dismissible">{{ session('error') }}</div>
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ session('error') }}
</div>
@endif
</div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20">
<!-- 左側チェックボックス&編集ボタン -->
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left">
<!-- 単一テーブル構成 -->
<div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('terms_delete') }}" method="POST" id="form_delete">
@csrf
<table class="table dataTable">
<thead>
<tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th>
</tr>
</thead>
<tbody>
@foreach($terms as $term)
<tr>
<td>
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $term->terms_id }}" name="id[]">
<div class="btn_action">
<a href="{{ route('terms_edit', ['term_id' => $term->terms_id]) }}" class="btn btn-sm btn-default ml10">編集</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</form>
</div>
<!-- 右側データテーブル -->
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right">
<div class="scroll">
<table class="table dataTable">
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead>
<tr>
{{-- チェック + 編集 用の1列 --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all">
</th>
<th class="sorting {{ ($sort=='terms_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="terms_id">
<span>利用契約ID</span>
</th>
<th class="sorting {{ ($sort=='city_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="city_id">
<span>市区ID</span>
</th>
<th><span>使用中</span></th>
<th><span>使用中</span></th>
<th><span>リビジョン</span></th>
<th><span>契約内容</span></th>
<th><span>備考</span></th>
<th class="sorting {{ ($sort=='start_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="start_date">
<span>使用開始日</span>
</th>
</tr>
</thead>
<tbody>
@foreach($terms as $term)
<tr>
<td class="sm-item text-left">{{ $term->terms_id }}</td>
<td class="sm-item text-left">{{ $term->city_id }}</td>
<td class="sm-item text-left">{{ $term->use_flag ? '○' : '' }}</td>
<td class="sm-item text-left">{{ $term->terms_revision }}</td>
<td class="sm-item text-left">{{ $term->terms_text }}</td>
<td class="sm-item text-left">{{ $term->memo }}</td>
<td class="sm-item text-left">{{ \Carbon\Carbon::parse($term->start_date)->format('Y-m-d') }}</td>
{{-- チェックボックス + 編集ボタン --}}
<td class="table-warning align-middle">
<div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $term->terms_id }}">
<a href="{{ route('terms_edit', ['id' => $term->terms_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div>
</td>
<td class="sm-item text-left align-middle">{{ $term->terms_id }}</td>
<td class="sm-item text-left align-middle">{{ $term->city_id }}</td>
<td class="sm-item text-left align-middle">{{ $term->use_flag ? '○' : '' }}</td>
<td class="sm-item text-left align-middle">{{ $term->terms_revision }}</td>
<td class="sm-item text-left align-middle">{{ $term->terms_text }}</td>
<td class="sm-item text-left align-middle">{{ $term->memo }}</td>
<td class="sm-item text-left align-middle">{{ \Carbon\Carbon::parse($term->start_date)->format('Y-m-d') }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</form>
</div>
</div>
<!-- 単一テーブル構成ここまで -->
</div>
</section>
<form action="{{ route('terms_export') }}" method="GET" id="form_export"></form>
@endsection
@endsection

View File

@ -395,7 +395,7 @@
</a>
</li>
<li class="nav-item">
<a href="{{ route('neighbor_stations') }}" class="nav-link pl-4 @if(app('router')->is('neighbor_stations')) active @endif">
<a href="{{ route('stations') }}" class="nav-link pl-4 @if(app('router')->is('stations')) active @endif">
<p class="mb-0">{{ __("近傍駅マスタ") }}</p>
</a>
</li>

View File

@ -2,6 +2,24 @@
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Admin\RegularTypeController;
use App\Http\Controllers\Admin\StationController;
use App\Http\Controllers\Admin\TermsController;
use App\Http\Controllers\Admin\JurisdictionParkingController;
use App\Http\Controllers\Admin\PrintAreaController;
use App\Http\Controllers\Admin\ContractAllowableCityController;
use App\Http\Controllers\Admin\ManagerController;
use App\Http\Controllers\Admin\TaxController;
use App\Http\Controllers\Admin\PaymentController;
use App\Http\Controllers\Admin\SettlementTransactionController;
use App\Http\Controllers\Admin\OpeController;
use App\Http\Controllers\Admin\DeviceController;
use App\Http\Controllers\Admin\OperatorQueController;
use App\Http\Controllers\Admin\SettingController;
/**
* Laravel 12変更点:ルート定義の書き方が変更
* Laravel 5.7: Route::get('url', 'Controller@method') の形式
@ -94,151 +112,186 @@ Route::middleware('auth')->group(function () {
Route::get('/using_status/api', [App\Http\Controllers\Admin\UsingStatusController::class, 'apiGetUtilization'])->name('using_status.api');
Route::get('/using_status/export', [App\Http\Controllers\Admin\UsingStatusController::class, 'exportCsv'])->name('using_status.export');
// [東京都|〇〇駐輪場] 定期種別マスタ
Route::match(['get', 'post'], '/regular_types', [App\Http\Controllers\Admin\RegularTypeController::class, 'list'])->name('regular_types');
Route::match(['get', 'post'], '/regular_types/add', [App\Http\Controllers\Admin\RegularTypeController::class, 'add'])->name('regular_type_add');
Route::match(['get', 'post'], '/regular_types/edit/{id}', [App\Http\Controllers\Admin\RegularTypeController::class, 'edit'])->where(['id' => '[0-9]+'])->name('regular_type_edit');
Route::match(['get', 'post'], '/regular_types/info/{id}', [App\Http\Controllers\Admin\RegularTypeController::class, 'info'])->where(['id' => '[0-9]+'])->name('regular_type_info');
Route::match(['get', 'post'], '/regular_types/delete', [App\Http\Controllers\Admin\RegularTypeController::class, 'delete'])->name('regular_types_delete');
Route::match(['get', 'post'], '/regular_types/import', [App\Http\Controllers\Admin\RegularTypeController::class, 'import'])->name('regular_types_import');
Route::get('/regular_types/export', [App\Http\Controllers\Admin\RegularTypeController::class, 'export'])->name('regular_types_export');
//kin 2025/08/25 start
// [東京都|〇〇駐輪場] 定期種別マスタ
Route::match(['get', 'post'], '/regular_types', [RegularTypeController::class, 'list'])->name('regular_types');
Route::match(['get', 'post'], '/regular_types/add', [RegularTypeController::class, 'add'])->name('regular_types_add');
Route::match(['get', 'post'], '/regular_types/edit/{id}', [RegularTypeController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('regular_types_edit');
Route::match(['get', 'post'], '/regular_types/info/{id}', [RegularTypeController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('regular_types_info');
Route::match(['get', 'post'], '/regular_types/delete', [RegularTypeController::class, 'delete'])->name('regular_types_delete');
Route::match(['get', 'post'], '/regular_types/import', [RegularTypeController::class, 'import'])->name('regular_types_import');
Route::get('/regular_types/export', [RegularTypeController::class, 'export'])->name('regular_types_export');
// [東京都|〇〇駐輪場] 近傍駅マスタ
Route::match(['get', 'post'], '/neighbor_stations', [App\Http\Controllers\Admin\NeighborStationController::class, 'list'])->name('neighbor_stations');
Route::match(['get', 'post'], '/neighbor_stations/add', [App\Http\Controllers\Admin\NeighborStationController::class, 'add'])->name('neighbor_stations_add');
Route::match(['get', 'post'], '/neighbor_stations/edit/{id}', [App\Http\Controllers\Admin\NeighborStationController::class, 'edit'])->where(['id' => '[0-9]+'])->name('neighbor_stations_edit');
Route::get('/neighbor_stations/info/{id}', [App\Http\Controllers\Admin\NeighborStationController::class, 'info'])->where(['id' => '[0-9]+'])->name('neighbor_stations_info');
Route::match(['get', 'post'], '/neighbor_stations/delete', [App\Http\Controllers\Admin\NeighborStationController::class, 'delete'])->name('neighbor_stations_delete');
Route::post('/neighbor_stations/import', [App\Http\Controllers\Admin\NeighborStationController::class, 'import'])->name('neighbor_stations_import');
Route::get('/neighbor_stations/export', [App\Http\Controllers\Admin\NeighborStationController::class, 'export'])->name('neighbor_stations_export');
// [東京都|〇〇駐輪場] 近傍駅マスタ
Route::match(['get', 'post'], '/stations', [StationController::class, 'list'])->name('stations');
Route::match(['get', 'post'], '/stations/add', [StationController::class, 'add'])->name('stations_add');
Route::match(['get', 'post'], '/stations/edit/{id}', [StationController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('stations_edit');
Route::get('/stations/info/{id}', [StationController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('stations_info');
Route::match(['get', 'post'], '/stations/delete', [StationController::class, 'delete'])->name('stations_delete');
Route::post('/stations/import', [StationController::class, 'import'])->name('stations_import');
Route::get('/stations/export', [StationController::class, 'export'])->name('stations_export');
// [東京都|〇〇駐輪場] 利用契約マスタ
Route::match(['get', 'post'], '/terms', [App\Http\Controllers\Admin\TermsController::class, 'list'])->name('terms'); // 一覧表示
Route::match(['get', 'post'], '/terms/add', [App\Http\Controllers\Admin\TermsController::class, 'add'])->name('terms_add'); // 新規登録画面・登録処理
Route::match(['get', 'post'], '/terms/edit/{term_id}', [App\Http\Controllers\Admin\TermsController::class, 'edit'])->where(['term_id' => '[0-9]+'])->name('terms_edit'); // 編集画面・更新処理
Route::match(['get', 'post'], '/terms/info/{term_id}', [App\Http\Controllers\Admin\TermsController::class, 'info'])->where(['term_id' => '[0-9]+'])->name('terms_info'); // 詳細表示
Route::match(['get', 'post'], '/terms/delete', [App\Http\Controllers\Admin\TermsController::class, 'delete'])->name('terms_delete'); // 削除処理(複数可)
Route::match(['get', 'post'], '/terms/import', [App\Http\Controllers\Admin\TermsController::class, 'import'])->name('terms_import'); // CSVインポート
Route::get('/terms/export', [App\Http\Controllers\Admin\TermsController::class, 'export'])->name('terms_export'); // CSVエクスポート
Route::match(['get', 'post'], '/terms', [TermsController::class, 'list'])->name('terms');
Route::match(['get', 'post'], '/terms/add', [TermsController::class, 'add'])->name('terms_add');
Route::match(['get', 'post'], '/terms/edit/{id}', [TermsController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('terms_edit');
Route::get('/terms/info/{id}', [TermsController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('terms_info');
Route::match(['get', 'post'], '/terms/delete', [TermsController::class, 'delete'])->name('terms_delete');
Route::post('/terms/import', [TermsController::class, 'import'])->name('terms_import');
Route::get('/terms/export', [TermsController::class, 'export'])->name('terms_export');
// [東京都|〇〇駐輪場] 管轄駐輪場マスタ
Route::match(['get', 'post'], '/jurisdiction_parkings', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'list'])->name('jurisdiction_parkings'); // 一覧表示
Route::match(['get', 'post'], '/jurisdiction_parkings/add', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'add'])->name('jurisdiction_parkings_add'); // 新規登録画面・登録処理
Route::match(['get', 'post'], '/jurisdiction_parkings/edit/{jurisdiction_parking_id}', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'edit'])->where(['jurisdiction_parking_id' => '[0-9]+'])->name('jurisdiction_parkings_edit'); // 編集画面・更新処理
Route::match(['get', 'post'], '/jurisdiction_parkings/info/{jurisdiction_parking_id}', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'info'])->where(['jurisdiction_parking_id' => '[0-9]+'])->name('jurisdiction_parkings_info'); // 詳細表示
Route::match(['get', 'post'], '/jurisdiction_parkings/delete', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'delete'])->name('jurisdiction_parkings_delete'); // 削除処理(複数可)
Route::match(['get', 'post'], '/jurisdiction_parkings/import', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'import'])->name('jurisdiction_parkings_import'); // CSVインポート
Route::get('/jurisdiction_parkings/export', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'export'])->name('jurisdiction_parkings_export'); // CSVエクスポート
Route::match(['get', 'post'], '/jurisdiction_parkings', [JurisdictionParkingController::class, 'list'])->name('jurisdiction_parkings');
Route::match(['get', 'post'], '/jurisdiction_parkings/add', [JurisdictionParkingController::class, 'add'])->name('jurisdiction_parkings_add');
Route::match(['get', 'post'], '/jurisdiction_parkings/edit/{id}', [JurisdictionParkingController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('jurisdiction_parkings_edit');
Route::get('/jurisdiction_parkings/info/{id}', [JurisdictionParkingController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('jurisdiction_parkings_info');
Route::match(['get', 'post'], '/jurisdiction_parkings/delete', [JurisdictionParkingController::class, 'delete'])->name('jurisdiction_parkings_delete');
Route::post('/jurisdiction_parkings/import', [JurisdictionParkingController::class, 'import'])->name('jurisdiction_parkings_import');
Route::get('/jurisdiction_parkings/export', [JurisdictionParkingController::class, 'export'])->name('jurisdiction_parkings_export');
// [東京都|〇〇駐輪場] シール印刷範囲マスタ
Route::match(['get', 'post'], '/print_areas', [App\Http\Controllers\Admin\PrintAreaController::class, 'list'])->name('print_areas');
Route::match(['get', 'post'], '/print_areas/add', [App\Http\Controllers\Admin\PrintAreaController::class, 'add'])->name('print_areas_add');
Route::match(['get', 'post'], '/print_areas/edit/{print_area_id}', [App\Http\Controllers\Admin\PrintAreaController::class, 'edit'])->name('print_areas_edit')->where(['print_area_id' => '[0-9]+']);
Route::match(['get', 'post'], '/print_areas/info/{print_area_id}', [App\Http\Controllers\Admin\PrintAreaController::class, 'info'])->name('print_areas_info')->where(['print_area_id' => '[0-9]+']);
Route::match(['get', 'post'], '/print_areas/delete', [App\Http\Controllers\Admin\PrintAreaController::class, 'delete'])->name('print_areas_delete');
Route::match(['get', 'post'], '/print_areas/import', [App\Http\Controllers\Admin\PrintAreaController::class, 'import'])->name('print_areas_import');
Route::get('/print_areas/export', [App\Http\Controllers\Admin\PrintAreaController::class, 'export'])->name('print_areas_export');
// [東京都|〇〇駐輪場] 契約許容市区マスタ
Route::match(['get', 'post'], '/contract_allowable_cities', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'list'])->name('contract_allowable_cities');
Route::match(['get', 'post'], '/contract_allowable_cities/add', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'add'])->name('contract_allowable_cities_add');
Route::match(['get', 'post'], '/contract_allowable_cities/edit/{contract_allowable_city_id}', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'edit'])->name('contract_allowable_cities_edit')->where(['contract_allowable_city_id' => '[0-9]+']);
Route::match(['get', 'post'], '/contract_allowable_cities/info/{contract_allowable_city_id}', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'info'])->name('contract_allowable_cities_info')->where(['contract_allowable_city_id' => '[0-9]+']);
Route::match(['get', 'post'], '/contract_allowable_cities/delete', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'delete'])->name('contract_allowable_cities_delete');
Route::match(['get', 'post'], '/contract_allowable_cities/import', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'import'])->name('contract_allowable_cities_import');
Route::get('/contract_allowable_cities/export', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'export'])->name('contract_allowable_cities_export');
// [東京都|〇〇駐輪場] 管駐輪場管理者マスタ
Route::match(['get', 'post'], '/managers', [App\Http\Controllers\Admin\ManagerController::class, 'list'])->name('managers');
Route::match(['get', 'post'], '/managers/add', [App\Http\Controllers\Admin\ManagerController::class, 'add'])->name('managers_add');
Route::match(['get', 'post'], '/managers/edit/{manager_id}', [App\Http\Controllers\Admin\ManagerController::class, 'edit'])->name('managers_edit')->where(['manager_id' => '[0-9]+']);
Route::match(['get', 'post'], '/managers/info/{manager_id}', [App\Http\Controllers\Admin\ManagerController::class, 'info'])->name('managers_info')->where(['manager_id' => '[0-9]+']);
Route::match(['get', 'post'], '/managers/delete', [App\Http\Controllers\Admin\ManagerController::class, 'delete'])->name('managers_delete');
Route::match(['get', 'post'], '/managers/import', [App\Http\Controllers\Admin\ManagerController::class, 'import'])->name('managers_import');
Route::get('/managers/export', [App\Http\Controllers\Admin\ManagerController::class, 'export'])->name('managers_export');
Route::match(['get', 'post'], '/print_areas', [PrintAreaController::class, 'list'])->name('print_areas');
Route::match(['get', 'post'], '/print_areas/add', [PrintAreaController::class, 'add'])->name('print_areas_add');
Route::match(['get', 'post'], '/print_areas/edit/{id}', [PrintAreaController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('print_areas_edit');
Route::get('/print_areas/info/{id}', [PrintAreaController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('print_areas_info');
Route::match(['get', 'post'], '/print_areas/delete', [PrintAreaController::class, 'delete'])->name('print_areas_delete');
Route::post('/print_areas/import', [PrintAreaController::class, 'import'])->name('print_areas_import');
Route::get('/print_areas/export', [PrintAreaController::class, 'export'])->name('print_areas_export');
//[東京都|〇〇駐輪場] 契約許容市区マスタ
Route::match(['get', 'post'], '/contract_allowable_cities', [ContractAllowableCityController::class, 'list'])->name('contract_allowable_cities');
Route::match(['get', 'post'], '/contract_allowable_cities/add', [ContractAllowableCityController::class, 'add'])->name('contract_allowable_cities_add');
Route::match(['get', 'post'], '/contract_allowable_cities/edit/{id}', [ContractAllowableCityController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('contract_allowable_cities_edit');
Route::get('/contract_allowable_cities/info/{id}', [ContractAllowableCityController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('contract_allowable_cities_info');
Route::match(['get', 'post'], '/contract_allowable_cities/delete', [ContractAllowableCityController::class, 'delete'])->name('contract_allowable_cities_delete');
Route::post('/contract_allowable_cities/import', [ContractAllowableCityController::class, 'import'])->name('contract_allowable_cities_import');
Route::get('/contract_allowable_cities/export', [ContractAllowableCityController::class, 'export'])->name('contract_allowable_cities_export');
//[東京都|〇〇駐輪場] 管駐輪場管理者マスタ
Route::match(['get', 'post'], '/managers', [ManagerController::class, 'list'])->name('managers');
Route::match(['get', 'post'], '/managers/add', [ManagerController::class, 'add'])->name('managers_add');
Route::match(['get', 'post'], '/managers/edit/{id}', [ManagerController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('managers_edit');
Route::get('/managers/info/{id}', [ManagerController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('managers_info');
Route::match(['get', 'post'], '/managers/delete', [ManagerController::class, 'delete'])->name('managers_delete');
Route::post('/managers/import', [ManagerController::class, 'import'])->name('managers_import');
Route::get('/managers/export', [ManagerController::class, 'export'])->name('managers_export');
// [東京都|〇〇駐輪場] 消費税マスタ
Route::match(['get', 'post'], '/tax', [App\Http\Controllers\Admin\TaxController::class, 'list'])->name('tax');
Route::match(['get', 'post'], '/tax/add', [App\Http\Controllers\Admin\TaxController::class, 'add'])->name('tax_add');
Route::match(['get', 'post'], '/tax/edit/{tax_id}', [App\Http\Controllers\Admin\TaxController::class, 'edit'])
->name('tax_edit')->where(['tax_id' => '[0-9]+']);
Route::match(['get', 'post'], '/tax/info/{tax_id}', [App\Http\Controllers\Admin\TaxController::class, 'info'])
->name('tax_info')->where(['tax_id' => '[0-9]+']);
Route::match(['get', 'post'], '/tax/delete', [App\Http\Controllers\Admin\TaxController::class, 'delete'])->name('tax_delete');
Route::match(['get', 'post'], '/tax/import', [App\Http\Controllers\Admin\TaxController::class, 'import'])->name('tax_import');
Route::get('/tax/export', [App\Http\Controllers\Admin\TaxController::class, 'export'])->name('tax_export');
Route::match(['get', 'post'], '/tax', [TaxController::class, 'list'])->name('tax');
Route::match(['get', 'post'], '/tax/add', [TaxController::class, 'add'])->name('tax_add');
Route::match(['get', 'post'], '/tax/edit/{id}', [TaxController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('tax_edit');
Route::get('/tax/info/{id}', [TaxController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('tax_info');
Route::match(['get', 'post'], '/tax/delete', [TaxController::class, 'delete'])->name('tax_delete');
Route::post('/tax/import', [TaxController::class, 'import'])->name('tax_import');
Route::get('/tax/export', [TaxController::class, 'export'])->name('tax_export');
// [東京都|〇〇駐輪場] 決済情報マスタ
Route::match(['get', 'post'], '/payments', [App\Http\Controllers\Admin\PaymentController::class, 'list'])->name('payments');
Route::match(['get', 'post'], '/payments/add', [App\Http\Controllers\Admin\PaymentController::class, 'add'])->name('payments_add');
Route::match(['get', 'post'], '/payments/edit/{payment_id}', [App\Http\Controllers\Admin\PaymentController::class, 'edit'])
->name('payments_edit')->where(['payment_id' => '[0-9]+']);
Route::match(['get', 'post'], '/payments/info/{payment_id}', [App\Http\Controllers\Admin\PaymentController::class, 'info'])
->name('payments_info')->where(['payment_id' => '[0-9]+']);
Route::match(['get', 'post'], '/payments/delete', [App\Http\Controllers\Admin\PaymentController::class, 'delete'])->name('payments_delete');
Route::match(['get', 'post'], '/payments/import', [App\Http\Controllers\Admin\PaymentController::class, 'import'])->name('payments_import');
Route::get('/payments/export', [App\Http\Controllers\Admin\PaymentController::class, 'export'])->name('payments_export');
Route::match(['get', 'post'], '/payments', [PaymentController::class, 'list'])->name('payments');
Route::match(['get', 'post'], '/payments/add', [PaymentController::class, 'add'])->name('payments_add');
Route::match(['get', 'post'], '/payments/edit/{id}', [PaymentController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('payments_edit');
Route::get('/payments/info/{id}', [PaymentController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('payments_info');
Route::match(['get', 'post'], '/payments/delete', [PaymentController::class, 'delete'])->name('payments_delete');
Route::post('/payments/import', [PaymentController::class, 'import'])->name('payments_import');
Route::get('/payments/export', [PaymentController::class, 'export'])->name('payments_export');
// [東京都|〇〇駐輪場] 決済トランザクション
Route::match(['get', 'post'], '/settlement_transactions', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'list'])->name('settlement_transactions');
Route::match(['get', 'post'], '/settlement_transactions/add', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'add'])->name('settlement_transactions_add');
Route::match(['get', 'post'], '/settlement_transactions/edit/{settlement_transaction_id}', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'edit'])
->name('settlement_transactions_edit')->where(['settlement_transaction_id' => '[0-9]+']);
Route::match(['get', 'post'], '/settlement_transactions/info/{settlement_transaction_id}', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'info'])
->name('settlement_transactions_info')->where(['settlement_transaction_id' => '[0-9]+']);
Route::match(['get', 'post'], '/settlement_transactions/delete', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'delete'])->name('settlement_transactions_delete');
Route::match(['get', 'post'], '/settlement_transactions/import', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'import'])->name('settlement_transactions_import');
Route::get('/settlement_transactions/export', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'export'])->name('settlement_transactions_export');
Route::match(['get', 'post'], '/settlement_transactions', [SettlementTransactionController::class, 'list'])->name('settlement_transactions');
Route::match(['get', 'post'], '/settlement_transactions/add', [SettlementTransactionController::class, 'add'])->name('settlement_transactions_add');
Route::match(['get', 'post'], '/settlement_transactions/edit/{id}', [SettlementTransactionController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('settlement_transactions_edit');
Route::get('/settlement_transactions/info/{id}', [SettlementTransactionController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('settlement_transactions_info');
Route::match(['get', 'post'], '/settlement_transactions/delete', [SettlementTransactionController::class, 'delete'])->name('settlement_transactions_delete');
Route::post('/settlement_transactions/import', [SettlementTransactionController::class, 'import'])->name('settlement_transactions_import');
Route::get('/settlement_transactions/export', [SettlementTransactionController::class, 'export'])->name('settlement_transactions_export');
// [東京都|〇〇駐輪場] オペレーターマスタ
Route::match(['get','post'], '/ope', [App\Http\Controllers\Admin\OpeController::class, 'list'])->name('opes');
Route::match(['get','post'], '/ope/add', [App\Http\Controllers\Admin\OpeController::class, 'add'])->name('opes_add');
Route::match(['get','post'], '/ope/edit/{id}', [App\Http\Controllers\Admin\OpeController::class, 'edit'])
->where(['id' => '[0-9]+'])->name('opes_edit');
Route::match(['get','post'], '/ope/info/{id}', [App\Http\Controllers\Admin\OpeController::class, 'info'])
->where(['id' => '[0-9]+'])->name('opes_info');
Route::match(['get','post'], '/ope/delete', [App\Http\Controllers\Admin\OpeController::class, 'delete'])->name('opes_delete');
Route::match(['get','post'], '/ope/import', [App\Http\Controllers\Admin\OpeController::class, 'import'])->name('opes_import');
Route::get('/ope/export', [App\Http\Controllers\Admin\OpeController::class, 'export'])->name('opes_export');
Route::match(['get', 'post'], '/ope', [OpeController::class, 'list'])->name('opes');
Route::match(['get', 'post'], '/ope/add', [OpeController::class, 'add'])->name('opes_add');
Route::match(['get', 'post'], '/ope/edit/{id}', [OpeController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('opes_edit');
Route::get('/ope/info/{id}', [OpeController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('opes_info');
Route::match(['get', 'post'], '/ope/delete', [OpeController::class, 'delete'])->name('opes_delete');
Route::post('/ope/import', [OpeController::class, 'import'])->name('opes_import');
Route::get('/ope/export', [OpeController::class, 'export'])->name('opes_export');
// [東京都|〇〇駐輪場] デバイス管理マスタ
Route::match(['get', 'post'], '/device', [App\Http\Controllers\Admin\DeviceController::class, 'list'])->name('devices');
Route::match(['get', 'post'], '/device/add', [App\Http\Controllers\Admin\DeviceController::class, 'add'])->name('devices_add');
Route::match(['get', 'post'], '/device/edit/{id}', [App\Http\Controllers\Admin\DeviceController::class, 'edit'])
->where(['id' => '[0-9]+'])->name('devices_edit');
Route::match(['get', 'post'], '/device/info/{id}', [App\Http\Controllers\Admin\DeviceController::class, 'info'])
->where(['id' => '[0-9]+'])->name('devices_info');
Route::match(['get', 'post'], '/device/delete', [App\Http\Controllers\Admin\DeviceController::class, 'delete'])->name('devices_delete');
Route::match(['get', 'post'], '/device/import', [App\Http\Controllers\Admin\DeviceController::class, 'import'])->name('devices_import');
Route::get('/device/export', [App\Http\Controllers\Admin\DeviceController::class, 'export'])->name('devices_export');
Route::match(['get', 'post'], '/device', [DeviceController::class, 'list'])->name('devices');
Route::match(['get', 'post'], '/device/add', [DeviceController::class, 'add'])->name('devices_add');
Route::match(['get', 'post'], '/device/edit/{id}', [DeviceController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('devices_edit');
Route::get('/device/info/{id}', [DeviceController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('devices_info');
Route::match(['get', 'post'], '/device/delete', [DeviceController::class, 'delete'])->name('devices_delete');
Route::post('/device/import', [DeviceController::class, 'import'])->name('devices_import');
// [東京都|〇〇駐輪場] オペレーターキュー
Route::match(['get', 'post'], '/operator_que', [App\Http\Controllers\Admin\OperatorQueController::class, 'list'])->middleware('auth')->name('operator_ques');
Route::match(['get', 'post'], '/operator_que/add', [App\Http\Controllers\Admin\OperatorQueController::class, 'add'])->middleware('auth')->name('operator_ques_add');
Route::match(['get', 'post'], '/operator_que/edit/{id}', [App\Http\Controllers\Admin\OperatorQueController::class, 'edit'])->where(['id' => '[0-9]+'])->middleware('auth')->name('operator_ques_edit');
Route::match(['get', 'post'], '/operator_que/info/{id}', [App\Http\Controllers\Admin\OperatorQueController::class, 'info'])->where(['id' => '[0-9]+'])->middleware('auth')->name('operator_ques_info');
Route::match(['get', 'post'], '/operator_que/delete', [App\Http\Controllers\Admin\OperatorQueController::class, 'delete'])->name('operator_ques_delete');
Route::match(['get', 'post'], '/operator_ques/import', [App\Http\Controllers\Admin\OperatorQueController::class, 'import'])->name('operator_ques_import');
Route::get('/operator_ques/export', [App\Http\Controllers\Admin\OperatorQueController::class, 'export'])->name('operator_ques_export');
Route::match(['get', 'post'], '/operator_que', [OperatorQueController::class, 'list'])->name('operator_ques');
Route::match(['get', 'post'], '/operator_que/add', [OperatorQueController::class, 'add'])->name('operator_ques_add');
Route::match(['get', 'post'], '/operator_que/edit/{id}', [OperatorQueController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('operator_ques_edit');
Route::get('/operator_que/info/{id}', [OperatorQueController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('operator_ques_info');
Route::match(['get', 'post'], '/operator_que/delete', [OperatorQueController::class, 'delete'])->name('operator_ques_delete');
Route::post('/operator_que/import', [OperatorQueController::class, 'import'])->name('operator_ques_import');
Route::get('/operator_que/export', [OperatorQueController::class, 'export'])->name('operator_ques_export');
// [東京都|〇〇駐輪場] 設定マスタ
Route::match(['get', 'post'], '/setting', [App\Http\Controllers\Admin\SettingController::class, 'list'])
->middleware('auth')->name('settings');
Route::match(['get', 'post'], '/setting/add', [App\Http\Controllers\Admin\SettingController::class, 'add'])
->middleware('auth')->name('settings_add');
Route::match(['get', 'post'], '/setting/edit/{id}', [App\Http\Controllers\Admin\SettingController::class, 'edit'])
->where(['id' => '[0-9]+'])->middleware('auth')->name('settings_edit');
Route::match(['get', 'post'], '/setting/info/{id}', [App\Http\Controllers\Admin\SettingController::class, 'info'])
->where(['id' => '[0-9]+'])->middleware('auth')->name('settings_info');
Route::match(['get', 'post'], '/setting/delete', [App\Http\Controllers\Admin\SettingController::class, 'delete'])
->middleware('auth')->name('settings_delete');
Route::match(['get', 'post'], '/setting', [SettingController::class, 'list'])->name('settings');
Route::match(['get', 'post'], '/setting/add', [SettingController::class, 'add'])->name('settings_add');
Route::match(['get', 'post'], '/setting/edit/{id}', [SettingController::class, 'edit'])
->where(['id' => '[0-9]+'])
->name('settings_edit');
Route::get('/setting/info/{id}', [SettingController::class, 'info'])
->where(['id' => '[0-9]+'])
->name('settings_info');
Route::match(['get', 'post'], '/setting/delete', [SettingController::class, 'delete'])->name('settings_delete');