diff --git a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx
index 2f619778..8585a091 100644
--- a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx
+++ b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx
@@ -185,8 +185,8 @@ const PurchaseOrderAcceptApprovalForm = ({
purchase_item_id: formItem.purchase_item_id || 0,
received_date: formItem.received_date || '',
travel_number: formItem.travel_number || '',
- vehicle_number: formItem.vehicle_number || '',
- expedition_vendor_id: formItem.expedition_vendor_id || 0,
+ vehicle_number: formItem.vehicle_number || null,
+ expedition_vendor_id: formItem.expedition_vendor_id || null,
received_qty:
typeof formItem.received_qty === 'string'
? parseFloat(formItem.received_qty) || 0
@@ -194,10 +194,13 @@ const PurchaseOrderAcceptApprovalForm = ({
transport_per_item:
typeof formItem.transport_per_item === 'string'
? parseFloat(formItem.transport_per_item) || 0
- : formItem.transport_per_item || 0,
+ : formItem.transport_per_item || null,
};
}) || [],
- travel_documents: values.travel_documents || [],
+ travel_documents:
+ values.travel_documents
+ ?.filter((file): file is File => file instanceof File)
+ .filter(Boolean) || undefined,
};
switch (type) {
@@ -405,22 +408,13 @@ const PurchaseOrderAcceptApprovalForm = ({
Dokumen Surat Jalan
*
-
- Nomor Kendaraan
- *
- |
-
- Vendor Ekspedisi
- *
- |
+ Nomor Kendaraan |
+ Vendor Ekspedisi |
Jumlah Diterima
*
|
-
- Transport/Item
- *
- |
+ Transport/Item |
@@ -538,7 +532,6 @@ const PurchaseOrderAcceptApprovalForm = ({
@@ -684,7 +675,6 @@ const PurchaseOrderAcceptApprovalForm = ({
0);
}
- )
- .typeError('Vendor ekspedisi harus dipilih!'),
+ ),
received_qty: Yup.mixed()
.required('Jumlah diterima wajib diisi!')
.test(
@@ -217,13 +221,14 @@ const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema()
- .required('Biaya transport per item wajib diisi!')
+ .nullable()
+ .optional()
.test(
'is-valid-transport-per-item',
'Biaya transport per item harus berupa angka lebih dari atau sama dengan 0!',
function (value) {
if (value === '' || value === null || value === undefined)
- return false;
+ return true;
const numValue =
typeof value === 'string' ? parseFloat(value) : value;
return !isNaN(numValue) && numValue >= 0;
@@ -389,16 +394,17 @@ export const PurchaseRequestAcceptApprovalFormSchema: Yup.ObjectSchema()
- .required('Dokumen surat jalan wajib diupload!')
+ .nullable()
+ .optional()
.test('fileSize', 'Ukuran dokumen maksimal 5 MB', (value) => {
if (!value) return true;
if (value instanceof File) return value.size <= 5 * 1024 * 1024;
return true;
})
)
- .required('Dokumen surat jalan wajib diupload!')
- .min(1, 'Minimal upload 1 dokumen surat jalan!')
- .typeError('Dokumen surat jalan wajib diupload!'),
+ .nullable()
+ .optional()
+ .typeError('Dokumen surat jalan harus berupa array!'),
});
export const PurchaseRequestAcceptApprovalFormInitialValues: PurchaseRequestAcceptApprovalFormSchemaType =
diff --git a/src/types/api/purchase/purchase.d.ts b/src/types/api/purchase/purchase.d.ts
index 34798ac3..9ad59f8b 100644
--- a/src/types/api/purchase/purchase.d.ts
+++ b/src/types/api/purchase/purchase.d.ts
@@ -120,12 +120,12 @@ export type CreateAcceptApprovalRequestPayload = {
purchase_item_id: number;
received_date: string;
travel_number: string;
- vehicle_number: string;
- expedition_vendor_id: number;
+ vehicle_number?: string | null;
+ expedition_vendor_id?: number | null;
received_qty: number;
- transport_per_item: number;
+ transport_per_item?: number | null;
}[];
- travel_documents?: File[];
+ travel_documents?: File[] | null;
};
export type DeletePurchaseRequestItemPayload = {
| | |