画面追加(mail_templates/inv_settings)
All checks were successful
Deploy preview (main_kin) / deploy (push) Successful in 13s
All checks were successful
Deploy preview (main_kin) / deploy (push) Successful in 13s
This commit is contained in:
parent
ef4c9fe57c
commit
70bfd18204
151
app/Http/Controllers/Admin/InvSettingController.php
Normal file
151
app/Http/Controllers/Admin/InvSettingController.php
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\InvSetting;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
|
class InvSettingController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 登録フォーム表示
|
||||||
|
*/
|
||||||
|
public function form(Request $request)
|
||||||
|
{
|
||||||
|
$row = InvSetting::first();
|
||||||
|
|
||||||
|
$zip1 = $zip2 = $tel1 = $tel2 = $tel3 = $fax1 = $fax2 = $fax3 = '';
|
||||||
|
|
||||||
|
if ($row) {
|
||||||
|
// 郵便番号(そのままハイフン分割)
|
||||||
|
if (!empty($row->zipcode) && str_contains($row->zipcode, '-')) {
|
||||||
|
[$zip1, $zip2] = explode('-', $row->zipcode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 電話番号:数字以外を除去 → 2桁+4桁+4桁 に分割
|
||||||
|
if (!empty($row->tel_num)) {
|
||||||
|
$tel = preg_replace('/\D/', '', $row->tel_num); // 数字以外を除去
|
||||||
|
$tel1 = substr($tel, 0, 2);
|
||||||
|
$tel2 = substr($tel, 2, 4);
|
||||||
|
$tel3 = substr($tel, 6, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FAX番号:同じく 2桁+4桁+4桁
|
||||||
|
if (!empty($row->fax_num)) {
|
||||||
|
$fax = preg_replace('/\D/', '', $row->fax_num);
|
||||||
|
$fax1 = substr($fax, 0, 2);
|
||||||
|
$fax2 = substr($fax, 2, 4);
|
||||||
|
$fax3 = substr($fax, 6, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('admin.invsettings._form', compact(
|
||||||
|
'row', 'zip1', 'zip2', 'tel1', 'tel2', 'tel3', 'fax1', 'fax2', 'fax3'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登録・更新処理
|
||||||
|
*/
|
||||||
|
public function save(Request $request)
|
||||||
|
{
|
||||||
|
// バリデーションルール
|
||||||
|
$rules = [
|
||||||
|
't_number' => 'required|string|max:20',
|
||||||
|
't_name' => 'required|string|max:50',
|
||||||
|
'zip1' => 'required|digits:3',
|
||||||
|
'zip2' => 'required|digits:4',
|
||||||
|
'adrs' => 'required|string|max:100',
|
||||||
|
'bldg' => 'nullable|string|max:80',
|
||||||
|
'tel1' => 'nullable|digits_between:2,4',
|
||||||
|
'tel2' => 'nullable|digits_between:2,4',
|
||||||
|
'tel3' => 'nullable|digits_between:3,4',
|
||||||
|
'fax1' => 'nullable|digits_between:2,4',
|
||||||
|
'fax2' => 'nullable|digits_between:2,4',
|
||||||
|
'fax3' => 'nullable|digits_between:3,4',
|
||||||
|
'company_image' => 'nullable|image|mimes:png,jpg,jpeg|max:2048',
|
||||||
|
];
|
||||||
|
|
||||||
|
// カスタム日本語メッセージ
|
||||||
|
$messages = [
|
||||||
|
't_number.required' => '適格請求書発行事業者番号を入力してください。',
|
||||||
|
't_number.max' => '適格請求書発行事業者番号は20文字以内で入力してください。',
|
||||||
|
|
||||||
|
't_name.required' => '適格事業者名を入力してください。',
|
||||||
|
't_name.max' => '適格事業者名は50文字以内で入力してください。',
|
||||||
|
|
||||||
|
'zip1.required' => '郵便番号(前半)を入力してください。',
|
||||||
|
'zip1.digits' => '郵便番号(前半)は3桁で入力してください。',
|
||||||
|
'zip2.required' => '郵便番号(後半)を入力してください。',
|
||||||
|
'zip2.digits' => '郵便番号(後半)は4桁で入力してください。',
|
||||||
|
|
||||||
|
'adrs.required' => '表示住所を入力してください。',
|
||||||
|
'adrs.max' => '表示住所は100文字以内で入力してください。',
|
||||||
|
|
||||||
|
'bldg.max' => '建物名は80文字以内で入力してください。',
|
||||||
|
|
||||||
|
'tel1.digits_between' => '電話番号1は2桁から4桁で入力してください。',
|
||||||
|
'tel2.digits_between' => '電話番号2は2桁から4桁で入力してください。',
|
||||||
|
'tel3.digits_between' => '電話番号3は3桁から4桁で入力してください。',
|
||||||
|
|
||||||
|
'fax1.digits_between' => 'FAX番号1は2桁から4桁で入力してください。',
|
||||||
|
'fax2.digits_between' => 'FAX番号2は2桁から4桁で入力してください。',
|
||||||
|
'fax3.digits_between' => 'FAX番号3は3桁から4桁で入力してください。',
|
||||||
|
|
||||||
|
'company_image.image' => '社判画像は画像ファイルを選択してください。',
|
||||||
|
'company_image.mimes' => '社判画像はpng, jpg, jpeg形式でアップロードしてください。',
|
||||||
|
'company_image.max' => '社判画像は2MB以下にしてください。',
|
||||||
|
];
|
||||||
|
|
||||||
|
// バリデーション実行(カスタムメッセージ適用)
|
||||||
|
$request->validate($rules, $messages);
|
||||||
|
|
||||||
|
// データ整形
|
||||||
|
$zipcode = $request->zip1 . '-' . $request->zip2;
|
||||||
|
$tel = implode('-', array_filter([$request->tel1, $request->tel2, $request->tel3]));
|
||||||
|
$fax = implode('-', array_filter([$request->fax1, $request->fax2, $request->fax3]));
|
||||||
|
|
||||||
|
// 既存レコードを取得(1レコード運用)
|
||||||
|
$row = InvSetting::first();
|
||||||
|
|
||||||
|
// 画像処理
|
||||||
|
$imagePath = $row?->company_image_path;
|
||||||
|
if ($request->hasFile('company_image')) {
|
||||||
|
if ($imagePath && Storage::disk('public')->exists($imagePath)) {
|
||||||
|
Storage::disk('public')->delete($imagePath);
|
||||||
|
}
|
||||||
|
$imagePath = $request->file('company_image')->store('inv', 'public');
|
||||||
|
}
|
||||||
|
|
||||||
|
// レコードを新規作成 or 更新
|
||||||
|
if ($row) {
|
||||||
|
$row->update([
|
||||||
|
't_number' => $request->t_number,
|
||||||
|
't_name' => $request->t_name,
|
||||||
|
'zipcode' => $zipcode,
|
||||||
|
'adrs' => $request->adrs,
|
||||||
|
'bldg' => $request->bldg,
|
||||||
|
'tel_num' => $tel,
|
||||||
|
'fax_num' => $fax,
|
||||||
|
'company_image_path' => $imagePath,
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
InvSetting::create([
|
||||||
|
't_number' => $request->t_number,
|
||||||
|
't_name' => $request->t_name,
|
||||||
|
'zipcode' => $zipcode,
|
||||||
|
'adrs' => $request->adrs,
|
||||||
|
'bldg' => $request->bldg,
|
||||||
|
'tel_num' => $tel,
|
||||||
|
'fax_num' => $fax,
|
||||||
|
'company_image_path' => $imagePath,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('success', 'インボイス設定を登録しました。');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
124
app/Http/Controllers/Admin/MailTemplateController.php
Normal file
124
app/Http/Controllers/Admin/MailTemplateController.php
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\MailTemplate;
|
||||||
|
|
||||||
|
class MailTemplateController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 一覧表示
|
||||||
|
*/
|
||||||
|
public function list(Request $request)
|
||||||
|
{
|
||||||
|
if ($request->input('action') === 'reset') {
|
||||||
|
return redirect()->route('mail_templates');
|
||||||
|
}
|
||||||
|
|
||||||
|
$sort = $request->input('sort', 'mail_template_id');
|
||||||
|
$sort_type = $request->input('sort_type', 'desc');
|
||||||
|
|
||||||
|
$query = MailTemplate::query();
|
||||||
|
|
||||||
|
// 絞り込み
|
||||||
|
if ($request->filled('mail_template_id')) {
|
||||||
|
$query->where('mail_template_id', $request->mail_template_id);
|
||||||
|
}
|
||||||
|
if ($request->filled('pg_id')) {
|
||||||
|
$query->where('pg_id', $request->pg_id);
|
||||||
|
}
|
||||||
|
if ($request->has('mgr_cc_flag') && $request->mgr_cc_flag !== '') {
|
||||||
|
$query->where('mgr_cc_flag', $request->mgr_cc_flag);
|
||||||
|
}
|
||||||
|
if ($request->has('use_flag') && $request->use_flag !== '') {
|
||||||
|
$query->where('use_flag', $request->use_flag);
|
||||||
|
}
|
||||||
|
if ($request->filled('subject')) {
|
||||||
|
$query->where('subject', 'LIKE', "%{$request->subject}%");
|
||||||
|
}
|
||||||
|
|
||||||
|
$templates = $query->orderBy($sort, $sort_type)->paginate(20);
|
||||||
|
|
||||||
|
return view('admin.mail_templates.list', compact(
|
||||||
|
'templates', 'sort', 'sort_type'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新規登録
|
||||||
|
*/
|
||||||
|
public function add(Request $request)
|
||||||
|
{
|
||||||
|
if ($request->isMethod('post')) {
|
||||||
|
$data = $this->validateTemplate($request);
|
||||||
|
MailTemplate::create($data);
|
||||||
|
|
||||||
|
return redirect()->route('mail_templates')
|
||||||
|
->with('success', 'テンプレートを登録しました');
|
||||||
|
}
|
||||||
|
|
||||||
|
$mailTemplate = new MailTemplate();
|
||||||
|
return view('admin.mail_templates.add', compact('mailTemplate'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 編集
|
||||||
|
*/
|
||||||
|
public function edit($id, Request $request)
|
||||||
|
{
|
||||||
|
$mailTemplate = MailTemplate::findOrFail($id);
|
||||||
|
|
||||||
|
if ($request->isMethod('post')) {
|
||||||
|
$data = $this->validateTemplate($request);
|
||||||
|
$mailTemplate->update($data);
|
||||||
|
|
||||||
|
return redirect()->route('mail_templates')
|
||||||
|
->with('success', 'テンプレートを更新しました');
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('admin.mail_templates.edit', compact('mailTemplate'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 詳細表示
|
||||||
|
*/
|
||||||
|
public function info($id)
|
||||||
|
{
|
||||||
|
$mailTemplate = MailTemplate::findOrFail($id);
|
||||||
|
|
||||||
|
return view('admin.mail_templates.info', compact('mailTemplate'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 削除
|
||||||
|
*/
|
||||||
|
public function delete(Request $request)
|
||||||
|
{
|
||||||
|
$id = $request->input('id');
|
||||||
|
if ($id) {
|
||||||
|
MailTemplate::destroy($id);
|
||||||
|
return redirect()->route('mail_templates')->with('success', 'テンプレートを削除しました');
|
||||||
|
}
|
||||||
|
return redirect()->route('mail_templates')->with('error', '削除対象が指定されていません');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* バリデーション共通化
|
||||||
|
*/
|
||||||
|
private function validateTemplate(Request $request)
|
||||||
|
{
|
||||||
|
return $request->validate([
|
||||||
|
'pg_id' => 'nullable|integer',
|
||||||
|
'internal_id' => 'nullable|integer',
|
||||||
|
'mgr_cc_flag' => 'nullable|boolean',
|
||||||
|
'bcc_adrs' => 'nullable|string|max:255',
|
||||||
|
'use_flag' => 'nullable|boolean',
|
||||||
|
'memo' => 'nullable|string|max:255',
|
||||||
|
'subject' => 'required|string|max:255',
|
||||||
|
'text' => 'required|string',
|
||||||
|
'operator_id' => 'nullable|integer',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
16
app/Models/InvSetting.php
Normal file
16
app/Models/InvSetting.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class InvSetting extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'inv_setting';
|
||||||
|
protected $primaryKey = 'seq';
|
||||||
|
public $timestamps = true;
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
't_number', 't_name', 'zipcode', 'adrs', 'bldg', 'tel_num', 'fax_num', 'company_image_path',
|
||||||
|
];
|
||||||
|
}
|
||||||
124
resources/views/admin/invsettings/_form.blade.php
Normal file
124
resources/views/admin/invsettings/_form.blade.php
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
@section('title', 'インボイス設定')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="content-header">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-lg-6"><h1 class="m-0 text-dark">インボイス設定</h1></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
@if(session('success'))
|
||||||
|
<div class="alert alert-success">{{ session('success') }}</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if ($errors->any())
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
<ul>
|
||||||
|
@foreach ($errors->all() as $e)<li>{{ $e }}</li>@endforeach
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<form method="post" action="{{ route('inv_settings_save') }}" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
{{-- 適格請求書発行事業者番号 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">適格請求書発行事業者番号<span class="text-danger">*</span></label>
|
||||||
|
<div class="form-group col-4">
|
||||||
|
<input type="text" name="t_number" class="form-control"
|
||||||
|
value="{{ old('t_number', $row->t_number ?? '') }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 適格事業者名 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">適格事業者名<span class="text-danger">*</span></label>
|
||||||
|
<div class="form-group col-4">
|
||||||
|
<input type="text" name="t_name" class="form-control"
|
||||||
|
value="{{ old('t_name', $row->t_name ?? '') }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 郵便番号 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">郵便番号</label>
|
||||||
|
<div class="col-sm-9 d-flex">
|
||||||
|
<input type="text" name="zip1" class="form-control" style="max-width:120px;"
|
||||||
|
value="{{ old('zip1', $zip1) }}">
|
||||||
|
<span class="mx-2">-</span>
|
||||||
|
<input type="text" name="zip2" class="form-control" style="max-width:140px;"
|
||||||
|
value="{{ old('zip2', $zip2) }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 表示住所 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">表示住所<span class="text-danger">*</span></label>
|
||||||
|
<div class="form-group col-4">
|
||||||
|
<input type="text" name="adrs" class="form-control"
|
||||||
|
value="{{ old('adrs', $row->adrs ?? '') }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 建物名 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">建物名</label>
|
||||||
|
<div class="form-group col-4">
|
||||||
|
<input type="text" name="bldg" class="form-control"
|
||||||
|
value="{{ old('bldg', $row->bldg ?? '') }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 表示電話番号 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">表示電話番号</label>
|
||||||
|
<div class="col-sm-9 d-flex">
|
||||||
|
<input name="tel1" class="form-control" style="max-width:100px;" value="{{ old('tel1', $tel1) }}">
|
||||||
|
<span class="mx-2">-</span>
|
||||||
|
<input name="tel2" class="form-control" style="max-width:100px;" value="{{ old('tel2', $tel2) }}">
|
||||||
|
<span class="mx-2">-</span>
|
||||||
|
<input name="tel3" class="form-control" style="max-width:100px;" value="{{ old('tel3', $tel3) }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 表示FAX番号 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">表示FAX番号</label>
|
||||||
|
<div class="col-sm-9 d-flex">
|
||||||
|
<input name="fax1" class="form-control" style="max-width:100px;" value="{{ old('fax1', $fax1) }}">
|
||||||
|
<span class="mx-2">-</span>
|
||||||
|
<input name="fax2" class="form-control" style="max-width:100px;" value="{{ old('fax2', $fax2) }}">
|
||||||
|
<span class="mx-2">-</span>
|
||||||
|
<input name="fax3" class="form-control" style="max-width:100px;" value="{{ old('fax3', $fax3) }}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 社判画像 --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-3 col-form-label">社判画像</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="file" name="company_image" class="form-control-file">
|
||||||
|
@if(!empty($row->company_image_path))
|
||||||
|
<div class="mt-2">
|
||||||
|
<a href="{{ asset('storage/'.$row->company_image_path) }}" target="_blank">現在の画像を表示</a>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 登録ボタン --}}
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<button type="submit" class="btn btn-success px-3">登録</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
@endsection
|
||||||
144
resources/views/admin/mail_templates/_form.blade.php
Normal file
144
resources/views/admin/mail_templates/_form.blade.php
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
@if(Session::has('success'))
|
||||||
|
<div class="alert alert-success alert-dismissible" role="alert">
|
||||||
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
|
{{ Session::get('success') }}
|
||||||
|
</div>
|
||||||
|
@elseif(Session::has('error'))
|
||||||
|
<div class="alert alert-danger alert-dismissible">
|
||||||
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
|
<h4><i class="icon fa fa-ban"></i> エラー:</h4>
|
||||||
|
{!! Session::get('error') !!}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<div class="card-header">
|
||||||
|
@if($isInfo)
|
||||||
|
<a href="{{ route('mail_templates_add') }}" class="btn btn-lg btn-success">登録</a>
|
||||||
|
<a href="{{ route('mail_templates_edit', ['id' => $mailTemplate->mail_template_id]) }}" class="btn btn-lg btn-danger">編集</a>
|
||||||
|
@else
|
||||||
|
<button type="submit" class="btn btn-lg btn-danger register">保存</button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
{{-- 編集・詳細時のみテンプレートID表示 --}}
|
||||||
|
@if($isEdit || $isInfo)
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>テンプレートID</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="text" value="{{ $mailTemplate->mail_template_id ?? '' }}" class="form-control form-control-lg" readonly />
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<!-- 使用プログラムID -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label class="required">使用プログラムID</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="number" name="pg_id" value="{{ old('pg_id', $mailTemplate->pg_id ?? '') }}"
|
||||||
|
class="form-control form-control-lg" @if($isInfo) readonly @endif required />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 内部ID -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>内部ID</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="number" name="internal_id" value="{{ old('internal_id', $mailTemplate->internal_id ?? '') }}"
|
||||||
|
class="form-control form-control-lg" @if($isInfo) readonly @endif />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- エリアマネージャー同報 -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>エリアマネージャー同報</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9 mt-2">
|
||||||
|
<div class="form-check form-check-inline">
|
||||||
|
<input class="form-check-input" type="radio" name="mgr_cc_flag" value="1"
|
||||||
|
@if(old('mgr_cc_flag', $mailTemplate->mgr_cc_flag ?? '') == 1) checked @endif
|
||||||
|
@if($isInfo) disabled @endif>
|
||||||
|
<label class="form-check-label">同報する</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check form-check-inline">
|
||||||
|
<input class="form-check-input" type="radio" name="mgr_cc_flag" value="0"
|
||||||
|
@if(old('mgr_cc_flag', $mailTemplate->mgr_cc_flag ?? '') == 0) checked @endif
|
||||||
|
@if($isInfo) disabled @endif>
|
||||||
|
<label class="form-check-label">同報しない</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- BCCアドレス -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>BCCアドレス</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="text" name="bcc_adrs" value="{{ old('bcc_adrs', $mailTemplate->bcc_adrs ?? '') }}"
|
||||||
|
class="form-control form-control-lg" @if($isInfo) readonly @endif />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 使用フラグ -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>使用フラグ</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9 mt-2">
|
||||||
|
<div class="form-check form-check-inline">
|
||||||
|
<input class="form-check-input" type="radio" name="use_flag" value="1"
|
||||||
|
@if(old('use_flag', $mailTemplate->use_flag ?? '') == 1) checked @endif
|
||||||
|
@if($isInfo) disabled @endif>
|
||||||
|
<label class="form-check-label">使用する</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check form-check-inline">
|
||||||
|
<input class="form-check-input" type="radio" name="use_flag" value="0"
|
||||||
|
@if(old('use_flag', $mailTemplate->use_flag ?? '') == 0) checked @endif
|
||||||
|
@if($isInfo) disabled @endif>
|
||||||
|
<label class="form-check-label">使用しない</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- メモ -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>メモ</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="text" name="memo" value="{{ old('memo', $mailTemplate->memo ?? '') }}"
|
||||||
|
class="form-control form-control-lg" @if($isInfo) readonly @endif />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 件名 -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label class="required">件名</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="text" name="subject" value="{{ old('subject', $mailTemplate->subject ?? '') }}"
|
||||||
|
class="form-control form-control-lg" @if($isInfo) readonly @endif required />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 本文 -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label class="required">本文</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<textarea name="text" class="form-control form-control-lg" rows="8"
|
||||||
|
@if($isInfo) readonly @endif required>{{ old('text', $mailTemplate->text ?? '') }}</textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- オペレータID -->
|
||||||
|
<div class="form-group col-3">
|
||||||
|
<label>オペレータID</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-9">
|
||||||
|
<input type="number" name="operator_id" value="{{ old('operator_id', $mailTemplate->operator_id ?? '') }}"
|
||||||
|
class="form-control form-control-lg" @if($isInfo) readonly @endif />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- 下部ボタン --}}
|
||||||
|
@if($isInfo)
|
||||||
|
<a href="{{ route('mail_templates_add') }}" class="btn btn-lg btn-success">登録</a>
|
||||||
|
<a href="{{ route('mail_templates_edit', ['id' => $mailTemplate->mail_template_id]) }}" class="btn btn-lg btn-danger">編集</a>
|
||||||
|
@else
|
||||||
|
<button type="submit" class="btn btn-lg btn-danger register">保存</button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
46
resources/views/admin/mail_templates/add.blade.php
Normal file
46
resources/views/admin/mail_templates/add.blade.php
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
@section('title', '[東京都|〇〇駐輪場] メール送信テンプレート新規登録')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<!-- Content Header (Page header) -->
|
||||||
|
<div class="content-header">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<h1 class="m-0 text-dark">新規</h1>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<ol class="breadcrumb float-sm-right text-sm">
|
||||||
|
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
|
||||||
|
<li class="breadcrumb-item"><a href="javascript:void(0);">[東京都|〇〇駐輪場]</a></li>
|
||||||
|
<li class="breadcrumb-item">メール送信テンプレート</li>
|
||||||
|
<li class="breadcrumb-item active">[東京都|〇〇駐輪場] メール送信テンプレート新規登録</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.content-header -->
|
||||||
|
|
||||||
|
<!-- Main content -->
|
||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!-- Card -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
<form method="post" action="{{ route('mail_templates_add') }}" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
@include('admin.mail_templates._form', [
|
||||||
|
'isEdit' => false,
|
||||||
|
'isInfo' => false,
|
||||||
|
'mailTemplate' => $mailTemplate,
|
||||||
|
])
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- /.content -->
|
||||||
|
@endsection
|
||||||
20
resources/views/admin/mail_templates/edit.blade.php
Normal file
20
resources/views/admin/mail_templates/edit.blade.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
@section('title', '[東京都|〇〇駐輪場] メール送信テンプレート')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="content-header">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<h1 class="m-0 text-dark">メール送信テンプレート編集</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="card">
|
||||||
|
<form method="post" action="{{ route('mail_templates_edit', ['id' => $mailTemplate->mail_template_id]) }}" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
@include('admin.mail_templates._form', ['isEdit' => 1, 'isInfo' => 0, 'mailTemplate' => $mailTemplate])
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
@endsection
|
||||||
21
resources/views/admin/mail_templates/info.blade.php
Normal file
21
resources/views/admin/mail_templates/info.blade.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
@section('title', '[東京都|〇〇駐輪場] メール送信テンプレート')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="content-header">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<h1 class="m-0 text-dark">メール送信テンプレート詳細</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="card">
|
||||||
|
{{-- info 画面なので action は不要 --}}
|
||||||
|
<form method="post" enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
@include('admin.mail_templates._form', ['isEdit' => 0, 'isInfo' => 1, 'mailTemplate' => $mailTemplate])
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
@endsection
|
||||||
201
resources/views/admin/mail_templates/list.blade.php
Normal file
201
resources/views/admin/mail_templates/list.blade.php
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('title', '[東京都|〇〇駐輪場] メール送信テンプレート')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="content-header">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<h1 class="m-0 text-dark">メール送信テンプレート</h1>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<ol class="breadcrumb float-sm-right text-sm">
|
||||||
|
<li class="breadcrumb-item"><a href="{{ route('home') }}">XX様info(ホーム)</a></li>
|
||||||
|
<li class="breadcrumb-item active">メール送信テンプレート</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="content">
|
||||||
|
<!-- ▼ 絞り込みフィルター -->
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="card">
|
||||||
|
|
||||||
|
{{-- タイトル区 --}}
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">絞り込みフィルター</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- フィルタフォーム主体 --}}
|
||||||
|
<div class="card-body">
|
||||||
|
<form action="{{ route('mail_templates') }}" method="POST" id="list-form" class="form-horizontal">
|
||||||
|
@csrf
|
||||||
|
<input type="hidden" name="sort" value="{{ $sort ?? '' }}">
|
||||||
|
<input type="hidden" name="sort_type" value="{{ $sort_type ?? '' }}">
|
||||||
|
|
||||||
|
<table class="table table-borderless mb-0" style="width: 100%;">
|
||||||
|
<tbody>
|
||||||
|
{{-- 行1 --}}
|
||||||
|
<tr>
|
||||||
|
<th style="width: 18%; text-align: left; vertical-align: middle;">メールテンプレートID</th>
|
||||||
|
<td style="width: 32%;">
|
||||||
|
<input type="text" name="mail_template_id"
|
||||||
|
value="{{ old('mail_template_id', $mail_template_id ?? '') }}"
|
||||||
|
class="form-control input-sm" placeholder="123456">
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th style="width: 18%; text-align: left; vertical-align: middle;">使用プログラムID</th>
|
||||||
|
<td style="width: 32%;">
|
||||||
|
<input type="text" name="pg_id"
|
||||||
|
value="{{ old('pg_id', $pg_id ?? '') }}"
|
||||||
|
class="form-control input-sm" placeholder="123456">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{{-- 行2 --}}
|
||||||
|
<tr>
|
||||||
|
<th style="text-align: left; vertical-align: middle;">エリアマネージャー同報</th>
|
||||||
|
<td>
|
||||||
|
<select name="mgr_cc_flag" class="form-control input-sm">
|
||||||
|
<option value="">全て</option>
|
||||||
|
<option value="1" {{ old('mgr_cc_flag', $mgr_cc_flag ?? '') === '1' ? 'selected' : '' }}>同報する</option>
|
||||||
|
<option value="0" {{ old('mgr_cc_flag', $mgr_cc_flag ?? '') === '0' ? 'selected' : '' }}>同報市内</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<th style="text-align: left; vertical-align: middle;">使用フラグ</th>
|
||||||
|
<td>
|
||||||
|
<select name="use_flag" class="form-control input-sm">
|
||||||
|
<option value="">全て</option>
|
||||||
|
<option value="1" {{ old('use_flag', $use_flag ?? '') === '1' ? 'selected' : '' }}>使用する</option>
|
||||||
|
<option value="0" {{ old('use_flag', $use_flag ?? '') === '0' ? 'selected' : '' }}>使用しない</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{{-- 行3 --}}
|
||||||
|
<tr>
|
||||||
|
<th style="text-align: left; vertical-align: middle;">件名</th>
|
||||||
|
<td colspan="3">
|
||||||
|
<input type="text" name="subject"
|
||||||
|
value="{{ old('subject', $subject ?? '') }}"
|
||||||
|
class="form-control input-sm" placeholder="キーワード...">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{{-- ボタン --}}
|
||||||
|
<div class="form-group col-12 text-left">
|
||||||
|
<button type="submit" name="action" value="filter" class="btn btn-default">絞り込み</button>
|
||||||
|
<button type="submit" name="action" value="reset" class="btn btn-default">解除</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- ▲ 絞り込みフィルター -->
|
||||||
|
|
||||||
|
<!-- ▼ ツールバー -->
|
||||||
|
<div class="container-fluid mb20">
|
||||||
|
<button type="button" class="btn btn-sm btn-default mr10" onclick="location.href='{{ route('mail_templates_add') }}'">新規</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-default mr10" id="delete">削除</button>
|
||||||
|
<div class="d-flex justify-content-end">
|
||||||
|
{{ $templates->appends(request()->all())->links('pagination') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- ▲ ツールバー -->
|
||||||
|
|
||||||
|
<!-- ▼ テーブル -->
|
||||||
|
<div class="col-lg-12 mb20">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<form action="{{ route('mail_templates_delete') }}" method="POST" id="form_delete">
|
||||||
|
@csrf
|
||||||
|
<table class="table table-bordered table-striped dataTable text-nowrap">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width:120px;" class="text-left">
|
||||||
|
<input type="checkbox" class="minimal m-0" id="checkbox_all">
|
||||||
|
</th>
|
||||||
|
<th class="sorting {{ ($sort=='mail_template_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="mail_template_id"><span>メールテンプレートID</span></th>
|
||||||
|
<th class="sorting {{ ($sort=='pg_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="pg_id"><span>使用プログラムID</span></th>
|
||||||
|
<th class="sorting {{ ($sort=='internal_id') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="internal_id"><span>内部ID</span></th>
|
||||||
|
<th><span>エリアマネージャー同報</span></th>
|
||||||
|
<th><span>BCCアドレス</span></th>
|
||||||
|
<th class="sorting {{ ($sort=='use_flag') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="use_flag"><span>使用フラグ</span></th>
|
||||||
|
<th><span>備考</span></th>
|
||||||
|
<th class="sorting {{ ($sort=='subject') ? ($sort_type=='asc'?'sorting_asc':'sorting_desc') : '' }}" sort="subject"><span>件名</span></th>
|
||||||
|
<th><span>本文</span></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($templates as $item)
|
||||||
|
<tr>
|
||||||
|
<td class="table-warning align-middle">
|
||||||
|
<div class="d-flex align-items-center">
|
||||||
|
<input type="checkbox" class="minimal m-0 checkbox" name="pk[]" value="{{ $item->mail_template_id }}">
|
||||||
|
<a href="{{ route('mail_templates_info', ['id' => $item->mail_template_id]) }}" class="btn btn-sm btn-default ml-2">編集</a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->mail_template_id }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->pg_id }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->internal_id }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->mgr_cc_flag ? '同報する' : '同報しない' }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->bcc_adrs }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->use_flag ? '使用する' : '使用しない' }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->memo }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ $item->subject }}</td>
|
||||||
|
<td class="sm-item text-left align-middle">{{ Str::limit($item->text, 30) }}</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- ▲ テーブル -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<form action="{{ route('mail_templates_export') }}" method="GET" id="form_export"></form>
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<script>
|
||||||
|
// 全選択・全解除
|
||||||
|
document.getElementById('checkbox_all')?.addEventListener('change', function(e){
|
||||||
|
document.querySelectorAll('.checkbox').forEach(cb => cb.checked = e.target.checked);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 削除確認
|
||||||
|
document.getElementById('delete')?.addEventListener('click', function(){
|
||||||
|
const anyChecked = Array.from(document.querySelectorAll('.checkbox')).some(cb => cb.checked);
|
||||||
|
if (!anyChecked) {
|
||||||
|
alert('削除対象が選択されていません。');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (confirm('削除してよろしいですか?')) {
|
||||||
|
document.getElementById('form_delete').submit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ソート
|
||||||
|
document.querySelectorAll('th.sorting').forEach(th => {
|
||||||
|
th.addEventListener('click', function(){
|
||||||
|
const form = document.getElementById('list-form');
|
||||||
|
const current = "{{ $sort ?? '' }}";
|
||||||
|
const currentType = "{{ $sort_type ?? '' }}";
|
||||||
|
const nextCol = this.getAttribute('sort');
|
||||||
|
let nextType = 'asc';
|
||||||
|
if (current === nextCol) {
|
||||||
|
nextType = (currentType === 'asc') ? 'desc' : 'asc';
|
||||||
|
}
|
||||||
|
form.querySelector('[name=sort]').value = nextCol;
|
||||||
|
form.querySelector('[name=sort_type]').value = nextType;
|
||||||
|
form.submit();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
|
@endsection
|
||||||
@ -37,11 +37,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="container-fluid mb20">
|
|
||||||
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('削除') }}</button>
|
|
||||||
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('インポート') }}</button>
|
|
||||||
<button type="submit" class="btn btn-sm btn-default mr10">{{ __('CSV出力') }}</button>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<!-- /.content -->
|
<!-- /.content -->
|
||||||
|
|||||||
@ -374,12 +374,22 @@
|
|||||||
|
|
||||||
<li class="nav-item has-treeview @if(in_array(app('router')->currentRouteName(),$route )) menu-open @endif">
|
<li class="nav-item has-treeview @if(in_array(app('router')->currentRouteName(),$route )) menu-open @endif">
|
||||||
<a href="#" class="nav-link @if(in_array(app('router')->currentRouteName(), $route)) active @endif">
|
<a href="#" class="nav-link @if(in_array(app('router')->currentRouteName(), $route)) active @endif">
|
||||||
<i class="nav-icon fa fa-th"></i>
|
<i class="nav-icon fa fa-object-group"></i>
|
||||||
<p>
|
<p>
|
||||||
{{__("マスタ管理")}}
|
{{__("マスタ管理")}}
|
||||||
<i class="right fa fa-angle-down"></i>
|
<i class="right fa fa-angle-down"></i>
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
|
<ul class="nav nav-treeview">
|
||||||
|
<li class="nav-item">
|
||||||
|
<form method="post" action="{{ route('inv_settings') }}">
|
||||||
|
@csrf
|
||||||
|
<a href="{{ route('inv_settings') }}" class="nav-link ml-3">
|
||||||
|
<p>{{ __("インボイス設定") }}</p>
|
||||||
|
</a>
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<li class="nav-item has-treeview">
|
<li class="nav-item has-treeview">
|
||||||
<a href="#" class="nav-link">
|
<a href="#" class="nav-link">
|
||||||
@ -390,38 +400,38 @@
|
|||||||
</a>
|
</a>
|
||||||
<ul class="nav nav-treeview">
|
<ul class="nav nav-treeview">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('regular_types') }}" class="nav-link pl-4 @if(app('router')->is('regular_types')) active @endif">
|
<a href="{{ route('regular_types') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("定期種別マスタ") }}</p>
|
<p class="mb-0">{{ __("定期種別マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('stations') }}" class="nav-link pl-4 @if(app('router')->is('stations')) active @endif">
|
<a href="{{ route('stations') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("近傍駅マスタ") }}</p>
|
<p class="mb-0">{{ __("近傍駅マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('terms') }}" class="nav-link pl-4 @if(app('router')->is('terms')) active @endif">
|
<a href="{{ route('terms') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("利用契約マスタ") }}</p>
|
<p class="mb-0">{{ __("利用契約マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('jurisdiction_parkings') }}" class="nav-link pl-4 @if(app('router')->is('jurisdiction_parkings')) active @endif">
|
<a href="{{ route('jurisdiction_parkings') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("管轄駐輪場マスタ") }}</p>
|
<p class="mb-0">{{ __("管轄駐輪場マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('print_areas') }}" class="nav-link pl-4 @if(app('router')->is('print_areas')) active @endif">
|
<a href="{{ route('print_areas') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("シール印刷範囲マスタ") }}</p>
|
<p class="mb-0">{{ __("シール印刷範囲マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('contract_allowable_cities') }}" class="nav-link pl-4 @if(app('router')->is('contract_allowable_cities')) active @endif">
|
<a href="{{ route('contract_allowable_cities') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("契約許容市区マスタ") }}</p>
|
<p class="mb-0">{{ __("契約許容市区マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('managers') }}" class="nav-link pl-4 @if(app('router')->is('managers')) active @endif">
|
<a href="{{ route('managers') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("駐輪場管理者マスタ") }}</p>
|
<p class="mb-0">{{ __("駐輪場管理者マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@ -432,7 +442,7 @@
|
|||||||
|
|
||||||
<li class="nav-item has-treeview">
|
<li class="nav-item has-treeview">
|
||||||
<a href="#" class="nav-link">
|
<a href="#" class="nav-link">
|
||||||
<i class="fa fa-credit-card nav-icon"></i>
|
<i class="nav-icon fa fa-crop"></i>
|
||||||
<p>
|
<p>
|
||||||
{{ __("決済マスタ") }}
|
{{ __("決済マスタ") }}
|
||||||
<i class="right fa fa-angle-down"></i>
|
<i class="right fa fa-angle-down"></i>
|
||||||
@ -440,18 +450,18 @@
|
|||||||
</a>
|
</a>
|
||||||
<ul class="nav nav-treeview">
|
<ul class="nav nav-treeview">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('tax') }}" class="nav-link pl-4 @if(app('router')->is('tax')) active @endif">
|
<a href="{{ route('tax') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __('消費税マスタ') }}</p>
|
<p class="mb-0">{{ __('消費税マスタ') }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('payments') }}" class="nav-link pl-4 @if(app('router')->is('payments')) active @endif">
|
<a href="{{ route('payments') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("決済情報マスタ") }}</p>
|
<p class="mb-0">{{ __("決済情報マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('settlement_transactions') }}" class="nav-link pl-4 @if(app('router')->is('settlement_transactions')) active @endif">
|
<a href="{{ route('settlement_transactions') }}" class="nav-link ml-3">
|
||||||
<p class="mb-0">{{ __("決済トランザクション") }}</p>
|
<p class="mb-0">{{ __("決済トランザクション") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@ -462,34 +472,36 @@
|
|||||||
<a href="#" class="nav-link">
|
<a href="#" class="nav-link">
|
||||||
<i class="nav-icon fa fa-cog"></i>
|
<i class="nav-icon fa fa-cog"></i>
|
||||||
<p>
|
<p>
|
||||||
システムマスタ
|
{{ __("システムマスタ") }}
|
||||||
<i class="right fa fa-angle-down"></i>
|
<i class="right fa fa-angle-down"></i>
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
<ul class="nav nav-treeview">
|
<ul class="nav nav-treeview">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('opes') }}" class="nav-link @if(app('router')->is('opes')) active @endif">
|
<a href="{{ route('opes') }}" class="nav-link ml-3">
|
||||||
<i class="fa fa-circle-o nav-icon"></i>
|
<p class="mb-0">{{ __("オペレーターマスタ") }}</p>
|
||||||
<p>{{ __("オペレーターマスタ") }}</p>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('devices') }}" class="nav-link @if(app('router')->is('devices')) active @endif">
|
<a href="{{ route('devices') }}" class="nav-link ml-3">
|
||||||
<i class="fa fa-circle-o nav-icon"></i>
|
<p class="mb-0">{{ __("デバイス管理マスタ") }}</p>
|
||||||
<p>{{ __("デバイス管理マスタ") }}</p>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('operator_ques') }}" class="nav-link @if(app('router')->is('operator_ques')) active @endif">
|
<a href="{{ route('operator_ques') }}" class="nav-link ml-3">
|
||||||
<i class="fa fa-circle-o nav-icon"></i>
|
<p class="mb-0">{{ __("オペレーターキュー") }}</p>
|
||||||
<p>{{ __("オペレーターキュー") }}</p>
|
|
||||||
</a>
|
</a>
|
||||||
</li><li class="nav-item">
|
</li>
|
||||||
<a href="{{ route('settings') }}" class="nav-link @if(app('router')->is('settings')) active @endif">
|
<li class="nav-item">
|
||||||
<i class="fa fa-circle-o nav-icon"></i>
|
<a href="{{ route('settings') }}" class="nav-link ml-3">
|
||||||
<p>{{ __("設定マスタ") }}</p>
|
<p class="mb-0">{{ __("設定マスタ") }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="{{ route('mail_templates') }}" class="nav-link ml-3">
|
||||||
|
<p class="mb-0">{{ __("メール送信テンプレート") }}</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,8 @@ use App\Http\Controllers\Admin\OpeController;
|
|||||||
use App\Http\Controllers\Admin\DeviceController;
|
use App\Http\Controllers\Admin\DeviceController;
|
||||||
use App\Http\Controllers\Admin\OperatorQueController;
|
use App\Http\Controllers\Admin\OperatorQueController;
|
||||||
use App\Http\Controllers\Admin\SettingController;
|
use App\Http\Controllers\Admin\SettingController;
|
||||||
|
use App\Http\Controllers\Admin\MailTemplateController;
|
||||||
|
use App\Http\Controllers\Admin\InvSettingController;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -244,57 +246,69 @@ Route::middleware('auth')->group(function () {
|
|||||||
Route::get('/settlement_transactions/export', [SettlementTransactionController::class, 'export'])->name('settlement_transactions_export');
|
Route::get('/settlement_transactions/export', [SettlementTransactionController::class, 'export'])->name('settlement_transactions_export');
|
||||||
|
|
||||||
// [東京都|〇〇駐輪場] オペレーターマスタ
|
// [東京都|〇〇駐輪場] オペレーターマスタ
|
||||||
Route::match(['get', 'post'], '/ope', [OpeController::class, 'list'])->name('opes');
|
Route::match(['get', 'post'], '/opes', [OpeController::class, 'list'])->name('opes');
|
||||||
Route::match(['get', 'post'], '/ope/add', [OpeController::class, 'add'])->name('opes_add');
|
Route::match(['get', 'post'], '/opes/add', [OpeController::class, 'add'])->name('opes_add');
|
||||||
Route::match(['get', 'post'], '/ope/edit/{id}', [OpeController::class, 'edit'])
|
Route::match(['get', 'post'], '/opes/edit/{id}', [OpeController::class, 'edit'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('opes_edit');
|
->name('opes_edit');
|
||||||
Route::get('/ope/info/{id}', [OpeController::class, 'info'])
|
Route::get('/opes/info/{id}', [OpeController::class, 'info'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('opes_info');
|
->name('opes_info');
|
||||||
Route::match(['get', 'post'], '/ope/delete', [OpeController::class, 'delete'])->name('opes_delete');
|
Route::match(['get', 'post'], '/opes/delete', [OpeController::class, 'delete'])->name('opes_delete');
|
||||||
Route::post('/ope/import', [OpeController::class, 'import'])->name('opes_import');
|
Route::post('/opes/import', [OpeController::class, 'import'])->name('opes_import');
|
||||||
Route::get('/ope/export', [OpeController::class, 'export'])->name('opes_export');
|
Route::get('/opes/export', [OpeController::class, 'export'])->name('opes_export');
|
||||||
|
|
||||||
// [東京都|〇〇駐輪場] デバイス管理マスタ
|
// [東京都|〇〇駐輪場] デバイス管理マスタ
|
||||||
Route::match(['get', 'post'], '/device', [DeviceController::class, 'list'])->name('devices');
|
Route::match(['get', 'post'], '/devices', [DeviceController::class, 'list'])->name('devices');
|
||||||
Route::match(['get', 'post'], '/device/add', [DeviceController::class, 'add'])->name('devices_add');
|
Route::match(['get', 'post'], '/devices/add', [DeviceController::class, 'add'])->name('devices_add');
|
||||||
Route::match(['get', 'post'], '/device/edit/{id}', [DeviceController::class, 'edit'])
|
Route::match(['get', 'post'], '/devices/edit/{id}', [DeviceController::class, 'edit'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('devices_edit');
|
->name('devices_edit');
|
||||||
Route::get('/device/info/{id}', [DeviceController::class, 'info'])
|
Route::get('/devices/info/{id}', [DeviceController::class, 'info'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('devices_info');
|
->name('devices_info');
|
||||||
Route::match(['get', 'post'], '/device/delete', [DeviceController::class, 'delete'])->name('devices_delete');
|
Route::match(['get', 'post'], '/devices/delete', [DeviceController::class, 'delete'])->name('devices_delete');
|
||||||
Route::post('/device/import', [DeviceController::class, 'import'])->name('devices_import');
|
Route::post('/devices/import', [DeviceController::class, 'import'])->name('devices_import');
|
||||||
|
|
||||||
// [東京都|〇〇駐輪場] オペレーターキュー
|
// [東京都|〇〇駐輪場] オペレーターキュー
|
||||||
Route::match(['get', 'post'], '/operator_que', [OperatorQueController::class, 'list'])->name('operator_ques');
|
Route::match(['get', 'post'], '/operator_ques', [OperatorQueController::class, 'list'])->name('operator_ques');
|
||||||
Route::match(['get', 'post'], '/operator_que/add', [OperatorQueController::class, 'add'])->name('operator_ques_add');
|
Route::match(['get', 'post'], '/operator_ques/add', [OperatorQueController::class, 'add'])->name('operator_ques_add');
|
||||||
Route::match(['get', 'post'], '/operator_que/edit/{id}', [OperatorQueController::class, 'edit'])
|
Route::match(['get', 'post'], '/operator_ques/edit/{id}', [OperatorQueController::class, 'edit'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('operator_ques_edit');
|
->name('operator_ques_edit');
|
||||||
Route::get('/operator_que/info/{id}', [OperatorQueController::class, 'info'])
|
Route::get('/operator_ques/info/{id}', [OperatorQueController::class, 'info'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('operator_ques_info');
|
->name('operator_ques_info');
|
||||||
Route::match(['get', 'post'], '/operator_que/delete', [OperatorQueController::class, 'delete'])->name('operator_ques_delete');
|
Route::match(['get', 'post'], '/operator_ques/delete', [OperatorQueController::class, 'delete'])->name('operator_ques_delete');
|
||||||
Route::post('/operator_que/import', [OperatorQueController::class, 'import'])->name('operator_ques_import');
|
Route::post('/operator_ques/import', [OperatorQueController::class, 'import'])->name('operator_ques_import');
|
||||||
Route::get('/operator_que/export', [OperatorQueController::class, 'export'])->name('operator_ques_export');
|
Route::get('/operator_ques/export', [OperatorQueController::class, 'export'])->name('operator_ques_export');
|
||||||
|
|
||||||
|
|
||||||
// [東京都|〇〇駐輪場] 設定マスタ
|
// [東京都|〇〇駐輪場] 設定マスタ
|
||||||
Route::match(['get', 'post'], '/setting', [SettingController::class, 'list'])->name('settings');
|
Route::match(['get', 'post'], '/settings', [SettingController::class, 'list'])->name('settings');
|
||||||
Route::match(['get', 'post'], '/setting/add', [SettingController::class, 'add'])->name('settings_add');
|
Route::match(['get', 'post'], '/settings/add', [SettingController::class, 'add'])->name('settings_add');
|
||||||
Route::match(['get', 'post'], '/setting/edit/{id}', [SettingController::class, 'edit'])
|
Route::match(['get', 'post'], '/settings/edit/{id}', [SettingController::class, 'edit'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('settings_edit');
|
->name('settings_edit');
|
||||||
Route::get('/setting/info/{id}', [SettingController::class, 'info'])
|
Route::get('/settings/info/{id}', [SettingController::class, 'info'])
|
||||||
->where(['id' => '[0-9]+'])
|
->where(['id' => '[0-9]+'])
|
||||||
->name('settings_info');
|
->name('settings_info');
|
||||||
Route::match(['get', 'post'], '/setting/delete', [SettingController::class, 'delete'])->name('settings_delete');
|
Route::match(['get', 'post'], '/settings/delete', [SettingController::class, 'delete'])->name('settings_delete');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// [東京都|〇〇駐輪場] メール送信テンプレートマスタ
|
||||||
|
Route::match(['get', 'post'], '/mail_templates', [MailTemplateController::class, 'list'])->name('mail_templates');
|
||||||
|
Route::match(['get', 'post'], '/mail_templates/add', [MailTemplateController::class, 'add'])->name('mail_templates_add');
|
||||||
|
Route::match(['get', 'post'], '/mail_templates/edit/{id}', [MailTemplateController::class, 'edit'])
|
||||||
|
->where(['id' => '[0-9]+'])
|
||||||
|
->name('mail_templates_edit');
|
||||||
|
Route::get('/mail_templates/info/{id}', [MailTemplateController::class, 'info'])
|
||||||
|
->where(['id' => '[0-9]+'])
|
||||||
|
->name('mail_templates_info');
|
||||||
|
Route::match(['get', 'post'], '/mail_templates/delete', [MailTemplateController::class, 'delete'])->name('mail_templates_delete');
|
||||||
|
Route::post('/mail_templates/import', [MailTemplateController::class, 'import'])->name('mail_templates_import');
|
||||||
|
Route::get('/mail_templates/export', [MailTemplateController::class, 'export'])->name('mail_templates_export');
|
||||||
|
|
||||||
|
// [東京都|〇〇駐輪場] インボイス設定マスタ
|
||||||
|
Route::match(['get', 'post'], '/inv_settings', [InvSettingController::class, 'form'])->name('inv_settings');
|
||||||
|
Route::post('/inv_settings/save', [InvSettingController::class, 'save'])->name('inv_settings_save');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user