diff --git a/src/components/pages/inventory/movement/form/MovementForm.tsx b/src/components/pages/inventory/movement/form/MovementForm.tsx index e4dd9c51..eda03419 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.tsx +++ b/src/components/pages/inventory/movement/form/MovementForm.tsx @@ -673,26 +673,29 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => { [] ); - const handleDeliveryCostChange = useCallback((idx: number, value: number) => { - formik.setFieldValue(`deliveries.${idx}.delivery_cost`, value); + const handleDeliveryCostChange = useCallback( + (idx: number, value: number) => { + formik.setFieldValue(`deliveries.${idx}.delivery_cost`, value); - const delivery = formik.values.deliveries?.[idx]; - if (delivery) { - const productQty = delivery.products.reduce( - (sum, p) => sum + (parseInt(p.product_qty.toString()) || 0), - 0 - ); - if (productQty > 0 && value > 0) { - const perItem = value / productQty; - formik.setFieldValue( - `deliveries.${idx}.delivery_cost_per_item`, - perItem + const delivery = formik.values.deliveries?.[idx]; + if (delivery) { + const productQty = delivery.products.reduce( + (sum, p) => sum + (parseInt(p.product_qty.toString()) || 0), + 0 ); - } else if (value === 0) { - formik.setFieldValue(`deliveries.${idx}.delivery_cost_per_item`, 0); + if (productQty > 0 && value > 0) { + const perItem = value / productQty; + formik.setFieldValue( + `deliveries.${idx}.delivery_cost_per_item`, + perItem + ); + } else if (value === 0) { + formik.setFieldValue(`deliveries.${idx}.delivery_cost_per_item`, 0); + } } - } - }, []); + }, + [formik.values.deliveries] + ); const handleDeliveryCostPerItemChange = useCallback( (idx: number, value: number) => { @@ -712,7 +715,7 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => { } } }, - [] + [formik.values.deliveries] ); const handleDeliveryCostChangeWrapper = useCallback(