refactor(FE): Add default empty product and delivery rows

This commit is contained in:
rstubryan
2026-01-07 16:18:02 +07:00
parent 6fdff6706d
commit c4debcecce
2 changed files with 87 additions and 38 deletions
@@ -226,41 +226,62 @@ export const getMovementFormInitialValues = (
} }
: null, : null,
destination_warehouse_id: initialValues?.destination_warehouse?.id ?? 0, destination_warehouse_id: initialValues?.destination_warehouse?.id ?? 0,
products: products: initialValues?.details?.map((detail) => ({
initialValues?.details?.map((detail) => ({ product: {
product: { value: detail.product.id,
value: detail.product.id, label: detail.product.name,
label: detail.product.name, },
}, product_id: detail.product.id,
product_id: detail.product.id, product_qty: detail.quantity,
product_qty: detail.quantity, })) ?? [
})) ?? [], {
deliveries: product: null,
initialValues?.deliveries?.map((d) => ({ product_id: 0,
delivery_cost: d.shipping_cost_total ?? undefined, product_qty: '',
delivery_cost_per_item: d.shipping_cost_item ?? undefined, },
document_number: d.document_number ?? '', ],
document: d.document ?? null, deliveries: initialValues?.deliveries?.map((d) => ({
document_path: d.document_path ?? null, delivery_cost: d.shipping_cost_total ?? undefined,
driver_name: d.driver_name ?? '', delivery_cost_per_item: d.shipping_cost_item ?? undefined,
vehicle_plate: d.vehicle_plate ?? '', document: d.document ?? null,
supplier: d.supplier document_path: d.document_path ?? null,
? { value: d.supplier.id, label: d.supplier.name } driver_name: d.driver_name ?? '',
: null, vehicle_plate: d.vehicle_plate ?? '',
supplier_id: d.supplier?.id ?? 0, supplier: d.supplier
products: ? { value: d.supplier.id, label: d.supplier.name }
d.items?.map((item) => { : null,
const productData = detailIdToProductId.get( supplier_id: d.supplier?.id ?? 0,
item.stock_transfer_detail_id products:
); d.items?.map((item) => {
return { const productData = detailIdToProductId.get(
product: productData item.stock_transfer_detail_id
? { value: productData.id, label: productData.name } );
: null, return {
product_id: productData?.id ?? 0, product: productData
product_qty: item.quantity, ? { value: productData.id, label: productData.name }
}; : null,
}) ?? [], product_id: productData?.id ?? 0,
})) ?? [], product_qty: item.quantity,
};
}) ?? [],
})) ?? [
{
delivery_cost: undefined,
delivery_cost_per_item: undefined,
document: null,
document_path: null,
driver_name: '',
vehicle_plate: '',
supplier: null,
supplier_id: 0,
products: [
{
product: null,
product_id: 0,
product_qty: '',
},
],
},
],
}; };
}; };
@@ -761,8 +761,36 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
type !== 'edit' && type !== 'edit' &&
type !== 'detail' type !== 'detail'
) { ) {
formik.setFieldValue('products', []); if (formik.values.products.length === 0) {
formik.setFieldValue('deliveries', []); formik.setFieldValue('products', [
{
product: null,
product_id: 0,
product_qty: '',
},
]);
}
if (formik.values.deliveries.length === 0) {
formik.setFieldValue('deliveries', [
{
delivery_cost: undefined,
delivery_cost_per_item: undefined,
document: null,
document_path: null,
driver_name: '',
vehicle_plate: '',
supplier: null,
supplier_id: 0,
products: [
{
product: null,
product_id: 0,
product_qty: '',
},
],
},
]);
}
} }
}, [formik.values.source_warehouse_id]); }, [formik.values.source_warehouse_id]);