param; // 契約の特定 $query = SeasonTicketContract::getQuery() ->where(SeasonTicketContract::FIELD_IC_SEASON_TICEKT_PARKING_MANAGEMENT_CODE, $param->parkingManagementCode) ->where(SeasonTicketContract::FIELD_IC_SEASON_TICEKT_SEASON_TICKET_SEQ_NO, $param->seasonTicketSeqNo); $list = SeasonTicketContract::getAccess()->all($query); if ($list->count() !== 1) { // 対象不正のためスキップ info("対象不正のためスキップ"); return $this->successResponse(); } $seasonTicketContract = $list[0]; // 重複チェック $query = PaymentPlan::getQuery() ->where(PaymentPlan::FIELD_IC_SEASON_TICKET_CONTRACT_ID, $seasonTicketContract->icSeasonTicektContractId) ->where(PaymentPlan::FIELD_CUSTOMER_CODE, $seasonTicketContract->customerCode) ->whereDate(PaymentPlan::FIELD_APPROPRIATION_DATE, $param->adjustDatetime) ->where(PaymentPlan::FIELD_APPROPRIATION_AMOUNT, $param->parkingCharge); if (PaymentPlan::getAccess()->all($query)->isNotEmpty()) { // 登録済みのためスキップ info("登録済みのためスキップ"); return $this->successResponse(); } // データ保存 $plan = new PaymentPlan(); $plan->seasonTicketContractRecordNo = $seasonTicketContract->getRecordId(); $plan->icSeasonTicketContractId = $seasonTicketContract->icSeasonTicektContractId; $plan->paymentType = PaymentType::SEASON_TICKET; $plan->paymentMethod = PaymentMethod::定期更新機; $plan->paymentPlanDate = $param->adjustDatetime; $plan->paymentPlanAmount = $param->parkingCharge; $plan->appropriationDate = $param->adjustDatetime; $plan->appropriationAmount = $param->parkingCharge; $plan->remainingAmount = 0; $plan->save(); return $this->successResponse(); } }