summaryrefslogtreecommitdiff
path: root/components/common/vendor/vendor-service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'components/common/vendor/vendor-service.ts')
-rw-r--r--components/common/vendor/vendor-service.ts34
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 })
}))
// 페이지네이션 정보 계산