From 41e40b91654493a4fe173fdd4b5c1370af49a1b6 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Fri, 16 Aug 2024 09:16:32 -0700 Subject: [PATCH] IO-2884 Production List Filter LEGACY Signed-off-by: Allan Carr --- .../production-list-columns.data.js | 323 +++++------------- 1 file changed, 92 insertions(+), 231 deletions(-) diff --git a/client/src/components/production-list-columns/production-list-columns.data.js b/client/src/components/production-list-columns/production-list-columns.data.js index 6677c2127..fe66c6d94 100644 --- a/client/src/components/production-list-columns/production-list-columns.data.js +++ b/client/src/components/production-list-columns/production-list-columns.data.js @@ -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) => ( - - {i18n.t("general.labels.view")} - - ), + render: (text, record) => {i18n.t("general.labels.view")} }, { 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 ? ( {record.ro_number} - {record.suspended && ( - - )} + {record.suspended && } ) : ( {record.ro_number} - {record.suspended && ( - - )} + {record.suspended && } {record.iouparent && ( @@ -70,7 +59,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => { )} - ), + ) }, { title: i18n.t("jobs.fields.owner"), @@ -85,10 +74,8 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => { ), - 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 || ""}`} - ), + ) }, { 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "actual_in" && state.sortedInfo.order, + render: (text, record) => }, { 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) => ( - {record.actual_in} - ), + render: (text, record) => {record.actual_in} }, { 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) => ( - - ), + sorter: (a, b) => dateSort(a.scheduled_completion, b.scheduled_completion), + sortOrder: state.sortedInfo.columnKey === "scheduled_completion" && state.sortedInfo.order, + render: (text, record) => }, { 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) => ( - {record.scheduled_completion} - ), + render: (text, record) => {record.scheduled_completion} }, { 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) => , + sortOrder: state.sortedInfo.columnKey === "date_last_contacted" && state.sortedInfo.order, + render: (text, 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "date_next_contact" && state.sortedInfo.order, + render: (text, record) => }, { 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "scheduled_delivery" && state.sortedInfo.order, + render: (text, record) => }, { 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) => ( - {record.scheduled_delivery} - ), + render: (text, record) => {record.scheduled_delivery} }, { 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) => ( - {record.clm_total} - ), + sortOrder: state.sortedInfo.columnKey === "clm_total" && state.sortedInfo.order, + render: (text, record) => {record.clm_total} }, { 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) => ( - {record.owner_owing} - ), + sortOrder: state.sortedInfo.columnKey === "owner_owing" && state.sortedInfo.order, + render: (text, record) => {record.owner_owing} }, { title: i18n.t("jobs.fields.ownr_ph1"), dataIndex: "ownr_ph1", key: "ownr_ph1", ellipsis: true, - render: (text, record) => ( - {record.ownr_ph1} - ), + render: (text, record) => {record.ownr_ph1} }, { title: i18n.t("jobs.fields.ownr_ph2"), dataIndex: "ownr_ph2", key: "ownr_ph2", ellipsis: true, - render: (text, record) => ( - {record.ownr_ph2} - ), + render: (text, record) => {record.ownr_ph2} }, { 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) => ( - - ), + onFilter: (value, record) => value === record.special_coverage_policy, + render: (text, record) => }, { @@ -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} - ), + ) }, { 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) => , + sortOrder: state.sortedInfo.columnKey === "status" && state.sortedInfo.order, + render: (text, 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "category" && state.sortedInfo.order, + render: (text, 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) => , + 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) => }, { title: i18n.t("production.labels.note"), dataIndex: "note", key: "note", ellipsis: true, - render: (text, record) => , + render: (text, record) => }, { title: i18n.t("production.labels.comment"), dataIndex: "comment", key: "comment", ellipsis: true, - render: (text, record) => , + render: (text, record) => }, { title: i18n.t("production.labels.touchtime"), @@ -432,7 +347,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => { key: "tt", render: (text, record) => { return ; - }, + } }, { 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "bodypriority" && state.sortedInfo.order, + render: (text, 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "paintpriority" && state.sortedInfo.order, + render: (text, 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "detailpriority" && state.sortedInfo.order, + render: (text, record) => }, { title: i18n.t("production.labels.sublets"), dataIndex: "sublets", key: "sublets", - render: (text, record) => ( - - ), + render: (text, record) => }, { 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) => ( - - ), + render: (text, record) => }, { 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) => ( - - ), + render: (text, record) => }, { 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) => ( - - ), + render: (text, record) => }, { 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) => ( - - ), + render: (text, record) => }, { title: i18n.t("jobs.labels.parts_received"), dataIndex: "parts_received", key: "parts_received", - render: (text, record) => ( - - ), + render: (text, record) => }, { title: i18n.t("jobs.fields.partsstatus"), dataIndex: "partsstatus", key: "partsstatus", - render: (text, record) => ( - - ), + render: (text, 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) => ( - - ), + sortOrder: state.sortedInfo.columnKey === "date_repairstarted" && state.sortedInfo.order, + render: (text, record) => }, { 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) => ( - {record.date_repairstarted} - ), - }, + render: (text, record) => {record.date_repairstarted} + } ]; }; export default r;