mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
refactor(FE-212): add quantity field handling in PurchaseOrderStaffApprovalForm for improved item updates
This commit is contained in:
@@ -579,7 +579,7 @@ const PurchaseOrderStaffApprovalForm = ({
|
|||||||
|
|
||||||
const handlePurchaseItemChange = (
|
const handlePurchaseItemChange = (
|
||||||
idx: number,
|
idx: number,
|
||||||
field: 'price' | 'total_price',
|
field: 'price' | 'total_price' | 'qty',
|
||||||
value: string | number
|
value: string | number
|
||||||
) => {
|
) => {
|
||||||
const formItem = formik.values.items?.[idx];
|
const formItem = formik.values.items?.[idx];
|
||||||
@@ -588,6 +588,16 @@ const PurchaseOrderStaffApprovalForm = ({
|
|||||||
return;
|
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') {
|
if (field === 'price' || field === 'total_price') {
|
||||||
const numValue =
|
const numValue =
|
||||||
typeof value === 'string' ? parseFloat(value) || 0 : value;
|
typeof value === 'string' ? parseFloat(value) || 0 : value;
|
||||||
@@ -715,17 +725,18 @@ const PurchaseOrderStaffApprovalForm = ({
|
|||||||
{type === 'edit' ? (
|
{type === 'edit' ? (
|
||||||
<NumberInput
|
<NumberInput
|
||||||
name={`items.${formItemIndex}.qty`}
|
name={`items.${formItemIndex}.qty`}
|
||||||
value={formItem?.qty || purchaseItem?.quantity || ''}
|
value={
|
||||||
onChange={(e) => {
|
formItem?.qty ||
|
||||||
const numValue =
|
purchaseItem?.quantity ||
|
||||||
typeof e.target.value === 'string'
|
''
|
||||||
? parseFloat(e.target.value) || 0
|
}
|
||||||
: e.target.value;
|
onChange={(e) =>
|
||||||
formik.setFieldValue(
|
handlePurchaseItemChange(
|
||||||
`items.${formItemIndex}.qty`,
|
formItemIndex,
|
||||||
numValue
|
'qty',
|
||||||
);
|
e.target.value
|
||||||
}}
|
)
|
||||||
|
}
|
||||||
onBlur={formik.handleBlur}
|
onBlur={formik.handleBlur}
|
||||||
placeholder='Masukkan jumlah'
|
placeholder='Masukkan jumlah'
|
||||||
allowNegative={false}
|
allowNegative={false}
|
||||||
@@ -916,16 +927,13 @@ const PurchaseOrderStaffApprovalForm = ({
|
|||||||
required
|
required
|
||||||
name={`items.${idx}.qty`}
|
name={`items.${idx}.qty`}
|
||||||
value={formItem?.qty || ''}
|
value={formItem?.qty || ''}
|
||||||
onChange={(e) => {
|
onChange={(e) =>
|
||||||
const numValue =
|
handlePurchaseItemChange(
|
||||||
typeof e.target.value === 'string'
|
idx,
|
||||||
? parseFloat(e.target.value) || 0
|
'qty',
|
||||||
: e.target.value;
|
e.target.value
|
||||||
formik.setFieldValue(
|
)
|
||||||
`items.${idx}.qty`,
|
}
|
||||||
numValue
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
onBlur={formik.handleBlur}
|
onBlur={formik.handleBlur}
|
||||||
placeholder='Masukkan jumlah'
|
placeholder='Masukkan jumlah'
|
||||||
allowNegative={false}
|
allowNegative={false}
|
||||||
|
|||||||
Reference in New Issue
Block a user