diff --git a/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx index 13581d08..017a0952 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx +++ b/src/components/pages/purchase/form/order/PurchaseOrderStaffApprovalForm.tsx @@ -579,7 +579,7 @@ const PurchaseOrderStaffApprovalForm = ({ const handlePurchaseItemChange = ( idx: number, - field: 'price' | 'total_price', + field: 'price' | 'total_price' | 'qty', value: string | number ) => { const formItem = formik.values.items?.[idx]; @@ -588,6 +588,16 @@ const PurchaseOrderStaffApprovalForm = ({ return; } + if (field === 'qty') { + const numValue = + typeof value === 'string' ? parseFloat(value) || 0 : value; + + formik.setFieldValue(`items.${idx}.qty`, numValue); + + formik.setFieldValue(`items.${idx}.price`, ''); + formik.setFieldValue(`items.${idx}.total_price`, ''); + } + if (field === 'price' || field === 'total_price') { const numValue = typeof value === 'string' ? parseFloat(value) || 0 : value; @@ -715,17 +725,18 @@ const PurchaseOrderStaffApprovalForm = ({ {type === 'edit' ? ( { - const numValue = - typeof e.target.value === 'string' - ? parseFloat(e.target.value) || 0 - : e.target.value; - formik.setFieldValue( - `items.${formItemIndex}.qty`, - numValue - ); - }} + value={ + formItem?.qty || + purchaseItem?.quantity || + '' + } + onChange={(e) => + handlePurchaseItemChange( + formItemIndex, + 'qty', + e.target.value + ) + } onBlur={formik.handleBlur} placeholder='Masukkan jumlah' allowNegative={false} @@ -916,16 +927,13 @@ const PurchaseOrderStaffApprovalForm = ({ required name={`items.${idx}.qty`} value={formItem?.qty || ''} - onChange={(e) => { - const numValue = - typeof e.target.value === 'string' - ? parseFloat(e.target.value) || 0 - : e.target.value; - formik.setFieldValue( - `items.${idx}.qty`, - numValue - ); - }} + onChange={(e) => + handlePurchaseItemChange( + idx, + 'qty', + e.target.value + ) + } onBlur={formik.handleBlur} placeholder='Masukkan jumlah' allowNegative={false}