select = self::SELECT_CSV; return $this; } /** * コレクションを取得する * * @param array $condition * @return Collection */ public function get(array $condition): Collection { $order = UseByKeySummary::getBuilder(static::TABLE_SUMMARY); $parkingName = HtCustomParkingName::getBuilder(); $table = $order ->leftJoinSub($parkingName, static::TABLE_NAME, function (JoinClause $join) { $join->on( $this->makeColumnName([static::TABLE_SUMMARY, UseByKeySummary::COL_NAME_SUMMARY_KEY1]), $this->makeColumnName([static::TABLE_NAME, HtCustomParkingName::COL_NAME_CUSTOMER_CODE]) )->on( $this->makeColumnName([static::TABLE_SUMMARY, UseByKeySummary::COL_NAME_SUMMARY_KEY2]), $this->makeColumnName([static::TABLE_NAME, HtCustomParkingName::COL_NAME_PARKING_MANAGEMENT_CODE]) ); }); // -----検索条件 // 契約ID $this->where($table, $condition, static::CONDITION_CONTRACT_ID, $this->makeColumnName([static::TABLE_SUMMARY, UseByKeySummary::COL_NAME_CONTRACT_ID])); // 年月 $this->where($table, $condition, static::CONDITION_SUMMARY_YYYYMM, $this->makeColumnName([static::TABLE_SUMMARY, UseByKeySummary::COL_NAME_SUMMARY_YYYYMM])); if ($this->select === self::SELECT_LIST) { $table->select($this->columns()); } else if ($this->select === self::SELECT_CSV) { $table->select($this->csvColumns()); } else { throw new LogicException("SELECT不正"); } $main = DB::table($table, "main"); // ソート $this->sort($main, $condition); $main->orderBy(static::CONDITION_ID); // リミット $this->limit($main, $condition); return ReceiptIssuingOrderRepositoryData::makeList($main->get()); } private function columns() { $summary = static::TABLE_SUMMARY; $name = static::TABLE_NAME; $columns = [ $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_ID]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_YYYYMM]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY1]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY2]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_RECEIPT_ORDER_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_MAIL_ORDER_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SMS_SEND_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_IS_FIXED]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_UPDATED_AT]), $this->makeColumnNameForSelect([$name, HtCustomParkingName::COL_NAME_CUSTOMER_NAME]), $this->makeColumnNameForSelect([$name, HtCustomParkingName::COL_NAME_PARKING_NAME]), ]; return $columns; } private function csvColumns() { $summary = static::TABLE_SUMMARY; $name = static::TABLE_NAME; $columns = [ $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_ID]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_YYYYMM]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY1]), $this->makeColumnNameForSelect([$name, HtCustomParkingName::COL_NAME_CUSTOMER_NAME]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SUMMARY_KEY2]), $this->makeColumnNameForSelect([$name, HtCustomParkingName::COL_NAME_PARKING_NAME]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_RECEIPT_ORDER_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_MAIL_ORDER_COUNT]), $this->makeColumnNameForSelect([$summary, UseByKeySummary::COL_NAME_SMS_SEND_COUNT]), ]; return $columns; } }