feature/IO-3255-simplified-parts-management - Cleanup

This commit is contained in:
Dave
2025-08-13 17:24:46 -04:00
parent 7158676562
commit 7ed7b6117f
10 changed files with 52 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
import { Card, Table } from "antd";
import React, { useState } from "react";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Link } from "react-router-dom";
@@ -10,12 +10,15 @@ import { DateTimeFormatter } from "../../utils/DateFormatter";
import { alphaSort, dateSort, statusSort } from "../../utils/sorters";
import OwnerNameDisplay, { OwnerNameDisplayFunction } from "../owner-name-display/owner-name-display.component";
import VehicleDetailUpdateJobsComponent from "../vehicle-detail-update-jobs/vehicle-detail-update-jobs.component";
import { selectIsPartsEntry } from "../../redux/application/application.selectors";
import getPartsBasePath from "../../utils/getPartsBasePath.js";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
bodyshop: selectBodyshop,
isPartsEntry: selectIsPartsEntry
});
export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
export function VehicleDetailJobsComponent({ vehicle, bodyshop, isPartsEntry }) {
const { t } = useTranslation();
const [selectedJobs, setSelectedJobs] = useState([]);
const [state, setState] = useState({
@@ -23,6 +26,8 @@ export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
filteredInfo: { text: "" }
});
const basePath = getPartsBasePath(isPartsEntry);
const handleTableChange = (pagination, filters, sorter) => {
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
};
@@ -34,7 +39,7 @@ export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
key: "ro_number",
ellipsis: true,
render: (text, record) => (
<Link to={`/manage/jobs/${record.id}`}>{record.ro_number || t("general.labels.na")}</Link>
<Link to={`${basePath}/jobs/${record.id}`}>{record.ro_number || t("general.labels.na")}</Link>
),
sorter: (a, b) => alphaSort(a.ro_number, b.ro_number),
sortOrder: state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order
@@ -45,11 +50,14 @@ export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
key: "owner",
sorter: (a, b) => alphaSort(OwnerNameDisplayFunction(a), OwnerNameDisplayFunction(b)),
sortOrder: state.sortedInfo.columnKey === "owner" && state.sortedInfo.order,
render: (text, record) => (
<Link to={`/manage/owners/${record.owner.id}`}>
render: (text, record) =>
!isPartsEntry ? (
<Link to={`${basePath}/owners/${record.owner.id}`}>
<OwnerNameDisplay ownerObject={record} />
</Link>
) : (
<OwnerNameDisplay ownerObject={record} />
</Link>
)
)
},
{
title: t("jobs.fields.clm_no"),
@@ -68,19 +76,15 @@ export function VehicleDetailJobsComponent({ vehicle, bodyshop }) {
text: status,
value: status
})),
onFilter: (value, record) => value.includes(record.status),
onFilter: (value, record) => value.includes(record.status)
},
{
title: t("jobs.fields.actual_completion"),
dataIndex: "actual_completion",
key: "actual_completion",
render: (text, record) => (
<DateTimeFormatter>{record.actual_completion}</DateTimeFormatter>
),
render: (text, record) => <DateTimeFormatter>{record.actual_completion}</DateTimeFormatter>,
sorter: (a, b) => dateSort(a.actual_completion, b.actual_completion),
sortOrder:
state.sortedInfo.columnKey === "actual_completion" &&
state.sortedInfo.order,
sortOrder: state.sortedInfo.columnKey === "actual_completion" && state.sortedInfo.order
},
{
title: t("jobs.fields.clm_total"),