refactor(FE): Refactor payload creation in

PurchaseOrderAcceptApprovalForm
This commit is contained in:
rstubryan
2026-03-04 10:20:50 +07:00
parent d502ec707c
commit 4f6d71f1f4
@@ -175,26 +175,54 @@ const PurchaseOrderAcceptApprovalForm = ({
validateOnBlur: true,
enableReinitialize: false,
onSubmit: async (values) => {
type ItemPayload = {
purchase_item_id: number;
received_date: string;
travel_number: string;
received_qty: number;
vehicle_number?: string;
expedition_vendor_id?: number;
transport_per_item?: number;
};
const payload: CreateAcceptApprovalRequestPayload = {
action: 'APPROVED',
notes: values.notes || '',
items:
values.items?.map((formItem) => {
return {
const item: ItemPayload = {
purchase_item_id: formItem.purchase_item_id || 0,
received_date: formItem.received_date || '',
travel_number: formItem.travel_number || '',
vehicle_number: formItem.vehicle_number || null,
expedition_vendor_id: formItem.expedition_vendor_id || null,
received_qty:
typeof formItem.received_qty === 'string'
? parseFloat(formItem.received_qty) || 0
: formItem.received_qty || 0,
transport_per_item:
typeof formItem.transport_per_item === 'string'
? parseFloat(formItem.transport_per_item) || 0
: formItem.transport_per_item || null,
};
if (
formItem.vehicle_number &&
formItem.vehicle_number.trim() !== ''
) {
item.vehicle_number = formItem.vehicle_number;
}
if (
formItem.expedition_vendor_id &&
formItem.expedition_vendor_id !== 0
) {
item.expedition_vendor_id = formItem.expedition_vendor_id;
}
const transportValue =
typeof formItem.transport_per_item === 'string'
? parseFloat(formItem.transport_per_item) || 0
: formItem.transport_per_item || 0;
if (transportValue > 0) {
item.transport_per_item = transportValue;
}
return item;
}) || [],
travel_documents:
values.travel_documents
@@ -258,7 +286,7 @@ const PurchaseOrderAcceptApprovalForm = ({
if (purchaseItems.length > 0 && initialValues?.items) {
const updatedItems = initialValues.items.map((item) => {
const expeditionVendorId =
item.expedition_vendor_id || item.expedition_vendor?.id || 0;
item.expedition_vendor_id || item.expedition_vendor?.id || null;
return {
purchase_item: null,
@@ -327,10 +355,14 @@ const PurchaseOrderAcceptApprovalForm = ({
formik.setFieldTouched(`items.${idx}.expedition_vendor`, true);
formik.setFieldValue(`items.${idx}.expedition_vendor`, expeditionVendor);
formik.setFieldTouched(`items.${idx}.expedition_vendor_id`, true);
formik.setFieldValue(
`items.${idx}.expedition_vendor_id`,
expeditionVendor?.value || 0
);
if (expeditionVendor?.value) {
formik.setFieldValue(
`items.${idx}.expedition_vendor_id`,
expeditionVendor.value
);
} else {
formik.setFieldValue(`items.${idx}.expedition_vendor_id`, null);
}
};
// ===== PURCHASE ITEM OPERATIONS =====