mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-23 23:05:46 +00:00
refactor(FE): Refactor payload creation in
PurchaseOrderAcceptApprovalForm
This commit is contained in:
@@ -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 =====
|
||||||
|
|||||||
Reference in New Issue
Block a user