diff --git a/src/components/input/FileInput.tsx b/src/components/input/FileInput.tsx
index aee7cb78..5f3a8610 100644
--- a/src/components/input/FileInput.tsx
+++ b/src/components/input/FileInput.tsx
@@ -33,6 +33,7 @@ const FileInput = ({
isError,
errorMessage,
disabled = false,
+ required = false,
onChange,
onBlur,
readOnly = false,
@@ -56,6 +57,13 @@ const FileInput = ({
)}
>
{label}
+ {required && (
+ <>
+
+ *
+
+ >
+ )}
)}
diff --git a/src/components/pages/inventory/movement/form/MovementForm.tsx b/src/components/pages/inventory/movement/form/MovementForm.tsx
index 64c87717..d92b14de 100644
--- a/src/components/pages/inventory/movement/form/MovementForm.tsx
+++ b/src/components/pages/inventory/movement/form/MovementForm.tsx
@@ -1584,6 +1584,7 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
>
) : (
{
const file = e.target.files?.[0];
diff --git a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx
index b90a7c91..d39b2e1a 100644
--- a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx
+++ b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx
@@ -689,6 +689,16 @@ const PurchaseOrderAcceptApprovalForm = ({
accept='.pdf,.jpg,.jpeg,.png'
onChange={(e) => {
const files = Array.from(e.target.files || []);
+ const invalidFiles = files.filter(
+ (file) => file.size > 2 * 1024 * 1024
+ );
+
+ if (invalidFiles.length > 0) {
+ toast.error('Ukuran dokumen maksimal 2 MB!');
+ e.target.value = '';
+ return;
+ }
+
formik.setFieldValue('travel_documents', files);
}}
onBlur={formik.handleBlur}
diff --git a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts
index 0d776cb0..07a868a3 100644
--- a/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts
+++ b/src/components/pages/purchase/form/order/PurchaseOrderForm.schema.ts
@@ -392,7 +392,15 @@ export const PurchaseRequestAcceptApprovalFormSchema: Yup.ObjectSchema().required())
+ .of(
+ Yup.mixed()
+ .required('Dokumen surat jalan wajib diupload!')
+ .test('fileSize', 'Ukuran dokumen maksimal 2 MB', (value) => {
+ if (!value) return true;
+ if (value instanceof File) return value.size <= 2 * 1024 * 1024;
+ return true;
+ })
+ )
.required('Dokumen surat jalan wajib diupload!')
.min(1, 'Minimal upload 1 dokumen surat jalan!')
.typeError('Dokumen surat jalan wajib diupload!'),