Merged in feature/IO-2884-Production-List-Filter-LEGACY (pull request #1621)
IO-2884 Production List Filter LEGACY Approved-by: Dave Richer
This commit is contained in:
@@ -9,9 +9,7 @@ import { onlyUnique } from "../../utils/arrayHelper";
|
||||
import { alphaSort, dateSort, statusSort } from "../../utils/sorters";
|
||||
import JobAltTransportChange from "../job-at-change/job-at-change.component";
|
||||
import JobPartsQueueCount from "../job-parts-queue-count/job-parts-queue-count.component";
|
||||
import OwnerNameDisplay, {
|
||||
OwnerNameDisplayFunction,
|
||||
} from "../owner-name-display/owner-name-display.component";
|
||||
import OwnerNameDisplay, { OwnerNameDisplayFunction } from "../owner-name-display/owner-name-display.component";
|
||||
import ProductionSubletsManageComponent from "../production-sublets-manage/production-sublets-manage.component";
|
||||
import ProductionListColumnAlert from "./production-list-columns.alert.component";
|
||||
import ProductionListColumnBodyPriority from "./production-list-columns.bodypriority.component";
|
||||
@@ -34,11 +32,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
dataIndex: "viewdetail",
|
||||
key: "viewdetail",
|
||||
ellipsis: true,
|
||||
render: (text, record) => (
|
||||
<Link to={{ search: `?selected=${record.id}` }}>
|
||||
{i18n.t("general.labels.view")}
|
||||
</Link>
|
||||
),
|
||||
render: (text, record) => <Link to={{ search: `?selected=${record.id}` }}>{i18n.t("general.labels.view")}</Link>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.ro_number"),
|
||||
@@ -46,23 +40,18 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "ro_number",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => alphaSort(a.ro_number, b.ro_number),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "ro_number" && state.sortedInfo.order,
|
||||
render: (text, record) =>
|
||||
technician ? (
|
||||
<Link to={`/tech/joblookup?selected=${record.id}`}>
|
||||
{record.ro_number}
|
||||
{record.suspended && (
|
||||
<PauseCircleOutlined style={{ color: "orangered" }} />
|
||||
)}
|
||||
{record.suspended && <PauseCircleOutlined style={{ color: "orangered" }} />}
|
||||
</Link>
|
||||
) : (
|
||||
<Link to={`/manage/jobs/${record.id}`}>
|
||||
<Space>
|
||||
{record.ro_number}
|
||||
{record.suspended && (
|
||||
<PauseCircleOutlined style={{ color: "orangered" }} />
|
||||
)}
|
||||
{record.suspended && <PauseCircleOutlined style={{ color: "orangered" }} />}
|
||||
{record.iouparent && (
|
||||
<Tooltip title={i18n.t("jobs.labels.iou")}>
|
||||
<BranchesOutlined style={{ color: "orangered" }} />
|
||||
@@ -70,7 +59,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
)}
|
||||
</Space>
|
||||
</Link>
|
||||
),
|
||||
)
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.owner"),
|
||||
@@ -85,10 +74,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
<OwnerNameDisplay ownerObject={record} />
|
||||
</Link>
|
||||
),
|
||||
sorter: (a, b) =>
|
||||
alphaSort(OwnerNameDisplayFunction(a), OwnerNameDisplayFunction(b)),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "ownr" && state.sortedInfo.order,
|
||||
sorter: (a, b) => alphaSort(OwnerNameDisplayFunction(a), OwnerNameDisplayFunction(b)),
|
||||
sortOrder: state.sortedInfo.columnKey === "ownr" && state.sortedInfo.order
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.vehicle"),
|
||||
@@ -97,13 +84,10 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
ellipsis: true,
|
||||
sorter: (a, b) =>
|
||||
alphaSort(
|
||||
`${a.v_model_yr || ""} ${a.v_make_desc || ""} ${
|
||||
a.v_model_desc || ""
|
||||
}`,
|
||||
`${a.v_model_yr || ""} ${a.v_make_desc || ""} ${a.v_model_desc || ""}`,
|
||||
`${b.v_model_yr || ""} ${b.v_make_desc || ""} ${b.v_model_desc || ""}`
|
||||
),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "vehicle" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "vehicle" && state.sortedInfo.order,
|
||||
render: (text, record) =>
|
||||
technician ? (
|
||||
<>{`${record.v_model_yr || ""} ${record.v_make_desc || ""} ${
|
||||
@@ -115,7 +99,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
} ${record.v_make_desc || ""} ${record.v_model_desc || ""} ${
|
||||
record.v_color || ""
|
||||
} ${record.plate_no || ""}`}</Link>
|
||||
),
|
||||
)
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.actual_in"),
|
||||
@@ -123,11 +107,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "actual_in",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => dateSort(a.actual_in, b.actual_in),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "actual_in" && state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListDate record={record} field="actual_in" time />
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "actual_in" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListDate record={record} field="actual_in" time />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.actual_in") + " (HH:MM)",
|
||||
@@ -135,28 +116,16 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "actual_in_time",
|
||||
ellipsis: true,
|
||||
|
||||
render: (text, record) => (
|
||||
<TimeFormatter>{record.actual_in}</TimeFormatter>
|
||||
),
|
||||
render: (text, record) => <TimeFormatter>{record.actual_in}</TimeFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.scheduled_completion"),
|
||||
dataIndex: "scheduled_completion",
|
||||
key: "scheduled_completion",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) =>
|
||||
dateSort(a.scheduled_completion, b.scheduled_completion),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "scheduled_completion" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListDate
|
||||
record={record}
|
||||
field="scheduled_completion"
|
||||
pastIndicator
|
||||
time
|
||||
/>
|
||||
),
|
||||
sorter: (a, b) => dateSort(a.scheduled_completion, b.scheduled_completion),
|
||||
sortOrder: state.sortedInfo.columnKey === "scheduled_completion" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListDate record={record} field="scheduled_completion" pastIndicator time />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.scheduled_completion") + " (HH:MM)",
|
||||
@@ -164,9 +133,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "scheduled_completion_time",
|
||||
ellipsis: true,
|
||||
|
||||
render: (text, record) => (
|
||||
<TimeFormatter>{record.scheduled_completion}</TimeFormatter>
|
||||
),
|
||||
render: (text, record) => <TimeFormatter>{record.scheduled_completion}</TimeFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.date_last_contacted"),
|
||||
@@ -174,10 +141,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "date_last_contacted",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => dateSort(a.date_last_contacted, b.date_last_contacted),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "date_last_contacted" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListLastContacted record={record} />,
|
||||
sortOrder: state.sortedInfo.columnKey === "date_last_contacted" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListLastContacted record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.date_next_contact"),
|
||||
@@ -185,17 +150,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "date_next_contact",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => dateSort(a.date_next_contact, b.date_next_contact),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "date_next_contact" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListDate
|
||||
record={record}
|
||||
field="date_next_contact"
|
||||
pastIndicator
|
||||
time
|
||||
/>
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "date_next_contact" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListDate record={record} field="date_next_contact" pastIndicator time />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.scheduled_delivery"),
|
||||
@@ -203,17 +159,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "scheduled_delivery",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => dateSort(a.scheduled_delivery, b.scheduled_delivery),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "scheduled_delivery" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListDate
|
||||
record={record}
|
||||
field="scheduled_delivery"
|
||||
pastIndicator
|
||||
time
|
||||
/>
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "scheduled_delivery" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListDate record={record} field="scheduled_delivery" pastIndicator time />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.scheduled_delivery") + " (HH:MM)",
|
||||
@@ -221,9 +168,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "scheduled_delivery_time",
|
||||
ellipsis: true,
|
||||
|
||||
render: (text, record) => (
|
||||
<TimeFormatter>{record.scheduled_delivery}</TimeFormatter>
|
||||
),
|
||||
render: (text, record) => <TimeFormatter>{record.scheduled_delivery}</TimeFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.ins_co_nm"),
|
||||
@@ -231,8 +176,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "ins_co_nm",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => alphaSort(a.ins_co_nm, b.ins_co_nm),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "ins_co_nm" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "ins_co_nm" && state.sortedInfo.order
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.clm_no"),
|
||||
@@ -240,8 +184,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "clm_no",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => alphaSort(a.clm_no, b.clm_no),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "clm_no" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "clm_no" && state.sortedInfo.order
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.clm_total"),
|
||||
@@ -249,11 +192,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "clm_total",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => a.clm_total - b.clm_total,
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "clm_total" && state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<CurrencyFormatter>{record.clm_total}</CurrencyFormatter>
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "clm_total" && state.sortedInfo.order,
|
||||
render: (text, record) => <CurrencyFormatter>{record.clm_total}</CurrencyFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.owner_owing"),
|
||||
@@ -261,49 +201,36 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "owner_owing",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => a.owner_owing - b.owner_owing,
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "owner_owing" && state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<CurrencyFormatter>{record.owner_owing}</CurrencyFormatter>
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "owner_owing" && state.sortedInfo.order,
|
||||
render: (text, record) => <CurrencyFormatter>{record.owner_owing}</CurrencyFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.ownr_ph1"),
|
||||
dataIndex: "ownr_ph1",
|
||||
key: "ownr_ph1",
|
||||
ellipsis: true,
|
||||
render: (text, record) => (
|
||||
<PhoneFormatter>{record.ownr_ph1}</PhoneFormatter>
|
||||
),
|
||||
render: (text, record) => <PhoneFormatter>{record.ownr_ph1}</PhoneFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.ownr_ph2"),
|
||||
dataIndex: "ownr_ph2",
|
||||
key: "ownr_ph2",
|
||||
ellipsis: true,
|
||||
render: (text, record) => (
|
||||
<PhoneFormatter>{record.ownr_ph2}</PhoneFormatter>
|
||||
),
|
||||
render: (text, record) => <PhoneFormatter>{record.ownr_ph2}</PhoneFormatter>
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.specialcoveragepolicy"),
|
||||
dataIndex: "special_coverage_policy",
|
||||
key: "special_coverage_policy",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) =>
|
||||
Number(a.special_coverage_policy) - Number(b.special_coverage_policy),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "special_coverage_policy" &&
|
||||
state.sortedInfo.order,
|
||||
sorter: (a, b) => Number(a.special_coverage_policy) - Number(b.special_coverage_policy),
|
||||
sortOrder: state.sortedInfo.columnKey === "special_coverage_policy" && state.sortedInfo.order,
|
||||
filters: [
|
||||
{ text: "True", value: true },
|
||||
{ text: "False", value: false },
|
||||
{ text: "False", value: false }
|
||||
],
|
||||
onFilter: (value, record) =>
|
||||
value.includes(record.special_coverage_policy),
|
||||
render: (text, record) => (
|
||||
<Checkbox checked={record.special_coverage_policy} />
|
||||
),
|
||||
onFilter: (value, record) => value === record.special_coverage_policy,
|
||||
render: (text, record) => <Checkbox checked={record.special_coverage_policy} />
|
||||
},
|
||||
|
||||
{
|
||||
@@ -312,15 +239,13 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "alt_transport",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => alphaSort(a.alt_transport, b.alt_transport),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "alt_transport" &&
|
||||
state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "alt_transport" && state.sortedInfo.order,
|
||||
filters:
|
||||
(bodyshop &&
|
||||
bodyshop.appt_alt_transport.map((s) => {
|
||||
return {
|
||||
text: s,
|
||||
value: [s],
|
||||
value: [s]
|
||||
};
|
||||
})) ||
|
||||
[],
|
||||
@@ -330,7 +255,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
{record.alt_transport}
|
||||
<JobAltTransportChange job={record} />
|
||||
</div>
|
||||
),
|
||||
)
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.status"),
|
||||
@@ -338,9 +263,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "status",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => statusSort(a.status, b.status, activeStatuses),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "status" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnStatus record={record} />,
|
||||
sortOrder: state.sortedInfo.columnKey === "status" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnStatus record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.category"),
|
||||
@@ -353,37 +277,30 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
bodyshop.md_categories.map((s) => {
|
||||
return {
|
||||
text: s,
|
||||
value: [s],
|
||||
value: [s]
|
||||
};
|
||||
})) ||
|
||||
[],
|
||||
onFilter: (value, record) => value.includes(record.category),
|
||||
sorter: (a, b) => alphaSort(a.category, b.category),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "category" && state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListColumnCategory record={record} />
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "category" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnCategory record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.bodyhours"),
|
||||
dataIndex: "labhrs",
|
||||
key: "labhrs",
|
||||
sorter: (a, b) =>
|
||||
a.labhrs.aggregate.sum.mod_lb_hrs - b.labhrs.aggregate.sum.mod_lb_hrs,
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "labhrs" && state.sortedInfo.order,
|
||||
render: (text, record) => record.labhrs.aggregate.sum.mod_lb_hrs,
|
||||
sorter: (a, b) => a.labhrs.aggregate.sum.mod_lb_hrs - b.labhrs.aggregate.sum.mod_lb_hrs,
|
||||
sortOrder: state.sortedInfo.columnKey === "labhrs" && state.sortedInfo.order,
|
||||
render: (text, record) => record.labhrs.aggregate.sum.mod_lb_hrs
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.refinishhours"),
|
||||
dataIndex: "larhrs",
|
||||
key: "larhrs",
|
||||
sorter: (a, b) =>
|
||||
a.larhrs.aggregate.sum.mod_lb_hrs - b.larhrs.aggregate.sum.mod_lb_hrs,
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "larhrs" && state.sortedInfo.order,
|
||||
render: (text, record) => record.larhrs.aggregate.sum.mod_lb_hrs,
|
||||
sorter: (a, b) => a.larhrs.aggregate.sum.mod_lb_hrs - b.larhrs.aggregate.sum.mod_lb_hrs,
|
||||
sortOrder: state.sortedInfo.columnKey === "larhrs" && state.sortedInfo.order,
|
||||
render: (text, record) => record.larhrs.aggregate.sum.mod_lb_hrs
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.totalhours"),
|
||||
@@ -393,38 +310,36 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
a.labhrs.aggregate.sum.mod_lb_hrs +
|
||||
a.larhrs.aggregate.sum.mod_lb_hrs -
|
||||
(b.labhrs.aggregate.sum.mod_lb_hrs + b.larhrs.aggregate.sum.mod_lb_hrs),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "totalhours" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "totalhours" && state.sortedInfo.order,
|
||||
render: (text, record) =>
|
||||
(
|
||||
record.labhrs.aggregate.sum.mod_lb_hrs +
|
||||
record.larhrs.aggregate.sum.mod_lb_hrs
|
||||
).toFixed(1),
|
||||
(record.labhrs.aggregate.sum.mod_lb_hrs + record.larhrs.aggregate.sum.mod_lb_hrs).toFixed(1)
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.alert"),
|
||||
dataIndex: "alert",
|
||||
key: "alert",
|
||||
sorter: (a, b) =>
|
||||
Number(a.production_vars?.alert || false) -
|
||||
Number(b.production_vars?.alert || false),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "alert" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnAlert record={record} />,
|
||||
sorter: (a, b) => Number(a.production_vars?.alert || false) - Number(b.production_vars?.alert || false),
|
||||
sortOrder: state.sortedInfo.columnKey === "alert" && state.sortedInfo.order,
|
||||
filters: [
|
||||
{ text: "True", value: true },
|
||||
{ text: "False", value: false }
|
||||
],
|
||||
onFilter: (value, record) => value === (record.production_vars?.alert || false),
|
||||
render: (text, record) => <ProductionListColumnAlert record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.note"),
|
||||
dataIndex: "note",
|
||||
key: "note",
|
||||
ellipsis: true,
|
||||
render: (text, record) => <ProductionListColumnNote record={record} />,
|
||||
render: (text, record) => <ProductionListColumnNote record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.comment"),
|
||||
dataIndex: "comment",
|
||||
key: "comment",
|
||||
ellipsis: true,
|
||||
render: (text, record) => <ProductionListColumnComment record={record} />,
|
||||
render: (text, record) => <ProductionListColumnComment record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.touchtime"),
|
||||
@@ -432,7 +347,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "tt",
|
||||
render: (text, record) => {
|
||||
return <ProductionlistColumnTouchTime job={record} />;
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.bodypriority"),
|
||||
@@ -442,11 +357,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
sorter: (a, b) =>
|
||||
((a.production_vars && a.production_vars.bodypriority) || 11) -
|
||||
((b.production_vars && b.production_vars.bodypriority) || 11),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "bodypriority" && state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListColumnBodyPriority record={record} />
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "bodypriority" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnBodyPriority record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.paintpriority"),
|
||||
@@ -456,12 +368,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
sorter: (a, b) =>
|
||||
((a.production_vars && a.production_vars.paintpriority) || 11) -
|
||||
((b.production_vars && b.production_vars.paintpriority) || 11),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "paintpriority" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListColumnPaintPriority record={record} />
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "paintpriority" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnPaintPriority record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.detailpriority"),
|
||||
@@ -471,110 +379,74 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
sorter: (a, b) =>
|
||||
((a.production_vars && a.production_vars.detailpriority) || 11) -
|
||||
((b.production_vars && b.production_vars.detailpriority) || 11),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "detailpriority" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListColumnDetailPriority record={record} />
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "detailpriority" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListColumnDetailPriority record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("production.labels.sublets"),
|
||||
dataIndex: "sublets",
|
||||
key: "sublets",
|
||||
render: (text, record) => (
|
||||
<ProductionSubletsManageComponent subletJobLines={record.subletLines} />
|
||||
),
|
||||
render: (text, record) => <ProductionSubletsManageComponent subletJobLines={record.subletLines} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.employee_body"),
|
||||
dataIndex: "employee_body",
|
||||
key: "employee_body",
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "employee_body" &&
|
||||
state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "employee_body" && state.sortedInfo.order,
|
||||
sorter: (a, b) =>
|
||||
alphaSort(
|
||||
bodyshop.employees?.find((e) => e.id === a.employee_body)?.first_name,
|
||||
bodyshop.employees?.find((e) => e.id === b.employee_body)?.first_name
|
||||
),
|
||||
render: (text, record) => (
|
||||
<ProductionListEmployeeAssignment
|
||||
record={record}
|
||||
type="employee_body"
|
||||
/>
|
||||
),
|
||||
render: (text, record) => <ProductionListEmployeeAssignment record={record} type="employee_body" />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.employee_prep"),
|
||||
dataIndex: "employee_prep",
|
||||
key: "employee_prep",
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "employee_prep" &&
|
||||
state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "employee_prep" && state.sortedInfo.order,
|
||||
sorter: (a, b) =>
|
||||
alphaSort(
|
||||
bodyshop.employees?.find((e) => e.id === a.employee_prep)?.first_name,
|
||||
bodyshop.employees?.find((e) => e.id === b.employee_prep)?.first_name
|
||||
),
|
||||
render: (text, record) => (
|
||||
<ProductionListEmployeeAssignment
|
||||
record={record}
|
||||
type="employee_prep"
|
||||
/>
|
||||
),
|
||||
render: (text, record) => <ProductionListEmployeeAssignment record={record} type="employee_prep" />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.employee_csr"),
|
||||
dataIndex: "employee_csr",
|
||||
key: "employee_csr",
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "employee_csr" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "employee_csr" && state.sortedInfo.order,
|
||||
sorter: (a, b) =>
|
||||
alphaSort(
|
||||
bodyshop.employees?.find((e) => e.id === a.employee_csr)?.first_name,
|
||||
bodyshop.employees?.find((e) => e.id === b.employee_csr)?.first_name
|
||||
),
|
||||
render: (text, record) => (
|
||||
<ProductionListEmployeeAssignment record={record} type="employee_csr" />
|
||||
),
|
||||
render: (text, record) => <ProductionListEmployeeAssignment record={record} type="employee_csr" />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.employee_refinish"),
|
||||
dataIndex: "employee_refinish",
|
||||
key: "employee_refinish",
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "employee_refinish" &&
|
||||
state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "employee_refinish" && state.sortedInfo.order,
|
||||
sorter: (a, b) =>
|
||||
alphaSort(
|
||||
bodyshop.employees?.find((e) => e.id === a.employee_refinish)
|
||||
?.first_name,
|
||||
bodyshop.employees?.find((e) => e.id === b.employee_refinish)
|
||||
?.first_name
|
||||
bodyshop.employees?.find((e) => e.id === a.employee_refinish)?.first_name,
|
||||
bodyshop.employees?.find((e) => e.id === b.employee_refinish)?.first_name
|
||||
),
|
||||
render: (text, record) => (
|
||||
<ProductionListEmployeeAssignment
|
||||
record={record}
|
||||
type="employee_refinish"
|
||||
/>
|
||||
),
|
||||
render: (text, record) => <ProductionListEmployeeAssignment record={record} type="employee_refinish" />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.labels.parts_received"),
|
||||
dataIndex: "parts_received",
|
||||
key: "parts_received",
|
||||
render: (text, record) => (
|
||||
<ProductionListColumnPartsReceived record={record} />
|
||||
),
|
||||
render: (text, record) => <ProductionListColumnPartsReceived record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.partsstatus"),
|
||||
dataIndex: "partsstatus",
|
||||
key: "partsstatus",
|
||||
render: (text, record) => (
|
||||
<JobPartsQueueCount parts={record.joblines_status} record={record} />
|
||||
),
|
||||
render: (text, record) => <JobPartsQueueCount parts={record.joblines_status} record={record} />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.labels.estimator"),
|
||||
@@ -585,8 +457,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
`${a.est_ct_fn || ""} ${a.est_ct_ln || ""}`.trim(),
|
||||
`${b.est_ct_fn || ""} ${b.est_ct_ln || ""}`.trim()
|
||||
),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "estimator" && state.sortedInfo.order,
|
||||
sortOrder: state.sortedInfo.columnKey === "estimator" && state.sortedInfo.order,
|
||||
filters:
|
||||
(data &&
|
||||
data
|
||||
@@ -595,16 +466,12 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
.map((s) => {
|
||||
return {
|
||||
text: s || "N/A",
|
||||
value: [s],
|
||||
value: [s]
|
||||
};
|
||||
})) ||
|
||||
[],
|
||||
onFilter: (value, record) =>
|
||||
value.includes(
|
||||
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
|
||||
),
|
||||
render: (text, record) =>
|
||||
`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim(),
|
||||
onFilter: (value, record) => value.includes(`${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()),
|
||||
render: (text, record) => `${record.est_ct_fn || ""} ${record.est_ct_ln || ""}`.trim()
|
||||
},
|
||||
|
||||
//Added as a place holder for St Claude. Not implemented as it requires another join for a field used by only 1 client.
|
||||
@@ -634,12 +501,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "date_repairstarted",
|
||||
ellipsis: true,
|
||||
sorter: (a, b) => dateSort(a.date_repairstarted, b.date_repairstarted),
|
||||
sortOrder:
|
||||
state.sortedInfo.columnKey === "date_repairstarted" &&
|
||||
state.sortedInfo.order,
|
||||
render: (text, record) => (
|
||||
<ProductionListDate record={record} field="date_repairstarted" time />
|
||||
),
|
||||
sortOrder: state.sortedInfo.columnKey === "date_repairstarted" && state.sortedInfo.order,
|
||||
render: (text, record) => <ProductionListDate record={record} field="date_repairstarted" time />
|
||||
},
|
||||
{
|
||||
title: i18n.t("jobs.fields.date_repairstarted") + " (HH:MM)",
|
||||
@@ -647,10 +510,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
|
||||
key: "date_repairstarted_time",
|
||||
ellipsis: true,
|
||||
|
||||
render: (text, record) => (
|
||||
<TimeFormatter>{record.date_repairstarted}</TimeFormatter>
|
||||
),
|
||||
},
|
||||
render: (text, record) => <TimeFormatter>{record.date_repairstarted}</TimeFormatter>
|
||||
}
|
||||
];
|
||||
};
|
||||
export default r;
|
||||
|
||||
Reference in New Issue
Block a user