From d19b1e885e74769bc2758d8681f18d46ebd0f7af Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 17 Jan 2026 12:59:41 +0700 Subject: [PATCH] refactor(FE): Compute item total on qty change and limit reset --- .../order/PurchaseOrderStaffApprovalForm.tsx | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx index 729b6782..a232347d 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx +++ b/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx @@ -633,8 +633,18 @@ const PurchaseOrderStaffApprovalForm = ({ formik.setFieldValue(`items.${idx}.qty`, numValue); - formik.setFieldValue(`items.${idx}.price`, ''); - formik.setFieldValue(`items.${idx}.total_price`, ''); + if ( + formItem.price !== '' && + formItem.price !== undefined && + formItem.price !== null && + numValue !== '' && + numValue > 0 + ) { + const calculatedTotal = Number(formItem.price) * Number(numValue); + formik.setFieldValue(`items.${idx}.total_price`, calculatedTotal); + } else if (numValue === '') { + formik.setFieldValue(`items.${idx}.total_price`, ''); + } } if (field === 'price' || field === 'total_price') { @@ -1184,8 +1194,10 @@ const PurchaseOrderStaffApprovalForm = ({ color='warning' className='px-4' onClick={() => { - formik.setValues(formikInitialValues); - formik.resetForm(); + if (type === 'add') { + formik.setValues(formikInitialValues); + formik.resetForm(); + } setPurchaseOrderFormErrorMessage(''); onCancel?.(); onModalClose?.();