*/ private Collection $results; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); $this->applications = collect(); $this->results = collect(); } /** * Execute the console command. * * @return int */ public function service(): int { // プランの取得 $plans = $this->getPlans(); foreach ($plans as $plan) { // 契約の取得 $contracts = $this->getContracts($plan); $confirmMessage = sprintf("支払済みにしますか?[%s][%d件]", $plan->planName, $contracts->count()); if (!$this->confirm($confirmMessage)) { continue; } // 支払予定の取得 foreach ($contracts as $contract) { $payments = $this->getPaymentPlans($contract); // 支払済みへ変更 foreach ($payments as $payment) { $payment->remainingAmount = 0; $payment->appropriationAmount = $payment->paymentPlanAmount; $payment->paymentPlanDate = DateUtil::now(); $payment->save(); } } } return self::RESULTCODE_SUCCESS; } private function getPlans() { $access = SeasonTicketContractPlan::getAccess(); $query = SeasonTicketContractPlan::getQuery()->where(SeasonTicketContractPlan::FIELD_PARKING_NAME, $this->argument("parkingName")); $plans = $access->all($query); return $plans; } private function getContracts(SeasonTicketContractPlan $plan) { $access = SeasonTicketContract::getAccess(); $query = SeasonTicketContract::getQuery()->where(SeasonTicketContract::FIELD_PLAN_NAME, $plan->planName); $contracts = $access->all($query); return $contracts; } private function getPaymentPlans(SeasonTicketContract $contract) { $access = PaymentPlan::getAccess(); $query = PaymentPlan::getQuery() ->where(PaymentPlan::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO, $contract->getRecordId()) ->where(PaymentPlan::FIELD_REMAINING_AMOUNT, 0, KintoneRecordQueryOperator::NEQ); $contracts = $access->all($query); return $contracts; } }