From 8dc62453bdf8d56653f01e602b59d2fc6b02cfaa Mon Sep 17 00:00:00 2001 From: rstubryan Date: Tue, 14 Apr 2026 13:31:40 +0700 Subject: [PATCH] fix(FE-form-object-missmatch): Refactor purchase item handling in approval forms and schemas --- .../order/PurchaseOrderAcceptApprovalForm.tsx | 3 +-- .../form/order/PurchaseOrderForm.schema.ts | 25 ++++--------------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx index 2eacfbad..7ab0dc81 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx +++ b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx @@ -294,7 +294,6 @@ const PurchaseOrderAcceptApprovalForm = ({ item.expedition_vendor_id || item.expedition_vendor?.id || null; return { - purchase_item: null, purchase_item_id: item.id, received_date: item.received_date ? new Date(item.received_date).toISOString().split('T')[0] @@ -573,7 +572,7 @@ const PurchaseOrderAcceptApprovalForm = ({ expeditionVendorChangeHandler(idx, val) diff --git a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts index 9e6f43b0..aac4fa50 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts +++ b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts @@ -31,10 +31,6 @@ type PurchaseRequestAcceptApprovalFormSchemaType = { action: 'APPROVED' | 'REJECTED'; notes: string | null; items: { - purchase_item?: { - value: number; - label: string; - } | null; purchase_item_id: number; received_date: string; travel_number: string; @@ -68,10 +64,6 @@ export type PurchaseStaffApprovalItemSchema = { }; export type PurchaseAcceptApprovalItemSchema = { - purchase_item?: { - value: number; - label: string; - } | null; purchase_item_id: number; received_date: string; travel_number: string; @@ -160,12 +152,6 @@ const PurchaseManagerApprovalObjectSchema: Yup.ObjectSchema = Yup.object({ - purchase_item: Yup.object({ - value: Yup.number().min(1).required(), - label: Yup.string().required(), - }) - .nullable() - .optional(), purchase_item_id: Yup.number() .min(1, 'Purchase item is required!') .required('Purchase item is required!') @@ -185,9 +171,8 @@ const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema - Boolean(expeditionVendor?.value), + .when('expedition_vendor_id', { + is: (expeditionVendorId?: number | null) => Boolean(expeditionVendorId), then: (schema) => schema.required('Nomor kendaraan wajib diisi!'), otherwise: (schema) => schema.optional(), }) @@ -196,6 +181,7 @@ const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema() .nullable() - .when('expedition_vendor', { - is: (expeditionVendor?: { value?: number; label?: string } | null) => - Boolean(expeditionVendor?.value), + .when('expedition_vendor_id', { + is: (expeditionVendorId?: number | null) => Boolean(expeditionVendorId), then: (schema) => schema.required('Biaya transport per item wajib diisi!'), otherwise: (schema) => schema.optional(),