summaryrefslogtreecommitdiff
path: root/lib/procurement-items
diff options
context:
space:
mode:
Diffstat (limited to 'lib/procurement-items')
-rw-r--r--lib/procurement-items/service.ts18
-rw-r--r--lib/procurement-items/validations.ts6
2 files changed, 16 insertions, 8 deletions
diff --git a/lib/procurement-items/service.ts b/lib/procurement-items/service.ts
index ee6df959..b62eb8df 100644
--- a/lib/procurement-items/service.ts
+++ b/lib/procurement-items/service.ts
@@ -31,7 +31,7 @@ import {
* Next.js의 unstable_cache를 사용해 일정 시간 캐시.
*/
export async function getProcurementItems(input: GetProcurementItemsSchema) {
- const safePerPage = Math.min(input.perPage, 100)
+ const safePerPage = Math.min(input.perPage, 1000)
return unstable_cache(
async () => {
@@ -328,15 +328,23 @@ export async function importProcurementItemsFromExcel(excelData: any[]): Promise
for (const itemData of batch) {
try {
// 데이터 검증
- const validatedData = createProcurementItemSchema.parse(itemData)
+ const cleanedData = {
+ itemCode: itemData.itemCode?.toString().trim() || "",
+ itemName: itemData.itemName?.toString().trim() || "",
+ material: itemData.material?.toString().trim() || "",
+ specification: itemData.specification?.toString().trim() || "",
+ unit: itemData.unit?.toString().trim() || "",
+ isActive: itemData.isActive?.toString().trim() || 'Y',
+ }
+ const validatedData = createProcurementItemSchema.parse(cleanedData)
// 품목 생성 또는 업데이트
const result = await createProcurementItem({
itemCode: validatedData.itemCode,
itemName: validatedData.itemName,
- material: validatedData.material || null,
- specification: validatedData.specification || null,
- unit: validatedData.unit || null,
+ material: validatedData.material || "",
+ specification: validatedData.specification || "",
+ unit: validatedData.unit || "",
isActive: validatedData.isActive || 'Y',
})
diff --git a/lib/procurement-items/validations.ts b/lib/procurement-items/validations.ts
index 0a2b2105..1d753e9d 100644
--- a/lib/procurement-items/validations.ts
+++ b/lib/procurement-items/validations.ts
@@ -37,9 +37,9 @@ export type GetProcurementItemsSchema = Awaited<ReturnType<typeof searchParamsCa
export const createProcurementItemSchema = z.object({
itemCode: z.string(),
itemName: z.string().min(1, "품목명은 필수입니다"),
- material: z.string().max(100).optional(),
- specification: z.string().max(255).optional(),
- unit: z.string().max(50).optional(),
+ material: z.string().max(100).optional().or(z.literal("")),
+ specification: z.string().max(255).optional().or(z.literal("")),
+ unit: z.string().max(50).optional().or(z.literal("")),
isActive: z.string().max(1).default('Y').optional(),
})