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