diff options
Diffstat (limited to 'lib/procurement-items')
| -rw-r--r-- | lib/procurement-items/service.ts | 18 | ||||
| -rw-r--r-- | lib/procurement-items/validations.ts | 6 |
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(),
})
|
