$data */ public function __construct(Collection $data) { $this->acceptNo = $data[self::IDX_ACCEPT_NO]; $this->applicationDatetime = DateUtil::parse($data[self::IDX_APPLICATION_DATE] . $data[self::IDX_APPLICATION_TIME]); $this->customerNo = $data[self::IDX_CUSTOMER_NO]; $this->address5 = $data[self::IDX_ADDRESS5]; $this->status = SMBCStatus::from($data[self::IDX_STATUS]); $this->bankCode = $data[self::IDX_BANK_CODE]; $this->bankName = $data[self::IDX_BANK_NAME]; $this->branchCode = $data[self::IDX_BRANCH_CODE]; $this->branchName = $data[self::IDX_BRANCH_NAME]; $this->accountType = $data[self::IDX_ACCOUNT_TYPE]; $this->accountNo = $data[self::IDX_ACCOUNT_NO]; $this->accountName = $data[self::IDX_ACCOUNT_NAME]; // ゆうちょの場合、 // 支店コードに記号5桁のうちの3桁 // 口座番号に記号8桁のうちの7桁が入っているので // 調整する if ($this->bankCode === self::BANK_CODE_YUCHO) { $branchCode = $this->branchCode; $accountNo = $this->accountNo; $this->branchCode = ""; $this->accountNo = ""; // 記号には前後に1,0を付与する $this->yuchoSign = sprintf("1%s0", $branchCode); // 口座番号には末尾に1を付与する $this->yuchoAccountNo = sprintf("%s1", $accountNo); // 支店コードは記号の前2桁に8を付与する $this->branchCode = sprintf("%s8", Str::of($branchCode)->substr(2)); } $this->bankBranchCode = sprintf("%d%s", intval($this->bankCode), $this->branchCode); $this->all = $data->implode(","); } public function getCustomerCode(): int { return intval($this->customerNo); } }