mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
feat(FE-212): add quantity validation to PurchaseOrderAcceptApprovalForm to prevent submission with exceeded received quantities
This commit is contained in:
@@ -263,6 +263,22 @@ const PurchaseOrderAcceptApprovalForm = ({
|
|||||||
[purchaseItems]
|
[purchaseItems]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const hasQuantityExceededErrors = useMemo(() => {
|
||||||
|
if (!formik.values.items || purchaseItems.length === 0) return false;
|
||||||
|
|
||||||
|
return formik.values.items.some((item, idx) => {
|
||||||
|
if (!item.received_qty) return false;
|
||||||
|
|
||||||
|
const receivedQty =
|
||||||
|
typeof item.received_qty === 'string'
|
||||||
|
? parseFloat(item.received_qty) || 0
|
||||||
|
: item.received_qty;
|
||||||
|
|
||||||
|
const originalQty = purchaseItems[idx]?.quantity || 0;
|
||||||
|
return receivedQty > originalQty;
|
||||||
|
});
|
||||||
|
}, [formik.values.items, purchaseItems]);
|
||||||
|
|
||||||
const getExpeditionVendorOptions = useCallback(() => {
|
const getExpeditionVendorOptions = useCallback(() => {
|
||||||
return expeditionVendors;
|
return expeditionVendors;
|
||||||
}, [expeditionVendors]);
|
}, [expeditionVendors]);
|
||||||
@@ -713,7 +729,11 @@ const PurchaseOrderAcceptApprovalForm = ({
|
|||||||
color='primary'
|
color='primary'
|
||||||
className='px-4'
|
className='px-4'
|
||||||
isLoading={formik.isSubmitting}
|
isLoading={formik.isSubmitting}
|
||||||
disabled={!formik.isValid || formik.isSubmitting}
|
disabled={
|
||||||
|
!formik.isValid ||
|
||||||
|
formik.isSubmitting ||
|
||||||
|
hasQuantityExceededErrors
|
||||||
|
}
|
||||||
>
|
>
|
||||||
Submit
|
Submit
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
Reference in New Issue
Block a user