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 class JurisdictionParkingController extends Controller
{ {
public function list(Request $request) 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) 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')) { if ($request->isMethod('post')) {
$validated = $request->validate([ $validated = $request->validate([
@ -59,6 +64,7 @@ class JurisdictionParkingController extends Controller
return view('admin.jurisdiction_parkings.edit', compact('record', 'parks', 'opes')); return view('admin.jurisdiction_parkings.edit', compact('record', 'parks', 'opes'));
} }
public function delete(Request $request) public function delete(Request $request)
{ {
if ($request->has('pk')) { 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'); 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; use Illuminate\Database\Eloquent\Model;
class NeighborStation extends Model class Station extends Model
{ {
// テーブル名を指定
protected $table = 'station'; protected $table = 'station';
// 主キーを指定
protected $primaryKey = 'station_id'; protected $primaryKey = 'station_id';
// ホワイトリスト
protected $fillable = [ protected $fillable = [
'park_id', 'park_id',
'station_neighbor_station', 'station_neighbor_station',
@ -20,6 +16,4 @@ class NeighborStation extends Model
'station_route_name', 'station_route_name',
'operator_id', 'operator_id',
]; ];
// タイムスタンプのカラム名がデフォルトと同じなので、特に設定不要
} }

View File

@ -21,7 +21,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
<div class="card p-4"> <div class="card p-4">
{{-- 契約許容市区マスタID --}} {{-- 契約許容市区マスタID --}}

View File

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

View File

@ -27,12 +27,16 @@
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}"> <input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}">
</form> </form>
<div class="container-fluid mb20"> <!-- ツールバー -->
<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" onclick="location.href='{{ route('devices_add') }}'">{{ __('新規') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">{{ __('削除') }}</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') }} {{ $list->appends(['sort'=>$sort,'sort_type'=>$sort_type])->links('pagination') }}
</div> </div>
</div>
{{-- フラッシュ --}} {{-- フラッシュ --}}
<div class="form col-lg-12"> <div class="form col-lg-12">
@ -56,140 +60,66 @@
@endif @endif
</div> </div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20"> {{-- 単一テーブル --}}
{{-- 左:チェック列+編集ボタン --}} <div class="col-lg-12 mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left"> <div class="table-responsive">
<form action="{{ route('devices_delete') }}" method="post" id="form_delete"> <form action="{{ route('devices_delete') }}" method="post" id="form_delete">
@csrf @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> <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> </thead>
<tbody> <tbody>
@foreach($list as $item) @foreach($list as $item)
<tr role="row"> <tr>
<td> <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 }}"> <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 ml-2">{{ __('編集') }}</a>
<a href="{{ route('devices_edit',['id'=>$item->device_id]) }}" class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div> </div>
</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form> </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>
</div> </div>
@ -198,21 +128,39 @@
@push('scripts') @push('scripts')
<script> <script>
document.querySelectorAll('th.sorting[sort]').forEach(function(th){ // ソート
th.style.cursor = 'pointer'; document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){ th.addEventListener('click', function() {
var field = this.getAttribute('sort'); const form = document.getElementById('list-form');
var cur = document.getElementById('sort').value; const current = "{{ $sort ?? '' }}";
var type = document.getElementById('sort_type').value || 'asc'; const currentType = "{{ $sort_type ?? '' }}";
var next = (cur === field && type === 'asc') ? 'desc' : 'asc'; const nextCol = this.getAttribute('sort');
document.getElementById('sort').value = field; let nextType = 'asc';
document.getElementById('sort_type').value = next; if (current === nextCol) {
document.getElementById('list-form').submit(); 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> </script>
@endpush @endpush
@endsection @endsection

View File

@ -21,7 +21,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
<div class="card p-4"> <div class="card p-4">
{{-- 管轄駐輪場ID表示のみ --}} {{-- 管轄駐輪場ID表示のみ --}}

View File

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

View File

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

View File

@ -43,7 +43,7 @@
<div class="card p-3"> <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 @csrf
@include('admin.managers._form', ['isEdit' => 1, 'isInfo' => 0]) @include('admin.managers._form', ['isEdit' => 1, 'isInfo' => 0])

View File

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

View File

@ -2,47 +2,45 @@
@section('title', '[東京都|〇〇駐輪場] 駐輪場管理者マスタ') @section('title', '[東京都|〇〇駐輪場] 駐輪場管理者マスタ')
@section('content') @section('content')
<div class="content-header"> <!-- Content Header -->
<div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('駐輪場管理者マスタ') }}</h1> <h1 class="m-0 text-dark">駐輪場管理者マスタ</h1>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <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('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript: void(0);">[東京都|〇〇駐輪場]</a></li> <li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{ __('駐輪場管理者マスタ') }}</li> <li class="breadcrumb-item active">駐輪場管理者マスタ</li>
</ol> </ol>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<section class="content"> <!-- Main Content -->
<section class="content">
<div class="container-fluid"> <div class="container-fluid">
{{-- 並び替え用 hidden --}}
<div class="row"> <form action="{{ route('managers') }}" method="POST" id="list-form">
{{-- 並び替え用 --}}
<form action="{{ route('managers') }}" method="post" id="list-form">
@csrf @csrf
<input type="hidden" value="{{ $sort }}" name="sort" id="sort"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" value="{{ $sort_type }}" name="sort_type" id="sort_type"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form> </form>
<!-- 操作ボタン -->
<div class="container-fluid mb20"> <div class="container-fluid mb20">
{{-- 新規 --}} <button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('managers_add') }}'">新規</button>
<a href="{{ route('managers_add') }}" class="btn btn-sm btn-default mr10"> <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>
</a> <div class="d-flex justify-content-end">
{{-- 削除(左侧勾选后提交下方 form_delete --}} {{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
<button type="submit" class="btn btn-sm btn-default mr10" id="delete" form="form_delete"> </div>
{{ __('削除') }}
</button>
{{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div> </div>
<!-- メッセージ表示 -->
<div class="form col-lg-12"> <div class="form col-lg-12">
@if(Session::has('success')) @if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert"> <div class="alert alert-success alert-dismissible" role="alert">
@ -55,135 +53,61 @@
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4> <h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </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 @endif
</div> </div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20"> <!-- 単一テーブル構成 -->
{{-- 左:チェック&操作 --}} <div class="col-lg-12 mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left"> <div class="table-responsive">
<form action="{{ route('managers_delete') }}" method="post" id="form_delete"> <form action="{{ route('managers_delete') }}" method="POST" id="form_delete">
@csrf @csrf
<table class="table dataTable"> <table class="table table-bordered table-striped dataTable text-nowrap">
<thead> <thead>
<tr> <tr>
<th> {{-- チェック + 編集ボタン列 --}}
<th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all"> <input type="checkbox" class="minimal m-0" id="checkbox_all">
</th> </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> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($list as $item) @foreach($list as $item)
<tr role="row"> <tr>
<td> {{-- チェック+編集ボタン --}}
<input type="checkbox" class="minimal m-0 checkbox" <td class="table-warning align-middle">
value="{{ $item->manager_id }}" name="pk[]"> <div class="d-flex align-items-center">
<div class="btn_action"> <input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->manager_id }}">
{{-- <a href="{{ route('managers_add') }}" class="btn btn-sm btn-default">詳細</a> --}} <a href="{{ route('managers_info', ['id' => $item->manager_id]) }}"
<a href="{{ route('managers_info', ['manager_id' => $item->manager_id]) }}" class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div> </div>
</td> </td>
</tr> <td class="sm-item text-left align-middle">{{ $item->manager_id }}</td>
@endforeach <td class="sm-item text-left align-middle">{{ $item->manager_name }}</td>
</tbody> <td class="sm-item text-left align-middle">{{ $item->manager_type }}</td>
</table> <td class="sm-item text-left align-middle">{{ !empty($item->getPark()) ? $item->getPark()->park_name : '' }}</td>
</form> <td class="sm-item text-left align-middle">{{ !empty($item->getDevice1()) ? $item->getDevice1()->device_subject : '' }}</td>
</div> <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>
<div class="col-lg-10 col-xl-10 col-md-10 col-sm-9 col-xs-9 table_right no_padding_right"> <td class="sm-item text-left align-middle">{{ $item->manager_alert1 }}</td>
<div class="scroll"> <td class="sm-item text-left align-middle">{{ $item->manager_alert2 }}</td>
<table class="table dataTable"> <td class="sm-item text-left align-middle">{{ $item->getManagerQuitFlagDisplay() }}</td>
<thead> <td class="sm-item text-left align-middle">
<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) @if($item->manager_quitday)
<span class="text-muted"><i class="fa fa-clock-o mr-1"></i> <span class="text-muted">
<i class="fa fa-clock-o mr-1"></i>
{{ mb_substr($item->manager_quitday, 0, 10) }} {{ mb_substr($item->manager_quitday, 0, 10) }}
</span> </span>
@endif @endif
@ -191,21 +115,21 @@
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form>
</div> </div>
</div> </div>
<!-- 単一テーブル構成ここまで -->
</div> </div>
</section>
</div> <form action="{{ route('managers_export') }}" method="GET" id="form_export"></form>
</div>
</section>
<script> <script>
// 全選択 // 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function () { document.getElementById('checkbox_all')?.addEventListener('change', function () {
const checks = document.querySelectorAll('#form_delete .checkbox'); const checks = document.querySelectorAll('#form_delete .checkbox');
checks.forEach(ch => ch.checked = this.checked); checks.forEach(ch => ch.checked = this.checked);
}); });
</script> </script>
@endsection @endsection

View File

@ -1,35 +1,33 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータキュー') @section('title', '[東京都|〇〇駐輪場] オペレータキュー')
@section('content') @section('content')
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">{{__('オペレータキュー')}}</h1> <h1 class="m-0 text-dark">オペレータキュー</h1>
</div><!-- /.col --> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <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('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript: void(0);">[東京都|〇〇駐輪場]</a></li> <li class="breadcrumb-item active">オペレータキュー</li>
<li class="breadcrumb-item active">{{__('オペレータキュー')}}</li>
</ol> </ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div> </div>
<!-- /.content-header --> </div>
</div>
</div>
<!-- Main content --> <section class="content">
<section class="content"> <!-- 絞り込みフィルター -->
<!-- キューステータス -->
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <div class="card">
<div class="card-header"><h3 class="card-title">絞り込みフィルター</h3></div> <div class="card-header"><h3 class="card-title">絞り込みフィルター</h3></div>
<div class="card-body"> <div class="card-body">
<form action="{{ route('operator_ques') }}" method="POST" id="filter-form"> <form action="{{ route('operator_ques') }}" method="POST" id="list-form">
@csrf @csrf
<input type="hidden" name="sort" id="sort" value="{{ $sort ?? '' }}"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type ?? '' }}"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
<div class="row"> <div class="row">
<div class="form-group col-12"> <div class="form-group col-12">
@ -37,8 +35,7 @@
<select name="que_status" class="form-control"> <select name="que_status" class="form-control">
<option value="">-- 選択してください --</option> <option value="">-- 選択してください --</option>
@foreach(\App\Models\OperatorQue::QueStatus as $key => $label) @foreach(\App\Models\OperatorQue::QueStatus as $key => $label)
<option value="{{ $key }}" <option value="{{ $key }}" {{ old('que_status', $que_status ?? '') == $key ? 'selected' : '' }}>
@if(old('que_status', $que_status ?? '') == $key) selected @endif>
{{ $label }} {{ $label }}
</option> </option>
@endforeach @endforeach
@ -46,7 +43,7 @@
</div> </div>
</div> </div>
<div class="form-group col-12 text-left mt-2"> <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="filter" class="btn btn-default">絞り込み</button>
<button type="submit" name="action" value="reset" class="btn btn-default">解除</button> <button type="submit" name="action" value="reset" class="btn btn-default">解除</button>
</div> </div>
@ -54,32 +51,21 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 絞り込みフィルター -->
<div class="container-fluid"> <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">
</form>
<div class="container-fluid mb20"> <div class="container-fluid mb20">
<button type="submit" class="btn btn-sm btn-default mr10" name="delete" <button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
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" name="import_csv" id="import_csv" action="{{route('operator_ques_import')}}">{{__('インポート')}}</button> <button type="submit" class="btn btn-sm btn-default mr10" form="form_export">{{ __('CSV出力') }}</button>
<button type="submit" class="btn btn-sm btn-default mr10" name="export_csv" id="export_csv" action="{{route('operator_ques_export')}}">{{__('CSV出力')}}</button> <div class="d-flex justify-content-end">
{{ $list->appends(['sort' => $sort,'sort_type'=>$sort_type])->links('pagination') }} {{ $list->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div> </div>
</div>
<!-- ツールバー -->
<!-- メッセージ表示 -->
<div class="form col-lg-12"> <div class="form col-lg-12">
@if(Session::has('success')) @if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert"> <div class="alert alert-success alert-dismissible" role="alert">
@ -89,150 +75,109 @@
@elseif(Session::has('error')) @elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4> <h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </div>
@elseif(isset($errorMsg)) @elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4> <h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! $errorMsg !!} {!! $errorMsg !!}
</div> </div>
@endif @endif
</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 col-xs-3 table_left">
<form action="{{route('operator_ques_delete')}}" method="post" id="form_delete"> <!-- 単一テーブル構成 -->
<input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="col-lg-12 mb20">
<table class="table dataTable"> <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> <thead>
<tr> <tr>
<th> <th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all"> <input type="checkbox" class="minimal m-0" id="checkbox_all">
</th> </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> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($list as $item) @foreach($list as $item)
<tr role="row"> <tr>
<td> <td class="table-warning align-middle">
<input type="checkbox" class="minimal m-0 checkbox" <div class="d-flex align-items-center">
value="{{ $item->que_id }}" name="pk[]"> <input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->que_id }}">
<div class="btn_action"> <a href="{{ route('operator_ques_info', ['id' => $item->que_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
{{-- 詳細 --}}
{{-- <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> </div>
</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form> </form>
</div> </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> </div>
</section>
</div> <form action="{{ route('operator_ques_export') }}" method="GET" id="form_export"></form>
<!-- /.row -->
</div><!-- /.container-fluid -->
</section>
<!-- /.content -->
@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 @endsection

View File

@ -1,44 +1,45 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] オペレータマスタ') @section('title', '[東京都|〇〇駐輪場] オペレータマスタ')
@section('content') @section('content')
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">{{__('オペレータマスタ')}}</h1> <h1 class="m-0 text-dark">オペレータマスタ</h1>
</div><!-- /.col --> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <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('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li> <li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{__('オペレータマスタ')}}</li> <li class="breadcrumb-item active">オペレータマスタ</li>
</ol> </ol>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.container-fluid -->
</div> </div>
<!-- /.content-header --> </div>
</div>
</div>
<!-- Main content --> <section class="content">
<section class="content">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> {{-- 並び替え用 hidden --}}
<form action="{{ route('opes') }}" method="post" id="list-form"> <form action="{{ route('opes') }}" method="POST" id="list-form">
@csrf @csrf
<input type="hidden" value="{{ $sort }}" name="sort" id="sort"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" value="{{ $sort_type }}" name="sort_type" id="sort_type"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form> </form>
<!-- ツールバー -->
<div class="container-fluid mb20"> <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" onclick="location.href='{{ route('opes_add') }}'">新規</button>
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">{{ __('削除') }}</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_import') }}">インポート</button>
<button type="submit" class="btn btn-sm btn-default mr10" formaction="{{ route('opes_export') }}">{{ __('CSV出力') }}</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') }} {{ $list->appends(['sort' => $sort, 'sort_type' => $sort_type])->links('pagination') }}
</div>
</div> </div>
<!-- メッセージ表示 -->
<div class="form col-lg-12"> <div class="form col-lg-12">
@if(Session::has('success')) @if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert"> <div class="alert alert-success alert-dismissible" role="alert">
@ -48,273 +49,128 @@
@elseif(Session::has('error')) @elseif(Session::has('error'))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4> <h4><i class="icon fa fa-ban"></i> エラー:</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </div>
@elseif(isset($errorMsg)) @elseif(isset($errorMsg))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> {{__('誤差')}}:</h4> <h4><i class="icon fa fa-ban"></i> エラー:</h4>
{!! $errorMsg !!} {!! $errorMsg !!}
</div> </div>
@endif @endif
</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 col-xs-3 table_left"> <div class="col-lg-12 mb20">
<form action="{{ route('opes_delete') }}" method="post" id="form_delete"> <div class="table-responsive">
<form action="{{ route('opes_delete') }}" method="POST" id="form_delete">
@csrf @csrf
<table class="table dataTable"> <table class="table table-bordered table-striped dataTable text-nowrap">
<thead> <thead>
<tr> <tr>
<th> <th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all"> <input type="checkbox" class="minimal m-0" id="checkbox_all">
</th> </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> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($list as $item) @foreach($list as $item)
<tr role="row"> <tr>
<td> <td class="table-warning align-middle">
<input type="checkbox" class="minimal m-0 checkbox" <div class="d-flex align-items-center">
value="{{ $item->ope_id }}" name="pk[]"> <input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->ope_id }}">
<div class="btn_action"> <a href="{{ route('opes_info', ['id' => $item->ope_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
<a href="{{ route('opes_info',['id'=>$item->ope_id]) }}"
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div> </div>
</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form> </form>
</div> </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>
</div> </section>
</div>
</div><!-- /.container-fluid --> <form action="{{ route('opes_export') }}" method="GET" id="form_export"></form>
</section>
<!-- /.content --> @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 @endsection

View File

@ -9,7 +9,7 @@
{{-- 登録・削除 ボタン(上部) --}} {{-- 登録・削除 ボタン(上部) --}}
<div class="text-left mt-2 mb-3"> <div class="text-left mt-2 mb-3">
@if($isInfo) @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 @else
<button type="submit" class="btn btn-lg btn-success">登録</button> <button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit) @if($isEdit)
@ -198,7 +198,7 @@
{{-- 登録・削除 ボタン(下部重ね) --}} {{-- 登録・削除 ボタン(下部重ね) --}}
<div class="text-left mt-2"> <div class="text-left mt-2">
@if($isInfo) @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 @else
<button type="submit" class="btn btn-lg btn-success">登録</button> <button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit) @if($isEdit)

View File

@ -21,7 +21,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
@include('admin.payments._form', [ @include('admin.payments._form', [
'payment' => $payment, 'payment' => $payment,

View File

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

View File

@ -22,7 +22,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
@include('admin.print_areas._form', [ @include('admin.print_areas._form', [

View File

@ -21,7 +21,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
@include('admin.print_areas._form', ['isEdit' => 0, 'isInfo' => 1]) @include('admin.print_areas._form', ['isEdit' => 0, 'isInfo' => 1])
</form> </form>

View File

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

View File

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

View File

@ -31,7 +31,7 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <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 --> <!-- TOKEN FORM -->
<input type="hidden" name="_token" value="{{ csrf_token() }}" > <input type="hidden" name="_token" value="{{ csrf_token() }}" >
<!-- / .TOKEN FORM --> <!-- / .TOKEN FORM -->

View File

@ -31,7 +31,7 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <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 --> <!-- TOKEN FORM -->
<input type="hidden" name="_token" value="{{ csrf_token() }}" > <input type="hidden" name="_token" value="{{ csrf_token() }}" >
<!-- / .TOKEN FORM --> <!-- / .TOKEN FORM -->

View File

@ -31,7 +31,7 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <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 --> <!-- TOKEN FORM -->
<input type="hidden" name="_token" value="{{ csrf_token() }}" > <input type="hidden" name="_token" value="{{ csrf_token() }}" >
<!-- / .TOKEN FORM --> <!-- / .TOKEN FORM -->

View File

@ -1,41 +1,47 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '[東京都|〇〇駐輪場] 定期種別マスタ') @section('title', '[東京都|〇〇駐輪場] 定期種別マスタ')
@section('content') @section('content')
<div class="content-header"> <!-- Content Header -->
<div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('定期種別マスタ') }}</h1> <h1 class="m-0 text-dark">定期種別マスタ</h1>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <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('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li> <li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{ __('定期種別マスタ') }}</li> <li class="breadcrumb-item active">定期種別マスタ</li>
</ol> </ol>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<section class="content"> <!-- Main Content -->
<section class="content">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> {{-- 並び替え用 hidden --}}
<form action="{{ route('regular_types') }}" method="post" id="list-form"> <form action="{{ route('regular_types') }}" method="POST" id="list-form">
<input type="hidden" name="_token" value="{{ csrf_token() }}"> @csrf
<input type="hidden" value="{{ $sort }}" name="sort" id="sort"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" value="{{ $sort_type }}" name="sort_type" id="sort_type"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form> </form>
<div class="container-fluid mb20"> <div class="container-fluid mb20">
<button type="submit" class="btn btn-sm btn-default mr10" name="delete" id="delete">{{ __('削除') }}</button> <button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('regular_types_add') }}'">新規</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="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
<button type="submit" class="btn btn-sm btn-default mr10" name="export_csv" id="export_csv" action="{{ route('regular_types_export') }}">{{ __('CSV出力') }}</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>
<div class="form col-lg-12"> <!-- メッセージ表示 -->
<div class="col-lg-12">
@if(Session::has('success')) @if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert"> <div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
@ -47,123 +53,62 @@
<h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4> <h4><i class="icon fa fa-ban"></i> {{ __('誤差') }}:</h4>
{!! Session::get('error') !!} {!! Session::get('error') !!}
</div> </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 @endif
</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 col-xs-3 table_left"> <div class="col-lg-12 mb20">
<form action="{{ route('regular_types_delete') }}" method="post" id="form_delete"> <div class="table-responsive">
<input type="hidden" name="_token" value="{{ csrf_token() }}"> <form action="{{ route('regular_types_delete') }}" method="POST" id="form_delete">
<table class="table dataTable"> @csrf
<table class="table table-bordered table-striped dataTable text-nowrap">
<thead> <thead>
<tr> <tr>
<th><input type="checkbox" class="minimal m-0" id="checkbox_all"></th> {{-- チェック + 編集ボタン --}}
<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> </tr>
</thead> </thead>
<tbody> <tbody>
@php
$rc = \App\Models\RegularType::RegularClass;
@endphp
@foreach($list as $item) @foreach($list as $item)
<tr role="row"> <tr>
<td> <td class="table-warning align-middle">
<input type="checkbox" class="minimal m-0 checkbox" value="{{ $item->regular_type_id }}" name="pk[]"> <div class="d-flex align-items-center">
<div class="btn_action"> <input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->regular_type_id }}">
<a href="{{ route('regular_type_info', ['id' => $item->regular_type_id]) }}" class="btn btn-sm btn-default ml10">{{ __('編集') }}</a> <a href="{{ route('regular_types_info', ['id' => $item->regular_type_id]) }}"
class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
</div> </div>
</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form> </form>
</div> </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>
</section>
</div> <form action="{{ route('regular_types_export') }}" method="GET" id="form_export"></form>
</div>
</div>
</section>
@endsection @endsection

View File

@ -5,11 +5,12 @@
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"><h1 class="m-0 text-dark">{{ __('設定マスタ') }}</h1></div> <div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('設定マスタ') }}</h1>
</div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <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('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
<li class="breadcrumb-item active">{{ __('設定マスタ') }}</li> <li class="breadcrumb-item active">{{ __('設定マスタ') }}</li>
</ol> </ol>
</div> </div>
@ -27,14 +28,20 @@
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}"> <input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type }}">
</form> </form>
<div class="container-fluid mb20"> <!-- ツールバー -->
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('settings_add') }}'">{{ __('新規') }}</button> <div class="container-fluid mb20 d-flex justify-content-between align-items-center">
<button type="submit" class="btn btn-sm btn-default mr10" form="form_delete">{{ __('削除') }}</button> <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') }} {{ $list->appends(['sort'=>$sort,'sort_type'=>$sort_type])->links('pagination') }}
</div> </div>
</div>
{{-- フラッシュ --}} {{-- フラッシュメッセージ --}}
<div class="form col-lg-12"> <div class="form col-lg-12">
@if(Session::has('success')) @if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert"> <div class="alert alert-success alert-dismissible" role="alert">
@ -56,57 +63,41 @@
@endif @endif
</div> </div>
<div class="col-lg-12 sample03-wrapper no_padding_right mb20"> <!-- 単一テーブル構成 ----------------------------------------- -->
<form action="{{ route('settings_delete') }}" method="post" id="form_delete"> <div class="col-lg-12 mb20">
<div class="table-responsive">
<form action="{{ route('settings_delete') }}" method="POST" id="form_delete">
@csrf @csrf
<div class="scroll"> <table class="table table-bordered table-striped dataTable text-nowrap">
<table class="table dataTable">
<thead> <thead>
<tr> <tr>
{{-- 左:チェック+編集 --}} <th style="width:120px;" class="text-left">
<th style="width:140px; background:#f9f9f9;">
<input type="checkbox" class="minimal m-0" id="checkbox_all"> <input type="checkbox" class="minimal m-0" id="checkbox_all">
</th> </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="setting_id" class="sorting @if($sort=='setting_id'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-right"> <th sort="web_master" class="sorting {{ ($sort=='web_master') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('ウェブ参照マスタ') }}</span></th>
{{ __('設定ID') }} <th sort="auto_change_date" class="sorting {{ ($sort=='auto_change_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}"><span>{{ __('自動切替日時') }}</span></th>
</th> <th><span>{{ __('自動切換え参照マスタ') }}</span></th>
<th sort="edit_master" class="sorting @if($sort=='edit_master'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left"> <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> <th class="text-right"><span>{{ __('ロール紙印字残警告数') }}</span></th>
<th sort="web_master" class="sorting @if($sort=='web_master'){{ $sort_type=='asc'?'sorting_asc':'sorting_desc' }}@endif text-left"> <th class="text-right"><span>{{ __('キープアライブ(分)') }}</span></th>
{{ __('ウェブ参照マスタ') }}
</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> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($list as $row) @foreach($list as $row)
<tr> <tr>
{{-- 左:チェック+編集 --}} <td class="table-warning align-middle">
<td class="sm-item text-left" style="background:#f9f9f9;"> <div class="d-flex align-items-center">
<input type="checkbox" class="minimal m-0 checkbox" name="id[]" value="{{ $row->setting_id }}"> <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 ml-2">{{ __('編集') }}</a>
<a href="{{ route('settings_edit',['id'=>$row->setting_id]) }}" class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div> </div>
</td> </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-right">{{ $row->setting_id }}</td> <td class="sm-item text-left align-middle">{{ $row->web_master }}</td>
<td class="sm-item text-left">{{ $row->edit_master }}</td> <td class="sm-item text-right align-middle">
<td class="sm-item text-left">{{ $row->web_master }}</td>
<td class="sm-item text-right">
@php @php
$dt = $row->auto_change_date instanceof \Carbon\Carbon $dt = $row->auto_change_date instanceof \Carbon\Carbon
? $row->auto_change_date->format('Y/m/d H:i') ? $row->auto_change_date->format('Y/m/d H:i')
@ -114,41 +105,58 @@
@endphp @endphp
{{ $dt }} {{ $dt }}
</td> </td>
<td class="sm-item text-left">{{ $row->auto_chage_master }}</td> <td class="sm-item text-left align-middle">{{ $row->auto_chage_master }}</td>
<td class="sm-item text-left">{{ $row->printable_alert_flag ? '○' : '' }}</td> <td class="sm-item text-left align-middle">{{ $row->printable_alert_flag ? '○' : '' }}</td>
<td class="sm-item text-right">{{ $row->printable_number }}</td> <td class="sm-item text-right align-middle">{{ $row->printable_number }}</td>
<td class="sm-item text-right">{{ $row->printable_alert_number }}</td> <td class="sm-item text-right align-middle">{{ $row->printable_alert_number }}</td>
<td class="sm-item text-right">{{ $row->printer_keep_alive }}</td> <td class="sm-item text-right align-middle">{{ $row->printer_keep_alive }}</td>
</tr> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</div>
</form> </form>
</div> </div>
</div>
<!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div> </div>
</section> </section>
{{-- 一括削除 & ソート --}}
@push('scripts') @push('scripts')
<script> <script>
document.querySelectorAll('th.sorting[sort]').forEach(function(th){ // 全選択
th.style.cursor = 'pointer'; document.getElementById('checkbox_all')?.addEventListener('change', function(e){
th.addEventListener('click', function(){ document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
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('delete')?.addEventListener('click', function(){
document.getElementById('sort').value = field; const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
document.getElementById('sort_type').value = next; if (!anyChecked) {
document.getElementById('list-form').submit(); 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.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(function(cb){ cb.checked = e.target.checked; });
});
</script> </script>
@endpush @endpush
@endsection @endsection

View File

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

View File

@ -28,7 +28,7 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <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 @csrf
@include('admin.settlement_transactions._form', [ @include('admin.settlement_transactions._form', [
'transaction' => $transaction, 'transaction' => $transaction,

View File

@ -2,24 +2,23 @@
@section('title', '[東京都|〇〇駐輪場] 決済トランザクション') @section('title', '[東京都|〇〇駐輪場] 決済トランザクション')
@section('content') @section('content')
<div class="content-header"> <div class="content-header">
<div class="container-fluid"> <div class="container-fluid">
<div class="row mb-2"> <div class="row mb-2">
<div class="col-lg-6"> <div class="col-lg-6">
<h1 class="m-0 text-dark">{{ __('決済トランザクション') }}</h1> <h1 class="m-0 text-dark">決済トランザクション</h1>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<ol class="breadcrumb float-sm-right text-sm"> <ol class="breadcrumb float-sm-right text-sm">
<li class="breadcrumb-item"><a href="{{ route('home') }}">{{ __('ホーム') }}</a></li> <li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
<li class="breadcrumb-item active">{{ __('決済トランザクション') }}</li> <li class="breadcrumb-item active">決済トランザクション</li>
</ol> </ol>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- /.content-header -->
<section class="content"> <section class="content">
<!-- 絞り込みフィルター --> <!-- 絞り込みフィルター -->
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <div class="card">
@ -27,8 +26,8 @@
<div class="card-body"> <div class="card-body">
<form action="{{ route('settlement_transactions') }}" method="POST" id="list-form"> <form action="{{ route('settlement_transactions') }}" method="POST" id="list-form">
@csrf @csrf
<input type="hidden" name="sort" id="sort" value="{{ $sort ?? '' }}"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" id="sort_type" value="{{ $sort_type ?? '' }}"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
<div class="row"> <div class="row">
<div class="form-group col-12"> <div class="form-group col-12">
@ -46,20 +45,19 @@
</div> </div>
</div> </div>
</div> </div>
<div class="container-fluid"> <div class="container-fluid">
<!-- ツールバー -->
<div class="row">
{{-- ソート保持用 --}}
<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 ?? '' }}">
</form>
<div class="container-fluid mb20"> <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') }} {{ $transactions->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div> </div>
</div>
<!-- メッセージ表示 -->
<div class="form col-lg-12"> <div class="form col-lg-12">
@if(Session::has('success')) @if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert"> <div class="alert alert-success alert-dismissible" role="alert">
@ -81,116 +79,82 @@
@endif @endif
</div> </div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20"> <!-- 単一テーブル構成 ----------------------------------------- -->
{{-- 左:チェック&操作 --}} <div class="col-lg-12 mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left"> <div class="table-responsive">
<form action="{{ route('settlement_transactions_delete') }}" method="POST" id="form_delete"> <form action="{{ route('settlement_transactions_delete') }}" method="POST" id="form_delete">
@csrf @csrf
<table class="table dataTable"> <table class="table table-bordered table-striped dataTable text-nowrap">
<thead> <thead>
<tr> <tr>
<th> <th style="width:120px;" class="text-left">
<input type="checkbox" class="minimal m-0" id="checkbox_all"> <input type="checkbox" class="minimal m-0" id="checkbox_all">
</th> </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> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($transactions as $item) @foreach($transactions as $item)
<tr role="row"> <tr>
<td> <td class="table-warning align-middle">
<input type="checkbox" class="minimal m-0 checkbox" <div class="d-flex align-items-center">
value="{{ $item->settlement_transaction_id }}" name="ids[]"> <input type="checkbox" class="minimal m-0 checkbox" name="ids[]" value="{{ $item->settlement_transaction_id }}">
<div class="btn_action"> <a href="{{ route('settlement_transactions_edit', ['id' => $item->settlement_transaction_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
<a href="{{ route('settlement_transactions_edit', ['settlement_transaction_id' => $item->settlement_transaction_id]) }}"
class="btn btn-sm btn-default ml10">{{ __('編集') }}</a>
</div> </div>
</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form> </form>
</div> </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>
</section>
</div> <form action="{{ route('settlement_transactions_export') }}" method="GET" id="form_export"></form>
</div>
</div> @push('scripts')
</section> <script>
@push('scripts')
<script>
// 全選択 // 全選択
document.getElementById('checkbox_all')?.addEventListener('change', function(e){ document.getElementById('checkbox_all')?.addEventListener('change', function(e){
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked); document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
}); });
// 削除 // 削除確認
document.getElementById('delete')?.addEventListener('click', function(){ document.getElementById('delete')?.addEventListener('click', function(){
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked); const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
if (!anyChecked) { alert('{{ __("削除対象が選択されていません。") }}'); return; } if (!anyChecked) {
if (confirm('{{ __("削除してよろしいですか?") }}')) { alert('削除対象が選択されていません。');
return;
}
if (confirm('削除してよろしいですか?')) {
document.getElementById('form_delete').submit(); document.getElementById('form_delete').submit();
} }
}); });
@ -211,19 +175,6 @@
form.submit(); form.submit();
}); });
}); });
</script>
// インポートファイル選択→自動送信必要ならUIを別途用意 @endpush
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
@endsection @endsection

View File

@ -12,7 +12,7 @@
@endif @endif
<div class="card-header"> <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>
<div class="card-body"> <div class="card-body">

View File

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

View File

@ -27,9 +27,9 @@
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<div class="card"> <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 @csrf
@include('admin.neighbor_stations._form', ['isEdit' => 1, 'isInfo' => 0, 'station' => $station]) @include('admin.stations._form', ['isEdit' => 1, 'isInfo' => 0, 'station' => $station])
</form> </form>
</div> </div>
</div> </div>

View File

@ -1,10 +1,9 @@
{{-- resources/views/admin/neighbor_stations/import.blade.php --}}
@extends('layouts.admin') @extends('layouts.admin')
@section('content') @section('content')
<h1>近傍駅 インポート</h1> <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 @csrf
<div class="form-group"> <div class="form-group">
<label for="csv_file">CSVファイルを選択:</label> <label for="csv_file">CSVファイルを選択:</label>
@ -13,5 +12,5 @@
<button type="submit" class="btn btn-primary">アップロード</button> <button type="submit" class="btn btn-primary">アップロード</button>
</form> </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 @endsection

View File

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

View File

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

View File

@ -9,7 +9,7 @@
{{-- 登録・削除 ボタン(上部) --}} {{-- 登録・削除 ボタン(上部) --}}
<div class="text-left mt-2 mb-3"> <div class="text-left mt-2 mb-3">
@if($isInfo) @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 @else
<button type="submit" class="btn btn-lg btn成功 btn-success">登録</button> <button type="submit" class="btn btn-lg btn成功 btn-success">登録</button>
@if($isEdit) @if($isEdit)
@ -66,7 +66,7 @@
{{-- 登録・削除 ボタン(下部重ね) --}} {{-- 登録・削除 ボタン(下部重ね) --}}
<div class="text-left mt-2"> <div class="text-left mt-2">
@if($isInfo) @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 @else
<button type="submit" class="btn btn-lg btn-success">登録</button> <button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit) @if($isEdit)

View File

@ -21,7 +21,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
@include('admin.tax._form', [ @include('admin.tax._form', [
'tax' => $tax, 'tax' => $tax,

View File

@ -1,5 +1,5 @@
@extends('layouts.app') @extends('layouts.app')
@section('title', '消費税マスタ') @section('title', '[東京都|〇〇駐輪場] 消費税マスタ')
@section('content') @section('content')
<!-- Content Header --> <!-- Content Header -->
@ -23,60 +23,51 @@
<!-- Main Content --> <!-- Main Content -->
<section class="content"> <section class="content">
<div class="container-fluid"> <div class="container-fluid">
{{-- 一覧のソート用(既存規約踏襲) --}} {{-- 並び替え用 hidden --}}
<form action="{{ route('tax') }}" method="POST" id="list-form"> <form action="{{ route('tax') }}" method="POST" id="list-form">
@csrf @csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form> </form>
<!-- ツールバー -->
<div class="container-fluid mb20"> <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" onclick="location.href='{{ route('tax_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="delete">削除</button>
<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') }} {{ $taxes->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div> </div>
</div>
<div class="col-lg-12"> <!-- メッセージ表示 -->
@if(session('success')) <div class="form col-lg-12">
<div class="alert alert-success alert-dismissible">{{ session('success') }}</div> @if(Session::has('success'))
@elseif(session('error')) <div class="alert alert-success alert-dismissible" role="alert">
<div class="alert alert-danger alert-dismissible">{{ session('error') }}</div> <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 @endif
</div> </div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20"> <!-- 単一テーブル構成 ----------------------------------------- -->
<!-- 左側チェックボックス&編集ボタン --> <div class="col-lg-12 mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left"> <div class="table-responsive">
<form action="{{ route('tax_delete') }}" method="POST" id="form_delete"> <form action="{{ route('tax_delete') }}" method="POST" id="form_delete">
@csrf @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($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">
<thead> <thead>
<tr> <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"> <th class="sorting {{ ($sort=='tax_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="tax_id">
<span>消費税ID</span> <span>消費税ID</span>
</th> </th>
@ -91,30 +82,37 @@
<tbody> <tbody>
@foreach($taxes as $tax) @foreach($taxes as $tax)
<tr> <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 @php
$val = is_numeric($tax->tax_percent) $val = is_numeric($tax->tax_percent)
? number_format((float)$tax->tax_percent, 2, '.', '') ? number_format((float)$tax->tax_percent, 2, '.', '')
: (string)$tax->tax_percent; : (string)$tax->tax_percent;
@endphp @endphp
{{ $val }}% {{ $val }}%
</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form>
</div> </div>
</div> </div>
</div> <!-- 単一テーブル構成ここまで ----------------------------------------- -->
</div> </div>
</section> </section>
<form action="{{ route('tax_export') }}" method="GET" id="form_export"></form> <form action="{{ route('tax_export') }}" method="GET" id="form_export"></form>
{{-- 一括削除 & ソートのJS既存規約に合わせ最小限 --}}
@push('scripts') @push('scripts')
<script> <script>
// 全選択 // 全選択
@ -134,7 +132,7 @@
} }
}); });
// ヘッダクリックでソート変更(既存 list と同様のカスタム属性 "sort" を使用) // ヘッダクリックでソート
document.querySelectorAll('th.sorting').forEach(th => { document.querySelectorAll('th.sorting').forEach(th => {
th.addEventListener('click', function(){ th.addEventListener('click', function(){
const form = document.getElementById('list-form'); const form = document.getElementById('list-form');

View File

@ -9,7 +9,7 @@
{{-- 登録・削除 ボタン --}} {{-- 登録・削除 ボタン --}}
<div class="text-left mt-4"> <div class="text-left mt-4">
@if($isInfo) @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 @else
<button type="submit" class="btn btn-lg btn-success">登録</button> <button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit) @if($isEdit)
@ -98,7 +98,7 @@
{{-- 登録・削除 ボタン --}} {{-- 登録・削除 ボタン --}}
<div class="text-left mt-4"> <div class="text-left mt-4">
@if($isInfo) @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 @else
<button type="submit" class="btn btn-lg btn-success">登録</button> <button type="submit" class="btn btn-lg btn-success">登録</button>
@if($isEdit) @if($isEdit)

View File

@ -21,7 +21,7 @@
<section class="content"> <section class="content">
<div class="container-fluid"> <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 @csrf
@include('admin.terms._form', [ @include('admin.terms._form', [
'term' => $term, 'term' => $term,

View File

@ -23,60 +23,52 @@
<!-- Main Content --> <!-- Main Content -->
<section class="content"> <section class="content">
<div class="container-fluid"> <div class="container-fluid">
{{-- 並び替え用 hidden --}}
<form action="{{ route('terms') }}" method="POST" id="list-form"> <form action="{{ route('terms') }}" method="POST" id="list-form">
@csrf @csrf
<input type="hidden" name="sort" value="{{ $sort ?? '' }}"> <input type="hidden" name="sort" value="{{ $sort ?? '' }}">
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}"> <input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
</form> </form>
<div class="container-fluid mb20"> <!-- 操作ボタン&ページネーション -->
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('terms_add') }}'"> 新規</button> <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="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> <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') }} {{ $terms->appends(['sort' => $sort ?? '', 'sort_type' => $sort_type ?? ''])->links('pagination') }}
</div> </div>
</div>
<!-- メッセージ表示 -->
<div class="col-lg-12"> <div class="col-lg-12">
@if(session('success')) @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')) @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 @endif
</div> </div>
<div class="col-lg-12 row sample03-wrapper no_padding_right mb20"> <!-- 単一テーブル構成 -->
<!-- 左側チェックボックス&編集ボタン --> <div class="col-lg-12 mb20">
<div class="col-xl-2 col-lg-2 col-md-2 col-sm-3 col-xs-3 table_left"> <div class="table-responsive">
<form action="{{ route('terms_delete') }}" method="POST" id="form_delete"> <form action="{{ route('terms_delete') }}" method="POST" id="form_delete">
@csrf @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($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">
<thead> <thead>
<tr> <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"> <th class="sorting {{ ($sort=='terms_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="terms_id">
<span>利用契約ID</span> <span>利用契約ID</span>
</th> </th>
@ -90,26 +82,34 @@
<th class="sorting {{ ($sort=='start_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="start_date"> <th class="sorting {{ ($sort=='start_date') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="start_date">
<span>使用開始日</span> <span>使用開始日</span>
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach($terms as $term) @foreach($terms as $term)
<tr> <tr>
<td class="sm-item text-left">{{ $term->terms_id }}</td> {{-- チェックボックス + 編集ボタン --}}
<td class="sm-item text-left">{{ $term->city_id }}</td> <td class="table-warning align-middle">
<td class="sm-item text-left">{{ $term->use_flag ? '○' : '' }}</td> <div class="d-flex align-items-center">
<td class="sm-item text-left">{{ $term->terms_revision }}</td> <input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $term->terms_id }}">
<td class="sm-item text-left">{{ $term->terms_text }}</td> <a href="{{ route('terms_edit', ['id' => $term->terms_id]) }}"
<td class="sm-item text-left">{{ $term->memo }}</td> class="btn btn-sm btn-default ml-2">{{ __('編集') }}</a>
<td class="sm-item text-left">{{ \Carbon\Carbon::parse($term->start_date)->format('Y-m-d') }}</td> </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> </tr>
@endforeach @endforeach
</tbody> </tbody>
</table> </table>
</form>
</div> </div>
</div> </div>
</div> <!-- 単一テーブル構成ここまで -->
</div> </div>
</section> </section>

View File

@ -395,7 +395,7 @@
</a> </a>
</li> </li>
<li class="nav-item"> <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> <p class="mb-0">{{ __("近傍駅マスタ") }}</p>
</a> </a>
</li> </li>

View File

@ -2,6 +2,24 @@
use Illuminate\Support\Facades\Route; 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 12変更点:ルート定義の書き方が変更
* Laravel 5.7: Route::get('url', 'Controller@method') の形式 * 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/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::get('/using_status/export', [App\Http\Controllers\Admin\UsingStatusController::class, 'exportCsv'])->name('using_status.export');
//kin 2025/08/25 start
// [東京都|〇〇駐輪場] 定期種別マスタ // [東京都|〇〇駐輪場] 定期種別マスタ
Route::match(['get', 'post'], '/regular_types', [App\Http\Controllers\Admin\RegularTypeController::class, 'list'])->name('regular_types'); Route::match(['get', 'post'], '/regular_types', [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/add', [RegularTypeController::class, 'add'])->name('regular_types_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/edit/{id}', [RegularTypeController::class, 'edit'])
Route::match(['get', 'post'], '/regular_types/info/{id}', [App\Http\Controllers\Admin\RegularTypeController::class, 'info'])->where(['id' => '[0-9]+'])->name('regular_type_info'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/regular_types/delete', [App\Http\Controllers\Admin\RegularTypeController::class, 'delete'])->name('regular_types_delete'); ->name('regular_types_edit');
Route::match(['get', 'post'], '/regular_types/import', [App\Http\Controllers\Admin\RegularTypeController::class, 'import'])->name('regular_types_import'); Route::match(['get', 'post'], '/regular_types/info/{id}', [RegularTypeController::class, 'info'])
Route::get('/regular_types/export', [App\Http\Controllers\Admin\RegularTypeController::class, 'export'])->name('regular_types_export'); ->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'], '/stations', [StationController::class, 'list'])->name('stations');
Route::match(['get', 'post'], '/neighbor_stations/add', [App\Http\Controllers\Admin\NeighborStationController::class, 'add'])->name('neighbor_stations_add'); Route::match(['get', 'post'], '/stations/add', [StationController::class, 'add'])->name('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::match(['get', 'post'], '/stations/edit/{id}', [StationController::class, 'edit'])
Route::get('/neighbor_stations/info/{id}', [App\Http\Controllers\Admin\NeighborStationController::class, 'info'])->where(['id' => '[0-9]+'])->name('neighbor_stations_info'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/neighbor_stations/delete', [App\Http\Controllers\Admin\NeighborStationController::class, 'delete'])->name('neighbor_stations_delete'); ->name('stations_edit');
Route::post('/neighbor_stations/import', [App\Http\Controllers\Admin\NeighborStationController::class, 'import'])->name('neighbor_stations_import'); Route::get('/stations/info/{id}', [StationController::class, 'info'])
Route::get('/neighbor_stations/export', [App\Http\Controllers\Admin\NeighborStationController::class, 'export'])->name('neighbor_stations_export'); ->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', [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/add', [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/edit/{id}', [TermsController::class, 'edit'])
Route::match(['get', 'post'], '/terms/info/{term_id}', [App\Http\Controllers\Admin\TermsController::class, 'info'])->where(['term_id' => '[0-9]+'])->name('terms_info'); // 詳細表示 ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/terms/delete', [App\Http\Controllers\Admin\TermsController::class, 'delete'])->name('terms_delete'); // 削除処理(複数可) ->name('terms_edit');
Route::match(['get', 'post'], '/terms/import', [App\Http\Controllers\Admin\TermsController::class, 'import'])->name('terms_import'); // CSVインポート Route::get('/terms/info/{id}', [TermsController::class, 'info'])
Route::get('/terms/export', [App\Http\Controllers\Admin\TermsController::class, 'export'])->name('terms_export'); // CSVエクスポート ->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', [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/add', [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/edit/{id}', [JurisdictionParkingController::class, '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'); // 詳細表示 ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/jurisdiction_parkings/delete', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'delete'])->name('jurisdiction_parkings_delete'); // 削除処理(複数可) ->name('jurisdiction_parkings_edit');
Route::match(['get', 'post'], '/jurisdiction_parkings/import', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'import'])->name('jurisdiction_parkings_import'); // CSVインポート Route::get('/jurisdiction_parkings/info/{id}', [JurisdictionParkingController::class, 'info'])
Route::get('/jurisdiction_parkings/export', [App\Http\Controllers\Admin\JurisdictionParkingController::class, 'export'])->name('jurisdiction_parkings_export'); // CSVエクスポート ->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', [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/add', [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/edit/{id}', [PrintAreaController::class, 'edit'])
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]+']); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/print_areas/delete', [App\Http\Controllers\Admin\PrintAreaController::class, 'delete'])->name('print_areas_delete'); ->name('print_areas_edit');
Route::match(['get', 'post'], '/print_areas/import', [App\Http\Controllers\Admin\PrintAreaController::class, 'import'])->name('print_areas_import'); Route::get('/print_areas/info/{id}', [PrintAreaController::class, 'info'])
Route::get('/print_areas/export', [App\Http\Controllers\Admin\PrintAreaController::class, 'export'])->name('print_areas_export'); ->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'], '/contract_allowable_cities', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'list'])->name('contract_allowable_cities'); Route::match(['get', 'post'], '/managers', [ManagerController::class, 'list'])->name('managers');
Route::match(['get', 'post'], '/contract_allowable_cities/add', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'add'])->name('contract_allowable_cities_add'); Route::match(['get', 'post'], '/managers/add', [ManagerController::class, 'add'])->name('managers_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'], '/managers/edit/{id}', [ManagerController::class, 'edit'])
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]+']); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/contract_allowable_cities/delete', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'delete'])->name('contract_allowable_cities_delete'); ->name('managers_edit');
Route::match(['get', 'post'], '/contract_allowable_cities/import', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'import'])->name('contract_allowable_cities_import'); Route::get('/managers/info/{id}', [ManagerController::class, 'info'])
Route::get('/contract_allowable_cities/export', [App\Http\Controllers\Admin\ContractAllowableCityController::class, 'export'])->name('contract_allowable_cities_export'); ->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::match(['get', 'post'], '/managers', [App\Http\Controllers\Admin\ManagerController::class, 'list'])->name('managers'); Route::get('/managers/export', [ManagerController::class, 'export'])->name('managers_export');
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'], '/tax', [App\Http\Controllers\Admin\TaxController::class, 'list'])->name('tax'); Route::match(['get', 'post'], '/tax', [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/add', [TaxController::class, 'add'])->name('tax_add');
Route::match(['get', 'post'], '/tax/edit/{tax_id}', [App\Http\Controllers\Admin\TaxController::class, 'edit']) Route::match(['get', 'post'], '/tax/edit/{id}', [TaxController::class, 'edit'])
->name('tax_edit')->where(['tax_id' => '[0-9]+']); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/tax/info/{tax_id}', [App\Http\Controllers\Admin\TaxController::class, 'info']) ->name('tax_edit');
->name('tax_info')->where(['tax_id' => '[0-9]+']); Route::get('/tax/info/{id}', [TaxController::class, 'info'])
Route::match(['get', 'post'], '/tax/delete', [App\Http\Controllers\Admin\TaxController::class, 'delete'])->name('tax_delete'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/tax/import', [App\Http\Controllers\Admin\TaxController::class, 'import'])->name('tax_import'); ->name('tax_info');
Route::get('/tax/export', [App\Http\Controllers\Admin\TaxController::class, 'export'])->name('tax_export'); 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', [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/add', [PaymentController::class, 'add'])->name('payments_add');
Route::match(['get', 'post'], '/payments/edit/{payment_id}', [App\Http\Controllers\Admin\PaymentController::class, 'edit']) Route::match(['get', 'post'], '/payments/edit/{id}', [PaymentController::class, 'edit'])
->name('payments_edit')->where(['payment_id' => '[0-9]+']); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/payments/info/{payment_id}', [App\Http\Controllers\Admin\PaymentController::class, 'info']) ->name('payments_edit');
->name('payments_info')->where(['payment_id' => '[0-9]+']); Route::get('/payments/info/{id}', [PaymentController::class, 'info'])
Route::match(['get', 'post'], '/payments/delete', [App\Http\Controllers\Admin\PaymentController::class, 'delete'])->name('payments_delete'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/payments/import', [App\Http\Controllers\Admin\PaymentController::class, 'import'])->name('payments_import'); ->name('payments_info');
Route::get('/payments/export', [App\Http\Controllers\Admin\PaymentController::class, 'export'])->name('payments_export'); 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', [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/add', [SettlementTransactionController::class, 'add'])->name('settlement_transactions_add');
Route::match(['get', 'post'], '/settlement_transactions/edit/{settlement_transaction_id}', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'edit']) Route::match(['get', 'post'], '/settlement_transactions/edit/{id}', [SettlementTransactionController::class, 'edit'])
->name('settlement_transactions_edit')->where(['settlement_transaction_id' => '[0-9]+']); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/settlement_transactions/info/{settlement_transaction_id}', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'info']) ->name('settlement_transactions_edit');
->name('settlement_transactions_info')->where(['settlement_transaction_id' => '[0-9]+']); Route::get('/settlement_transactions/info/{id}', [SettlementTransactionController::class, 'info'])
Route::match(['get', 'post'], '/settlement_transactions/delete', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'delete'])->name('settlement_transactions_delete'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/settlement_transactions/import', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'import'])->name('settlement_transactions_import'); ->name('settlement_transactions_info');
Route::get('/settlement_transactions/export', [App\Http\Controllers\Admin\SettlementTransactionController::class, 'export'])->name('settlement_transactions_export'); 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', [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/add', [OpeController::class, 'add'])->name('opes_add');
Route::match(['get','post'], '/ope/edit/{id}', [App\Http\Controllers\Admin\OpeController::class, 'edit']) Route::match(['get', 'post'], '/ope/edit/{id}', [OpeController::class, 'edit'])
->where(['id' => '[0-9]+'])->name('opes_edit'); ->where(['id' => '[0-9]+'])
Route::match(['get','post'], '/ope/info/{id}', [App\Http\Controllers\Admin\OpeController::class, 'info']) ->name('opes_edit');
->where(['id' => '[0-9]+'])->name('opes_info'); Route::get('/ope/info/{id}', [OpeController::class, 'info'])
Route::match(['get','post'], '/ope/delete', [App\Http\Controllers\Admin\OpeController::class, 'delete'])->name('opes_delete'); ->where(['id' => '[0-9]+'])
Route::match(['get','post'], '/ope/import', [App\Http\Controllers\Admin\OpeController::class, 'import'])->name('opes_import'); ->name('opes_info');
Route::get('/ope/export', [App\Http\Controllers\Admin\OpeController::class, 'export'])->name('opes_export'); 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', [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/add', [DeviceController::class, 'add'])->name('devices_add');
Route::match(['get', 'post'], '/device/edit/{id}', [App\Http\Controllers\Admin\DeviceController::class, 'edit']) Route::match(['get', 'post'], '/device/edit/{id}', [DeviceController::class, 'edit'])
->where(['id' => '[0-9]+'])->name('devices_edit'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/device/info/{id}', [App\Http\Controllers\Admin\DeviceController::class, 'info']) ->name('devices_edit');
->where(['id' => '[0-9]+'])->name('devices_info'); Route::get('/device/info/{id}', [DeviceController::class, 'info'])
Route::match(['get', 'post'], '/device/delete', [App\Http\Controllers\Admin\DeviceController::class, 'delete'])->name('devices_delete'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/device/import', [App\Http\Controllers\Admin\DeviceController::class, 'import'])->name('devices_import'); ->name('devices_info');
Route::get('/device/export', [App\Http\Controllers\Admin\DeviceController::class, 'export'])->name('devices_export'); 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', [OperatorQueController::class, 'list'])->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/add', [OperatorQueController::class, 'add'])->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/edit/{id}', [OperatorQueController::class, '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'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/operator_que/delete', [App\Http\Controllers\Admin\OperatorQueController::class, 'delete'])->name('operator_ques_delete'); ->name('operator_ques_edit');
Route::match(['get', 'post'], '/operator_ques/import', [App\Http\Controllers\Admin\OperatorQueController::class, 'import'])->name('operator_ques_import'); Route::get('/operator_que/info/{id}', [OperatorQueController::class, 'info'])
Route::get('/operator_ques/export', [App\Http\Controllers\Admin\OperatorQueController::class, 'export'])->name('operator_ques_export'); ->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']) Route::match(['get', 'post'], '/setting', [SettingController::class, 'list'])->name('settings');
->middleware('auth')->name('settings'); Route::match(['get', 'post'], '/setting/add', [SettingController::class, 'add'])->name('settings_add');
Route::match(['get', 'post'], '/setting/add', [App\Http\Controllers\Admin\SettingController::class, 'add']) Route::match(['get', 'post'], '/setting/edit/{id}', [SettingController::class, 'edit'])
->middleware('auth')->name('settings_add'); ->where(['id' => '[0-9]+'])
Route::match(['get', 'post'], '/setting/edit/{id}', [App\Http\Controllers\Admin\SettingController::class, 'edit']) ->name('settings_edit');
->where(['id' => '[0-9]+'])->middleware('auth')->name('settings_edit'); Route::get('/setting/info/{id}', [SettingController::class, 'info'])
Route::match(['get', 'post'], '/setting/info/{id}', [App\Http\Controllers\Admin\SettingController::class, 'info']) ->where(['id' => '[0-9]+'])
->where(['id' => '[0-9]+'])->middleware('auth')->name('settings_info'); ->name('settings_info');
Route::match(['get', 'post'], '/setting/delete', [App\Http\Controllers\Admin\SettingController::class, 'delete']) Route::match(['get', 'post'], '/setting/delete', [SettingController::class, 'delete'])->name('settings_delete');
->middleware('auth')->name('settings_delete');