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(),