refactor(FE): Move Movement FormData into API service

This commit is contained in:
rstubryan
2026-01-02 10:00:14 +07:00
parent 6a3d2c0dcd
commit 1c77deeee7
3 changed files with 51 additions and 23 deletions
@@ -55,16 +55,8 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
// ===== FORM HANDLERS =====
const createMovementHandler = useCallback(
async (payload: CreateMovementPayload, documents: File[] = []) => {
const formData = new FormData();
formData.append('data', JSON.stringify(payload));
documents.forEach((file, index) => {
formData.append(`documents[${index}]`, file);
});
const res = await MovementApi.create(
formData as unknown as CreateMovementPayload
);
async (payload: CreateMovementPayload) => {
const res = await MovementApi.createMovement(payload);
if (isResponseError(res)) {
setMovementFormErrorMessage(res.message);
return;
@@ -218,20 +210,23 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
});
const payload: CreateMovementPayload = {
transfer_reason: values.transfer_reason,
transfer_date: values.transfer_date,
source_warehouse_id: values.source_warehouse_id,
destination_warehouse_id: values.destination_warehouse_id,
products: values.products.map((p) => ({
product_id: p.product_id,
product_qty: parseInt(p.product_qty.toString()) || 0,
})),
deliveries: deliveriesPayload,
data: {
transfer_reason: values.transfer_reason,
transfer_date: values.transfer_date,
source_warehouse_id: values.source_warehouse_id,
destination_warehouse_id: values.destination_warehouse_id,
products: values.products.map((p) => ({
product_id: p.product_id,
product_qty: parseInt(p.product_qty.toString()) || 0,
})),
deliveries: deliveriesPayload,
},
documents: documents.length > 0 ? documents : undefined,
};
switch (type) {
case 'add':
await createMovementHandler(payload, documents);
await createMovementHandler(payload);
break;
}
},