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, validateOnBlur: true,
enableReinitialize: false, enableReinitialize: false,
onSubmit: async (values) => { 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 = { const payload: CreateAcceptApprovalRequestPayload = {
action: 'APPROVED', action: 'APPROVED',
notes: values.notes || '', notes: values.notes || '',
items: items:
values.items?.map((formItem) => { values.items?.map((formItem) => {
return { const item: ItemPayload = {
purchase_item_id: formItem.purchase_item_id || 0, purchase_item_id: formItem.purchase_item_id || 0,
received_date: formItem.received_date || '', received_date: formItem.received_date || '',
travel_number: formItem.travel_number || '', travel_number: formItem.travel_number || '',
vehicle_number: formItem.vehicle_number || null,
expedition_vendor_id: formItem.expedition_vendor_id || null,
received_qty: received_qty:
typeof formItem.received_qty === 'string' typeof formItem.received_qty === 'string'
? parseFloat(formItem.received_qty) || 0 ? parseFloat(formItem.received_qty) || 0
: 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: travel_documents:
values.travel_documents values.travel_documents
@@ -258,7 +286,7 @@ const PurchaseOrderAcceptApprovalForm = ({
if (purchaseItems.length > 0 && initialValues?.items) { if (purchaseItems.length > 0 && initialValues?.items) {
const updatedItems = initialValues.items.map((item) => { const updatedItems = initialValues.items.map((item) => {
const expeditionVendorId = const expeditionVendorId =
item.expedition_vendor_id || item.expedition_vendor?.id || 0; item.expedition_vendor_id || item.expedition_vendor?.id || null;
return { return {
purchase_item: null, purchase_item: null,
@@ -327,10 +355,14 @@ const PurchaseOrderAcceptApprovalForm = ({
formik.setFieldTouched(`items.${idx}.expedition_vendor`, true); formik.setFieldTouched(`items.${idx}.expedition_vendor`, true);
formik.setFieldValue(`items.${idx}.expedition_vendor`, expeditionVendor); formik.setFieldValue(`items.${idx}.expedition_vendor`, expeditionVendor);
formik.setFieldTouched(`items.${idx}.expedition_vendor_id`, true); formik.setFieldTouched(`items.${idx}.expedition_vendor_id`, true);
formik.setFieldValue( if (expeditionVendor?.value) {
`items.${idx}.expedition_vendor_id`, formik.setFieldValue(
expeditionVendor?.value || 0 `items.${idx}.expedition_vendor_id`,
); expeditionVendor.value
);
} else {
formik.setFieldValue(`items.${idx}.expedition_vendor_id`, null);
}
}; };
// ===== PURCHASE ITEM OPERATIONS ===== // ===== PURCHASE ITEM OPERATIONS =====