IO-2887 Returnfrombill Parts Drawer Legacy
Signed-off-by: Allan Carr <allan.carr@thinkimex.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { DeleteFilled, EyeFilled } from "@ant-design/icons";
|
import { DeleteFilled } from "@ant-design/icons";
|
||||||
import { useLazyQuery, useMutation } from "@apollo/client";
|
import { useLazyQuery, useMutation } from "@apollo/client";
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@@ -12,7 +12,6 @@ import {
|
|||||||
import queryString from "query-string";
|
import queryString from "query-string";
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { FaTasks } from "react-icons/fa";
|
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
@@ -46,17 +45,15 @@ const mapDispatchToProps = (dispatch) => ({
|
|||||||
setModalContext({
|
setModalContext({
|
||||||
context: context,
|
context: context,
|
||||||
modal: "billEnter",
|
modal: "billEnter",
|
||||||
})
|
}),
|
||||||
),
|
),
|
||||||
setPartsReceiveContext: (context) =>
|
setPartsReceiveContext: (context) =>
|
||||||
dispatch(
|
dispatch(
|
||||||
setModalContext({
|
setModalContext({
|
||||||
context: context,
|
context: context,
|
||||||
modal: "partsReceive",
|
modal: "partsReceive",
|
||||||
})
|
}),
|
||||||
),
|
),
|
||||||
setTaskUpsertContext: (context) =>
|
|
||||||
dispatch(setModalContext({ context, modal: "taskUpsert" })),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export function PartsOrderListTableDrawerComponent({
|
export function PartsOrderListTableDrawerComponent({
|
||||||
@@ -67,7 +64,6 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
billsQuery,
|
billsQuery,
|
||||||
handleOnRowClick,
|
handleOnRowClick,
|
||||||
setPartsReceiveContext,
|
setPartsReceiveContext,
|
||||||
setTaskUpsertContext,
|
|
||||||
}) {
|
}) {
|
||||||
const selectedBreakpoint = Object.entries(Grid.useBreakpoint())
|
const selectedBreakpoint = Object.entries(Grid.useBreakpoint())
|
||||||
.filter((screen) => !!screen[1])
|
.filter((screen) => !!screen[1])
|
||||||
@@ -92,8 +88,7 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
sortedInfo: {},
|
sortedInfo: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
const [returnfrombill, setReturnFromBill] = useState();
|
const [billData, setBillData] = useState(null);
|
||||||
const [billData, setBillData] = useState();
|
|
||||||
const search = queryString.parse(useLocation().search);
|
const search = queryString.parse(useLocation().search);
|
||||||
const selectedpartsorder = search.partsorderid;
|
const selectedpartsorder = search.partsorderid;
|
||||||
|
|
||||||
@@ -102,37 +97,28 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
const parts_orders = billsQuery.data ? billsQuery.data.parts_orders : [];
|
const parts_orders = billsQuery.data ? billsQuery.data.parts_orders : [];
|
||||||
const { refetch } = billsQuery;
|
const { refetch } = billsQuery;
|
||||||
|
|
||||||
|
const selectedPartsOrderRecord = parts_orders.find(
|
||||||
|
(r) => r.id === selectedpartsorder,
|
||||||
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (returnfrombill === null) {
|
const fetchData = async () => {
|
||||||
setBillData(null);
|
if (selectedPartsOrderRecord?.returnfrombill) {
|
||||||
} else {
|
try {
|
||||||
const fetchData = async () => {
|
const { data } = await billQuery({
|
||||||
const result = await billQuery({
|
variables: { billid: selectedPartsOrderRecord.returnfrombill },
|
||||||
variables: { billid: returnfrombill },
|
});
|
||||||
});
|
setBillData(data);
|
||||||
setBillData(result.data);
|
} catch (error) {
|
||||||
};
|
console.error("Error fetching bill data:", error);
|
||||||
fetchData();
|
}
|
||||||
}
|
}
|
||||||
}, [returnfrombill, billQuery]);
|
};
|
||||||
|
fetchData();
|
||||||
|
}, [selectedPartsOrderRecord, billQuery]);
|
||||||
|
|
||||||
const recordActions = (record, showView = false) => (
|
const recordActions = (record) => (
|
||||||
<Space direction="horizontal" wrap>
|
<Space direction="horizontal" wrap>
|
||||||
{showView && (
|
|
||||||
<Button
|
|
||||||
onClick={() => {
|
|
||||||
if (record.returnfrombill) {
|
|
||||||
setReturnFromBill(record.returnfrombill);
|
|
||||||
} else {
|
|
||||||
setReturnFromBill(null);
|
|
||||||
}
|
|
||||||
handleOnRowClick(record);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<EyeFilled />
|
|
||||||
</Button>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
disabled={
|
disabled={
|
||||||
jobRO ||
|
jobRO ||
|
||||||
@@ -146,41 +132,25 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
context: {
|
context: {
|
||||||
jobId: job.id,
|
jobId: job.id,
|
||||||
job: job,
|
job: job,
|
||||||
partsorderlines: record.parts_order_lines.map((pol) => {
|
partsorderlines: record.parts_order_lines.map((pol) => ({
|
||||||
return {
|
joblineid: pol.job_line_id,
|
||||||
joblineid: pol.job_line_id,
|
id: pol.id,
|
||||||
id: pol.id,
|
line_desc: pol.line_desc,
|
||||||
line_desc: pol.line_desc,
|
quantity: pol.quantity,
|
||||||
quantity: pol.quantity,
|
act_price: pol.act_price,
|
||||||
act_price: pol.act_price,
|
oem_partno: pol.oem_partno,
|
||||||
oem_partno: pol.oem_partno,
|
})),
|
||||||
};
|
|
||||||
}),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t("parts_orders.actions.receive")}
|
{t("parts_orders.actions.receive")}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
|
||||||
title={t("tasks.buttons.create")}
|
|
||||||
onClick={() => {
|
|
||||||
setTaskUpsertContext({
|
|
||||||
context: {
|
|
||||||
jobid: job.id,
|
|
||||||
partsorderid: record.id,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<FaTasks />
|
|
||||||
</Button>
|
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
title={t("parts_orders.labels.confirmdelete")}
|
title={t("parts_orders.labels.confirmdelete")}
|
||||||
disabled={jobRO}
|
disabled={jobRO}
|
||||||
onConfirm={async () => {
|
onConfirm={async () => {
|
||||||
//Delete the parts return.!
|
//Delete the parts return.!
|
||||||
|
|
||||||
await deletePartsOrder({
|
await deletePartsOrder({
|
||||||
variables: { partsOrderId: record.id },
|
variables: { partsOrderId: record.id },
|
||||||
update(cache) {
|
update(cache) {
|
||||||
@@ -188,7 +158,7 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
fields: {
|
fields: {
|
||||||
parts_orders(existingPartsOrders, { readField }) {
|
parts_orders(existingPartsOrders, { readField }) {
|
||||||
return existingPartsOrders.filter(
|
return existingPartsOrders.filter(
|
||||||
(billref) => record.id !== readField("id", billref)
|
(billref) => record.id !== readField("id", billref),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -209,7 +179,6 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
}
|
}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
logImEXEvent("parts_order_receive_bill");
|
logImEXEvent("parts_order_receive_bill");
|
||||||
|
|
||||||
setBillEnterContext({
|
setBillEnterContext({
|
||||||
actions: { refetch: refetch },
|
actions: { refetch: refetch },
|
||||||
context: {
|
context: {
|
||||||
@@ -217,27 +186,23 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
bill: {
|
bill: {
|
||||||
vendorid: record.vendor.id,
|
vendorid: record.vendor.id,
|
||||||
is_credit_memo: record.return,
|
is_credit_memo: record.return,
|
||||||
billlines: record.parts_order_lines.map((pol) => {
|
billlines: record.parts_order_lines.map((pol) => ({
|
||||||
return {
|
joblineid: pol.job_line_id || "noline",
|
||||||
joblineid: pol.job_line_id || "noline",
|
line_desc: pol.line_desc,
|
||||||
line_desc: pol.line_desc,
|
quantity: pol.quantity,
|
||||||
quantity: pol.quantity,
|
actual_price: pol.act_price,
|
||||||
|
cost_center: pol.jobline?.part_type
|
||||||
actual_price: pol.act_price,
|
? bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid
|
||||||
|
? pol.jobline.part_type !== "PAE"
|
||||||
cost_center: pol.jobline?.part_type
|
? pol.jobline.part_type
|
||||||
? bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid
|
: null
|
||||||
? pol.jobline.part_type !== "PAE"
|
: responsibilityCenters.defaults &&
|
||||||
? pol.jobline.part_type
|
(responsibilityCenters.defaults.costs[
|
||||||
: null
|
pol.jobline.part_type
|
||||||
: responsibilityCenters.defaults &&
|
] ||
|
||||||
(responsibilityCenters.defaults.costs[
|
null)
|
||||||
pol.jobline.part_type
|
: null,
|
||||||
] ||
|
})),
|
||||||
null)
|
|
||||||
: null,
|
|
||||||
};
|
|
||||||
}),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -268,10 +233,6 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
|
||||||
};
|
};
|
||||||
|
|
||||||
const selectedPartsOrderRecord = parts_orders.find(
|
|
||||||
(r) => r.id === selectedpartsorder
|
|
||||||
);
|
|
||||||
|
|
||||||
const rowExpander = (record) => {
|
const rowExpander = (record) => {
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
@@ -411,7 +372,7 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
title={
|
title={
|
||||||
billData
|
billData
|
||||||
? `${record.vendor.name} - ${record.order_number} - ${t(
|
? `${record.vendor.name} - ${record.order_number} - ${t(
|
||||||
"bills.labels.returnfrombill"
|
"bills.labels.returnfrombill",
|
||||||
)}: ${billData.bills_by_pk.invoice_number}`
|
)}: ${billData.bills_by_pk.invoice_number}`
|
||||||
: `${record.vendor.name} - ${record.order_number}`
|
: `${record.vendor.name} - ${record.order_number}`
|
||||||
}
|
}
|
||||||
@@ -451,5 +412,5 @@ export function PartsOrderListTableDrawerComponent({
|
|||||||
|
|
||||||
export default connect(
|
export default connect(
|
||||||
mapStateToProps,
|
mapStateToProps,
|
||||||
mapDispatchToProps
|
mapDispatchToProps,
|
||||||
)(PartsOrderListTableDrawerComponent);
|
)(PartsOrderListTableDrawerComponent);
|
||||||
|
|||||||
Reference in New Issue
Block a user