From b2e07d877246beca0967a8c0675255ed14e7e704 Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Thu, 12 Oct 2023 14:53:34 +0900 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=9C=9F=E3=83=97=E3=83=A9=E3=83=B3?= =?UTF-8?q?=E3=81=AE=E5=8F=96=E5=BE=97=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Kintone/KintoneRecordQuery.php | 2 + app/Kintone/Models/SeasonTicketContract.php | 3 ++ .../Models/SeasonTicketContractPlan.php | 41 +++++++++++++++++++ .../SeasonTicketContractRepository.php | 11 +++-- .../SeasonTicketContractRepositoryData.php | 3 ++ config/kintone.php | 1 + 6 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 app/Kintone/Models/SeasonTicketContractPlan.php diff --git a/app/Kintone/KintoneRecordQuery.php b/app/Kintone/KintoneRecordQuery.php index e93053e..e0b0a6c 100644 --- a/app/Kintone/KintoneRecordQuery.php +++ b/app/Kintone/KintoneRecordQuery.php @@ -174,5 +174,7 @@ class KintoneRecordQuery )); return $this; } + + return $this; } } diff --git a/app/Kintone/Models/SeasonTicketContract.php b/app/Kintone/Models/SeasonTicketContract.php index ce12e34..23d996a 100644 --- a/app/Kintone/Models/SeasonTicketContract.php +++ b/app/Kintone/Models/SeasonTicketContract.php @@ -9,6 +9,7 @@ use LogicException; * @property string customerCode * @property string seasonTicketSeqNo * @property string parkingName + * @property string planName * @property string vehicleNo * @property string registerNo */ @@ -25,6 +26,7 @@ class SeasonTicketContract extends KintoneModel const FIELD_CONTRACT_START_DATE = "契約日"; const FIELD_CONTRACT_END_DATE = "解約日"; const FIELD_CONTRACT_AMOUNT = "契約金額"; + const FIELD_PLAN_NAME = "契約駐車場_0"; const FIELD_STUDENT_LICENSE_IMAGES = "学生証画像"; const FIELD_OTHER_LICENSE_IMAGES = "障がい者手帳画像"; @@ -44,6 +46,7 @@ class SeasonTicketContract extends KintoneModel self::FIELD_CONTRACT_START_DATE => FieldType::DATE, self::FIELD_CONTRACT_END_DATE => FieldType::DATE, self::FIELD_CONTRACT_AMOUNT => FieldType::NUMBER, + self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, self::FIELD_STUDENT_LICENSE_IMAGES => FieldType::FILE, self::FIELD_OTHER_LICENSE_IMAGES => FieldType::FILE, self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME, diff --git a/app/Kintone/Models/SeasonTicketContractPlan.php b/app/Kintone/Models/SeasonTicketContractPlan.php new file mode 100644 index 0000000..02f83df --- /dev/null +++ b/app/Kintone/Models/SeasonTicketContractPlan.php @@ -0,0 +1,41 @@ + FieldType::SINGLE_LINE_TEXT, + self::FIELD_SEND_ITEM => FieldType::CHECK_BOX, + self::FIELD_VEHICLE_TYPE => FieldType::SINGLE_LINE_TEXT, + ]; + + protected const FIELD_NAMES = [ + ...parent::FIELD_NAMES, + ]; + + protected function toArrayCustom(): array + { + $item = $this->sendItem; + return [ + 'has_season_ticket' => in_array("定期券", $item), + 'has_sticker' => in_array("シール", $item), + ]; + } +} diff --git a/app/Kintone/Repositories/SeasonTicketContractRepository.php b/app/Kintone/Repositories/SeasonTicketContractRepository.php index 5ca276a..ec0b187 100644 --- a/app/Kintone/Repositories/SeasonTicketContractRepository.php +++ b/app/Kintone/Repositories/SeasonTicketContractRepository.php @@ -4,6 +4,7 @@ namespace App\Kintone\Repositories; use App\Kintone\Models\Parking; use App\Kintone\Models\SeasonTicketContract; +use App\Kintone\Models\SeasonTicketContractPlan; use Illuminate\Support\Collection; class SeasonTicketContractRepository @@ -21,13 +22,15 @@ class SeasonTicketContractRepository ->where(SeasonTicketContract::FIELD_CUSTOMER_CODE, $customerCode); $seasonTicketContracts = SeasonTicketContract::getAccess() ->some($query); + $planAccess = SeasonTicketContractPlan::getAccess(); - /** - * @var SeasonTicketContract $seasonTicketContract - */ foreach ($seasonTicketContracts as $seasonTicketContract) { - $ret->put($seasonTicketContract->getRecordId(), new SeasonTicketContractRepositoryData($seasonTicketContract)); + + $query = SeasonTicketContractPlan::getQuery()->where(SeasonTicketContractPlan::FIELD_PLAN_NAME, $seasonTicketContract->planName); + $plan = $planAccess->first($query); + + $ret->put($seasonTicketContract->getRecordId(), new SeasonTicketContractRepositoryData($seasonTicketContract, $plan)); } return $ret; diff --git a/app/Kintone/Repositories/SeasonTicketContractRepositoryData.php b/app/Kintone/Repositories/SeasonTicketContractRepositoryData.php index 3b9c97f..cdaa339 100644 --- a/app/Kintone/Repositories/SeasonTicketContractRepositoryData.php +++ b/app/Kintone/Repositories/SeasonTicketContractRepositoryData.php @@ -3,11 +3,13 @@ namespace App\Kintone\Repositories; use App\Kintone\Models\SeasonTicketContract; +use App\Kintone\Models\SeasonTicketContractPlan; class SeasonTicketContractRepositoryData { public function __construct( public SeasonTicketContract $seasonTicketContract, + public SeasonTicketContractPlan $plan, ) { } @@ -15,6 +17,7 @@ class SeasonTicketContractRepositoryData { return [ ...$this->seasonTicketContract->toArray(), + ...$this->plan->toArray(), 'season_ticekt_contract_record_no' => $this->seasonTicketContract->getRecordId(), ]; } diff --git a/config/kintone.php b/config/kintone.php index 114a6ea..ab72f6f 100644 --- a/config/kintone.php +++ b/config/kintone.php @@ -30,6 +30,7 @@ return [ ...App\Kintone\Models\Bank::setConfig(), ...App\Kintone\Models\Parking::setConfig(), ...App\Kintone\Models\SeasonTicketContract::setConfig(), + ...App\Kintone\Models\SeasonTicketContractPlan::setConfig(), ...App\Kintone\Models\SeasonTicketContractEntry::setConfig(), ...App\Kintone\Models\PaymentPlan::setConfig(), ...App\Kintone\Models\GeneralApplication::setConfig(),