diff options
Diffstat (limited to 'components/common/vendor/vendor-service.ts')
| -rw-r--r-- | components/common/vendor/vendor-service.ts | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/components/common/vendor/vendor-service.ts b/components/common/vendor/vendor-service.ts index 8c440df2..bc53be3e 100644 --- a/components/common/vendor/vendor-service.ts +++ b/components/common/vendor/vendor-service.ts @@ -12,6 +12,7 @@ export interface VendorSearchItem { taxId: string | null // 사업자번호 status: string displayText: string // vendorName + vendorCode로 구성된 표시용 텍스트 + country?: string | null // 국가 정보 (선택적) } // 벤더 검색 옵션 @@ -22,6 +23,7 @@ export interface VendorSearchOptions { offset?: number sortBy?: 'vendorName' | 'vendorCode' | 'status' sortOrder?: 'asc' | 'desc' + includeCountry?: boolean // 국가 정보 포함 여부 } // 페이지네이션 정보 @@ -50,7 +52,7 @@ export async function searchVendorsForSelector( error?: string }> { try { - const { statusFilter, sortBy = 'vendorName', sortOrder = 'asc' } = options + const { statusFilter, sortBy = 'vendorName', sortOrder = 'asc', includeCountry = false } = options const offset = (page - 1) * perPage // WHERE 조건 구성 @@ -95,15 +97,26 @@ export async function searchVendorsForSelector( const totalCountResult = await totalCountQuery const total = totalCountResult.length - // 데이터 조회 + // 데이터 조회 - includeCountry에 따라 필드 선택 + const selectFields = includeCountry + ? { + id: vendors.id, + vendorName: vendors.vendorName, + vendorCode: vendors.vendorCode, + taxId: vendors.taxId, + status: vendors.status, + country: vendors.country, + } + : { + id: vendors.id, + vendorName: vendors.vendorName, + vendorCode: vendors.vendorCode, + taxId: vendors.taxId, + status: vendors.status, + } + let dataQuery = db - .select({ - id: vendors.id, - vendorName: vendors.vendorName, - vendorCode: vendors.vendorCode, - taxId: vendors.taxId, - status: vendors.status, - }) + .select(selectFields) .from(vendors) if (whereClause) { @@ -120,7 +133,8 @@ export async function searchVendorsForSelector( ...vendor, displayText: vendor.vendorCode ? `${vendor.vendorName} (${vendor.vendorCode})` - : vendor.vendorName + : vendor.vendorName, + ...(includeCountry && { country: (vendor as any).country }) })) // 페이지네이션 정보 계산 |
