diff --git a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx
index 8073cc2f0..27dc0a1b0 100644
--- a/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx
+++ b/client/src/components/bill-enter-modal/bill-enter-modal.container.jsx
@@ -25,6 +25,7 @@ import BillFormContainer from "../bill-form/bill-form.container";
import { CalculateBillTotal } from "../bill-form/bill-form.totals.utility";
import { handleUpload as handleLocalUpload } from "../documents-local-upload/documents-local-upload.utility";
import { handleUpload } from "../documents-upload/documents-upload.utility";
+import { handleUpload as handleUploadToImageProxy } from "../documents-upload-imgproxy/documents-upload-imgproxy.utility";
const mapStateToProps = createStructuredSelector({
billEnterModal: selectBillEnterModal,
@@ -53,10 +54,10 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop,
const notification = useNotification();
const {
- treatments: { Enhanced_Payroll }
+ treatments: { Enhanced_Payroll, Imgproxy }
} = useSplitTreatments({
attributes: {},
- names: ["Enhanced_Payroll"],
+ names: ["Enhanced_Payroll", "Imgproxy"],
splitKey: bodyshop.imexshopid
});
@@ -298,20 +299,39 @@ function BillEnterModalContainer({ billEnterModal, toggleModalVisible, bodyshop,
});
});
} else {
- upload.forEach((u) => {
- handleUpload(
- { file: u.originFileObj },
- {
- bodyshop: bodyshop,
- uploaded_by: currentUser.email,
- jobId: values.jobid,
- billId: billId,
- tagsArray: null,
- callback: null
- },
- notification
- );
- });
+ //Check if using Imgproxy or cloudinary
+
+ if (Imgproxy.treatment === "on") {
+ upload.forEach((u) => {
+ handleUploadToImageProxy(
+ { file: u.originFileObj },
+ {
+ bodyshop: bodyshop,
+ uploaded_by: currentUser.email,
+ jobId: values.jobid,
+ billId: billId,
+ tagsArray: null,
+ callback: null
+ },
+ notification
+ );
+ });
+ } else {
+ upload.forEach((u) => {
+ handleUpload(
+ { file: u.originFileObj },
+ {
+ bodyshop: bodyshop,
+ uploaded_by: currentUser.email,
+ jobId: values.jobid,
+ billId: billId,
+ tagsArray: null,
+ callback: null
+ },
+ notification
+ );
+ });
+ }
}
}
///////////////////////////
diff --git a/client/src/components/scoreboard-display/scoreboard-display.component.jsx b/client/src/components/scoreboard-display/scoreboard-display.component.jsx
index 5a4e6fe72..3d8a2f98a 100644
--- a/client/src/components/scoreboard-display/scoreboard-display.component.jsx
+++ b/client/src/components/scoreboard-display/scoreboard-display.component.jsx
@@ -1,5 +1,5 @@
import { Col, Row } from "antd";
-import React, { useEffect } from "react";
+import { useEffect } from "react";
import ScoreboardChart from "../scoreboard-chart/scoreboard-chart.component";
import ScoreboardLastDays from "../scoreboard-last-days/scoreboard-last-days.component";
import ScoreboardTargetsTable from "../scoreboard-targets-table/scoreboard-targets-table.component";
@@ -26,18 +26,18 @@ export function ScoreboardDisplayComponent({ bodyshop }) {
start: dayjs().startOf("month"),
end: dayjs().endOf("month")
},
- pollInterval: 60000*5
+ pollInterval: 60000 * 5
});
const { data } = scoreboardSubscription;
const client = useApolloClient();
- const scoreBoardlist = (data && data.scoreboard) || [];
+ const scoreBoardlist = data?.scoreboard || [];
const sbEntriesByDate = {};
scoreBoardlist.forEach((i) => {
const entryDate = i.date;
- if (!!!sbEntriesByDate[entryDate]) {
+ if (!sbEntriesByDate[entryDate]) {
sbEntriesByDate[entryDate] = [];
}
sbEntriesByDate[entryDate].push(i);
@@ -58,10 +58,9 @@ export function ScoreboardDisplayComponent({ bodyshop }) {
});
appointments = data.appointments;
}
-
- dayjs.updateLocale("ca", {
+ dayjs.updateLocale(dayjs.locale(), {
workingWeekdays: translateSettingsToWorkingDays(bodyshop.workingdays),
- ...(appointments
+ ...(appointments?.length
? {
holidays: appointments.map((h) => dayjs(h.start).format("MM-DD-YYYY"))
}
@@ -78,11 +77,9 @@ export function ScoreboardDisplayComponent({ bodyshop }) {
-
-
diff --git a/client/src/components/shop-info/shop-info.general.component.jsx b/client/src/components/shop-info/shop-info.general.component.jsx
index 8d40f02d9..2a20e9549 100644
--- a/client/src/components/shop-info/shop-info.general.component.jsx
+++ b/client/src/components/shop-info/shop-info.general.component.jsx
@@ -14,6 +14,7 @@ import PhoneFormItem, { PhoneItemFormatterValidation } from "../form-items-forma
import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component";
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
+// eslint-disable-next-line no-undef
const timeZonesList = Intl.supportedValuesOf("timeZone");
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
@@ -143,236 +144,246 @@ export function ShopInfoGeneral({ form, bodyshop }) {
- null}>
-
-
-
-
- {InstanceRenderManager({
- imex: (
-
- {() => (
+
+ {HasFeatureAccess({ featureName: "export", bodyshop }) && (
+ <>
+
+
+
+ {InstanceRenderManager({
+ imex: (
+
+ {() => (
+
+
+
+ )}
+
+ )
+ })}
+
+
+
+
+
+ 2
+ 3
+
+
+
+ {() => {
+ return (
-
+
+ {t("bodyshop.labels.2tiername")}
+ {t("bodyshop.labels.2tiersource")}
+
- )}
-
- )
- })}
-
-
-
-
-
- 2
- 3
-
-
-
- {() => {
- return (
+ );
+ }}
+
+
+
+
+
+
+
+ >
+ )}
+
+
+
+
+
+
+ {InstanceRenderManager({
+ imex: (
+
+
+
+ )
+ })}
+
+
+
+ {HasFeatureAccess({ featureName: "bills", bodyshop }) && (
+ <>
+ {InstanceRenderManager({
+ imex: (
-
- {t("bodyshop.labels.2tiername")}
- {t("bodyshop.labels.2tiersource")}
-
+
- );
- }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {InstanceRenderManager({
- imex: (
-
+ )
+ })}
+
+
+
+
+
+
+ >
+ )}
+
+
+
+
+
+
+ {HasFeatureAccess({ featureName: "export", bodyshop }) && (
+ <>
+
+ {ReceivableCustomFieldSelect}
+
+
+ {ReceivableCustomFieldSelect}
+
+
+ {ReceivableCustomFieldSelect}
+
+ {
+ return {
+ required: getFieldValue("enforce_class"),
+ //message: t("general.validation.required"),
+ type: "array"
+ };
+ }
+ ]}
+ >
+
+
+
+
+
+ {ClosingPeriod.treatment === "on" && (
+
+
+
+ )}
+ {ADPPayroll.treatment === "on" && (
+
- )
- })}
-
-
-
- {InstanceRenderManager({
- imex: (
-
-
+ )}
+ {ADPPayroll.treatment === "on" && (
+
+
- )
- })}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {ReceivableCustomFieldSelect}
-
-
- {ReceivableCustomFieldSelect}
-
-
- {ReceivableCustomFieldSelect}
-
- {
- return {
- required: getFieldValue("enforce_class"),
- //message: t("general.validation.required"),
- type: "array"
- };
- }
- ]}
- >
-
-
- {ClosingPeriod.treatment === "on" && (
-
-
-
- )}
- {ADPPayroll.treatment === "on" && (
-
-
-
- )}
- {ADPPayroll.treatment === "on" && (
-
-
-
- )}
-
-
+ )}
+ >
+ )}
+
null}>
-
+ >
+ )}
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "ATS"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAA"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAB"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAD"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAE"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAF"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAG"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAM"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAR"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAS"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LAU"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LA1"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LA2"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LA3"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "LA4"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAA"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAC"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAG"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAL"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAM"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAN"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAO"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAP"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAR"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PAS"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "PASL"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "TOW"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "MAPA"]}
- >
-
-
- ({
- validator(rule, value) {
- if (costOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "costs", "MASH"]}
- >
-
-
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "ATS"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAA"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAB"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAD"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAE"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAF"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAG"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAM"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAR"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAS"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LAU"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LA1"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LA2"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LA3"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "LA4"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAA"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAC"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAG"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAL"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAM"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAN"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAO"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAP"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAR"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PAS"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "PASL"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "TOW"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "MAPA"]}
- >
-
-
- ({
- validator(rule, value) {
- if (profitOptions.includes(value)) {
- return Promise.resolve();
- }
- return Promise.reject(t("bodyshop.validation.centermustexist"));
- }
- })
- ]}
- name={["md_responsibility_centers", "defaults", "profits", "MASH"]}
- >
-
-
-
-
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "ATS"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAA"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAB"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAD"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAE"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAF"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAG"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAM"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAR"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAS"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LAU"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LA1"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LA2"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LA3"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "LA4"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAA"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAC"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAG"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAL"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAM"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAN"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAO"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAP"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAR"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PAS"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "PASL"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "TOW"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "MAPA"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (costOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "costs", "MASH"]}
+ >
+
+
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "ATS"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAA"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAB"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAD"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAE"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAF"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAG"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAM"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAR"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAS"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LAU"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LA1"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LA2"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LA3"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "LA4"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAA"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAC"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAG"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAL"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAM"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAN"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAO"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAP"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAR"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PAS"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "PASL"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "TOW"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "MAPA"]}
+ >
+
+
+ ({
+ validator(rule, value) {
+ if (profitOptions.includes(value)) {
+ return Promise.resolve();
+ }
+ return Promise.reject(t("bodyshop.validation.centermustexist"));
+ }
+ })
+ ]}
+ name={["md_responsibility_centers", "defaults", "profits", "MASH"]}
+ >
+
+
+
+
+ >
+ )}
)}
-
{InstanceRenderManager({
imex: (
@@ -4014,138 +4013,138 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
),
rome:
})}
-
- {InstanceRenderManager({
- rome: (
- <>
-
-
-
-
-
-
- >
- )
- })}
-
- {/**/}
- {/* */}
- {/* */}
- {/* */}
- {/* /!* */}
- {/* */}
- {/* */}
- {/* */}
- {/* */}
- {/* *!/*/}
- {/* */}
- {/* */}
- {/* */}
- {/* */}
- {/* */}
- {/* */}
- {/* {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (*/}
- {/* */}
- {/* */}
- {/* */}
- {/* )}*/}
- {/* */}
- {/* */}
- {/* */}
- {/**/}
- AR} id="AR">
- {/*
+ {InstanceRenderManager({
+ rome: (
+ <>
+
+
+
+
+
+
+ >
+ )
+ })}
+ {/**/}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* /!* */}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* *!/*/}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* {(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (*/}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/* )}*/}
+ {/* */}
+ {/* */}
+ {/* */}
+ {/**/}
+ AR} id="AR">
+ {/*
*/}
-
-
-
- {/*
+
+
+ {/*
*/}
-
-
- {DmsAp.treatment === "on" && (
-
- {/*
+ {DmsAp.treatment === "on" && (
+
+ {/*
*/}
- {/*
*/}
-
-
-
-
-
-
-
-
-
-
- )}
- Refund} id="refund">
- {/*
+
+
+
+
+
+
+
+
+
+ )}
+ Refund} id="refund">
+ {/*
*/}
- {/*
*/}
- {/*
*/}
-
-
-
-
-
- {InstanceRenderManager({
- rome: (
- Adjustments} id="refund">
- {bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber ? (
- <>
-
-
-
-
-
-
- >
- ) : (
- <>
-
-
-
-
-
-
- >
- )}
+
+
+
- )
- })}
-
- {Qb_Multi_Ar.treatment === "on" && (
- Multiple Payers Item} id="accountitem">
-
-
-
-
- )}
-
-
- {(fields, { add, remove }) => {
- return (
-
- {fields.map((field, index) => (
-
- 0 ? false : true}>
-
-
+ {InstanceRenderManager({
+ rome: (
+ Adjustments} id="refund">
+ {bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber ? (
+ <>
+
+
+
+
+
+
+ >
+ ) : (
+ <>
+
+
+
+
+
+
+ >
+ )}
+
+ )
+ })}
+ {Qb_Multi_Ar.treatment === "on" && (
+ Multiple Payers Item} id="accountitem">
+
+
+
+
+ )}
+
+
+ {(fields, { add, remove }) => {
+ return (
+
+ {fields.map((field, index) => (
+
+ 0 ? false : true}>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ remove(field.name);
+ }}
+ />
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
- );
- }}
-
-
+ style={{ width: "100%" }}
+ >
+ {t("bodyshop.actions.newsalestaxcode")}
+
+
+
+ );
+ }}
+
+
+ >
+ )}
);
}
diff --git a/client/src/pages/scoreboard/scoreboard.page.container.jsx b/client/src/pages/scoreboard/scoreboard.page.container.jsx
index 7e15cae75..1378bdee6 100644
--- a/client/src/pages/scoreboard/scoreboard.page.container.jsx
+++ b/client/src/pages/scoreboard/scoreboard.page.container.jsx
@@ -1,7 +1,7 @@
import Icon, { FieldTimeOutlined } from "@ant-design/icons";
import { Card, Tabs } from "antd";
import queryString from "query-string";
-import React, { useEffect } from "react";
+import { useEffect } from "react";
import { useTranslation } from "react-i18next";
import { FaShieldAlt } from "react-icons/fa";
import { connect } from "react-redux";
@@ -78,7 +78,7 @@ export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) {
{
searchParams.tab = key;
history({
diff --git a/server/job/job-totals-USA.js b/server/job/job-totals-USA.js
index 5dc0d6740..2f694b65c 100644
--- a/server/job/job-totals-USA.js
+++ b/server/job/job-totals-USA.js
@@ -381,7 +381,7 @@ async function CalculateRatesTotals({ job, client }) {
if (item.mod_lbr_ty) {
//Check to see if it has 0 hours and a price instead.
- if (item.mod_lb_hrs === 0 && item.act_price > 0 && item.lbr_op === "OP14") {
+ if (item.lbr_op === "OP14" && item.act_price > 0 && (!item.part_type || item.mod_lb_hrs === 0)) {
//Scenario where SGI may pay out hours using a part price.
if (!ret[item.mod_lbr_ty.toLowerCase()].total) {
ret[item.mod_lbr_ty.toLowerCase()].total = Dinero();
diff --git a/server/job/job-totals.js b/server/job/job-totals.js
index d370b57df..5f28ac067 100644
--- a/server/job/job-totals.js
+++ b/server/job/job-totals.js
@@ -314,7 +314,8 @@ function CalculateRatesTotals(ratesList) {
if (item.mod_lbr_ty) {
//Check to see if it has 0 hours and a price instead.
- if (item.mod_lb_hrs === 0 && item.act_price > 0 && item.lbr_op === "OP14") {
+ //Extend for when there are hours and a price.
+ if (item.lbr_op === "OP14" && item.act_price > 0 && (!item.part_type || item.mod_lb_hrs === 0)) {
//Scenario where SGI may pay out hours using a part price.
if (!ret[item.mod_lbr_ty.toLowerCase()].total) {
ret[item.mod_lbr_ty.toLowerCase()].total = Dinero();