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