krgm.so-manager-dev.com/app/Models/Park.php

154 lines
5.7 KiB
PHP

<?php
namespace App\Models;
use App\Utils;
use App\Models\City;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
class Park extends Model
{
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
protected $table = 'park';
protected $primaryKey = 'park_id';
protected $fillable = [
'park_id', // 駐輪場ID
'city_id', // 市区
'park_name', // 駐輪場名
'park_ruby', // 駐輪場ふりがな
'park_syllabary', // 駐輪場五十音
'park_adrs', // 住所
'park_close_flag', // 閉設フラグ
'park_day', // 閉設日
'price_memo', // 価格メモ
'alert_flag', // 残警告チェックフラグ
'print_number', // 印字数
'keep_alive', // 最新キープアライブ
'update_grace_period_start_date', // 更新期間開始日
'update_grace_period_start_time', // 更新期間開始時
'update_grace_period_end_date', // 更新期間終了日
'update_grace_period_end_time', // 更新期間終了時
'parking_start_grace_period', // 駐輪開始猶予期間
'reminder_type', // リマインダー種別
'reminder_time', // リマインダー時間
'immediate_use_permit', // 契約後即利用許可
'gender_display_flag', // 項目表示設定:性別
'bd_display_flag', // 項目表示設定:生年月日
'securityreg_display_flag', // 項目表示設定:防犯登録番号
'distance_twopoints', // 二点間距離
'park_latitude', // 駐車場座標(緯度)
'park_longitude', // 駐車場座標(経度)
'park_tel', // 電話番号
'park_fixed_contract', // 駐輪場契約形態(定期)
'park_temporary_contract', // 駐輪場契約形態(一時利用)
'park_restriction', // 車種制限
'park_procedure', // 手続方法
'park_payment', // 支払方法
'park_available_time_flag', // 利用可能時間制限フラグ
'park_available_time_from', // 利用可能時間(開始)
'park_available_time_to', // 利用可能時間(終了)
'park_manager_flag', // 常駐管理人フラグ
'park_manager_resident_from', // 常駐時間(開始)
'park_manager_resident_to', // 常駐時間(終了)
'park_roof_flag', // 屋根フラグ
'park_issuing_machine_flag', // シール発行機フラグ
'park_using_method', // 駐輪場利用方法
'park_contract_renewal_term', // 定期更新期間
'park_reservation', // 空き待ち予約
'park_reference', // 特記事項
'student_id_confirmation_type', // 学生証確認種別
'reduction_guide_display_flag', // 減免案内表示フラグ
'reduction_age', // 減免対象年齢
'reduction_guide_display_start_month', // 減免案内表示開始月数
'overyear_flag', // 年跨ぎ
'inverse_use_flag1', // 逆利用一般
'inverse_use_flag2', // 逆利用学生
'parking_regulations_flag' // 駐輪規定フラグ
];
public static function search($inputs)
{
$list = self::query();
if ($inputs['isMethodPost']) {
}
// Sort
if ($inputs['sort']) {
$list->orderBy($inputs['sort'], $inputs['sort_type']);
}
if ($inputs['isExport']){
$list = $list->get();
}else{
$list = $list->paginate(Utils::item_per_page);
}
return $list;
}
public static function getByPk($pk)
{
return self::find($pk);
}
public static function deleteByPk($arr)
{
return self::whereIn('park_id', $arr)->delete();
}
public static function boot()
{
parent::boot();
self::creating(function (Park $model) {
$model->operator_id = Auth::user()->ope_id ?? null;
});
}
/**
* GET 閉設フラグ
*/
public function getParkCloseFlagDisplay() {
if($this->park_close_flag == 1) {
return '閉設';
}
else if($this->park_close_flag == 0) {
return '開設';
}
return '';
}
public function getCity()
{
// city_id => city_id (City モデル要有 city_id PK)
return $this->belongsTo(City::class, 'city_id', 'city_id')->first();
}
public static function getList(){
return self::pluck('park_name','park_id');
}
public static function getIdByName($park_name){
return self::where('park_name',$park_name)->pluck('park_id')->first();
}
/**
* 料金設定との関連付け
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function prices()
{
return $this->hasMany(PriceA::class, 'park_id', 'park_id');
}
}