From 4ef68a0e262c7dcabd0c5f5bf8a824686f6b6792 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Wed, 27 Jul 2022 10:00:57 -0700 Subject: [PATCH 1/3] IO-2001 Always expose production note. --- .../jobs-detail-header/jobs-detail-header.component.jsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx index e10257158..eeb81df52 100644 --- a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx +++ b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx @@ -129,11 +129,10 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) { )} - {(job.inproduction || jobInPostProduction) && ( - - - - )} + + + + {job.special_coverage_policy && ( From e379ecfba6cbb9955ea8d9cc28b0d0408aafed41 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Wed, 27 Jul 2022 13:09:33 -0700 Subject: [PATCH 2/3] IO-2002 Keep manual lines on supplement. --- ...jobs-available-supplement.estlines.util.js | 8 +++++--- .../jobs-detail-header.component.jsx | 20 +++++++------------ client/src/graphql/jobs-lines.queries.js | 1 + 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/client/src/components/jobs-available-table/jobs-available-supplement.estlines.util.js b/client/src/components/jobs-available-table/jobs-available-supplement.estlines.util.js index fea46d8d9..aa67589db 100644 --- a/client/src/components/jobs-available-table/jobs-available-supplement.estlines.util.js +++ b/client/src/components/jobs-available-table/jobs-available-supplement.estlines.util.js @@ -45,9 +45,11 @@ export const GetSupplementDelta = async (client, jobId, newLines) => { return acc + generateUpdateQuery(value, idx); }, ""); - const removeQueries = existingLines.reduce((acc, value, idx) => { - return acc + generateRemoveQuery(value, idx); - }, ""); + const removeQueries = existingLines + .filter((l) => !l.manual_line) + .reduce((acc, value, idx) => { + return acc + generateRemoveQuery(value, idx); + }, ""); console.log(insertQueries, updateQueries, removeQueries); if ((insertQueries + updateQueries + removeQueries).trim() === "") { diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx index eeb81df52..57905526e 100644 --- a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx +++ b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx @@ -1,10 +1,10 @@ -import { Card, Col, Row, Space, Tag } from "antd"; import { - WarningFilled, ExclamationCircleFilled, PauseCircleOutlined, + WarningFilled, } from "@ant-design/icons"; -import React, { useMemo } from "react"; +import { Card, Col, Row, Space, Tag } from "antd"; +import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link } from "react-router-dom"; @@ -13,17 +13,17 @@ import { selectJobReadOnly } from "../../redux/application/application.selectors import { setModalContext } from "../../redux/modals/modals.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; +import { DateTimeFormatter } from "../../utils/DateFormatter"; import ChatOpenButton from "../chat-open-button/chat-open-button.component"; import DataLabel from "../data-label/data-label.component"; import JobAltTransportChange from "../job-at-change/job-at-change.component"; import JobEmployeeAssignments from "../job-employee-assignments/job-employee-assignments.container"; -import ProductionListColumnProductionNote from "../production-list-columns/production-list-columns.productionnote.component"; -import "./jobs-detail-header.styles.scss"; import JobsRelatedRos from "../jobs-related-ros/jobs-related-ros.component"; -import { DateTimeFormatter } from "../../utils/DateFormatter"; -import ProductionListColumnComment from "../production-list-columns/production-list-columns.comment.component"; import { OwnerNameDisplayFunction } from "../owner-name-display/owner-name-display.component"; +import ProductionListColumnComment from "../production-list-columns/production-list-columns.comment.component"; +import ProductionListColumnProductionNote from "../production-list-columns/production-list-columns.productionnote.component"; import VehicleVinDisplay from "../vehicle-vin-display/vehicle-vin-display.component"; +import "./jobs-detail-header.styles.scss"; const mapStateToProps = createStructuredSelector({ jobRO: selectJobReadOnly, @@ -56,12 +56,6 @@ const colSpan = { export function JobsDetailHeader({ job, bodyshop, disabled }) { const { t } = useTranslation(); - const jobInPostProduction = useMemo(() => { - return bodyshop.md_ro_statuses.post_production_statuses.includes( - job.status - ); - }, [job.status, bodyshop.md_ro_statuses.post_production_statuses]); - const vehicleTitle = `${job.v_model_yr || ""} ${job.v_color || ""} ${job.v_make_desc || ""} ${job.v_model_desc || ""}`.trim(); diff --git a/client/src/graphql/jobs-lines.queries.js b/client/src/graphql/jobs-lines.queries.js index 48fdd8c3b..1600d5082 100644 --- a/client/src/graphql/jobs-lines.queries.js +++ b/client/src/graphql/jobs-lines.queries.js @@ -23,6 +23,7 @@ export const GET_ALL_JOBLINES_BY_PK = gql` notes location tax_part + manual_line } } `; From 9fec6bbe0c90b0c9f5c5e729d993e70754da0489 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Fri, 29 Jul 2022 10:37:48 -0700 Subject: [PATCH 3/3] IO-2004 Include adjustments made to new labor types. --- .../labor-allocations-table.utility.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/client/src/components/labor-allocations-table/labor-allocations-table.utility.js b/client/src/components/labor-allocations-table/labor-allocations-table.utility.js index 78d5aa2c6..02afcb107 100644 --- a/client/src/components/labor-allocations-table/labor-allocations-table.utility.js +++ b/client/src/components/labor-allocations-table/labor-allocations-table.utility.js @@ -6,12 +6,17 @@ export const CalculateAllocationsTotals = ( timetickets, adjustments = [] ) => { + console.log( + "🚀 ~ file: labor-allocations-table.utility.js ~ line 9 ~ adjustments", + adjustments + ); const responsibilitycenters = bodyshop.md_responsibility_centers; const jobCodes = joblines.map((item) => item.mod_lbr_ty); //.filter((value, index, self) => self.indexOf(value) === index && !!value); const ticketCodes = timetickets.map((item) => item.ciecacode); //.filter((value, index, self) => self.indexOf(value) === index && !!value); - const allCodes = [...jobCodes, ...ticketCodes].filter( + const adjustmentCodes = Object.keys(adjustments); + const allCodes = [...jobCodes, ...ticketCodes, ...adjustmentCodes].filter( (value, index, self) => self.indexOf(value) === index && !!value );