IO-2887 Returnfrombill Parts Drawer Legacy

Signed-off-by: Allan Carr <allan.carr@thinkimex.com>
This commit is contained in:
Allan Carr
2024-08-20 15:45:21 -07:00
parent c2050e7e26
commit ee733434e6

View File

@@ -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);