diff --git a/client/src/components/jobs-available-table/jobs-available-table.container.jsx b/client/src/components/jobs-available-table/jobs-available-table.container.jsx
index 0e74276b2..12d10baf9 100644
--- a/client/src/components/jobs-available-table/jobs-available-table.container.jsx
+++ b/client/src/components/jobs-available-table/jobs-available-table.container.jsx
@@ -73,6 +73,8 @@ export function JobsAvailableContainer({
const [selectedJob, setSelectedJob] = useState(null);
const [selectedOwner, setSelectedOwner] = useState(null);
+ const [partsQueueToggle, setPartsQueueToggle] = useState(bodyshop.md_functionality_toggles.parts_queue_toggle);
+
const [insertLoading, setInsertLoading] = useState(false);
const [insertNote] = useMutation(INSERT_NEW_NOTE);
@@ -94,6 +96,7 @@ export function JobsAvailableContainer({
logImEXEvent("job_import_new");
setOwnerModalVisible(false);
+
setInsertLoading(true);
const estData = replaceEmpty(estDataRaw.data.available_jobs_by_pk);
@@ -120,7 +123,7 @@ export function JobsAvailableContainer({
let existingVehicles;
if (estData.est_data.v_vin) {
- //There's vehicle data, need to double check the VIN.
+ //There's vehicle data, need to double-check the VIN.
existingVehicles = await client.query({
query: SEARCH_VEHICLE_BY_VIN,
variables: {
@@ -143,7 +146,7 @@ export function JobsAvailableContainer({
text: t("jobs.labels.importnote"),
},
},
- queued_for_parts: true,
+ queued_for_parts: partsQueueToggle,
...(existingVehicles && existingVehicles.data.vehicles.length > 0
? { vehicleid: existingVehicles.data.vehicles[0].id, vehicle: null }
: {}),
@@ -157,46 +160,51 @@ export function JobsAvailableContainer({
delete newJob.vehicle;
}
- insertNewJob({
- variables: {
- job: newJob,
- },
- })
- .then((r) => {
- if (CriticalPartsScanning.treatment === "on") {
- CriticalPartsScan(r.data.insert_jobs.returning[0].id);
- }
- notification["success"]({
- message: t("jobs.successes.created"),
- onClick: () => {
- history.push(`/manage/jobs/${r.data.insert_jobs.returning[0].id}`);
- },
- });
- //Job has been inserted. Clean up the available jobs record.
+ try {
+ const r = await insertNewJob({
+ variables: {
+ job: newJob,
+ },
+ });
- insertAuditTrail({
- jobid: r.data.insert_jobs.returning[0].id,
- operation: AuditTrailMapping.jobimported(),
- });
+ if (CriticalPartsScanning.treatment === "on") {
+ CriticalPartsScan(r.data.insert_jobs.returning[0].id);
+ }
- deleteJob({
- variables: { id: estData.id },
- }).then((r) => {
- refetch();
- setInsertLoading(false);
- });
- })
- .catch((r) => {
- //error while inserting
- notification["error"]({
- message: t("jobs.errors.creating", { error: r.message }),
- });
+ notification["success"]({
+ message: t("jobs.successes.created"),
+ onClick: () => {
+ history.push(`/manage/jobs/${r.data.insert_jobs.returning[0].id}`);
+ },
+ });
+ //Job has been inserted. Clean up the available jobs record.
+
+ insertAuditTrail({
+ jobid: r.data.insert_jobs.returning[0].id,
+ operation: AuditTrailMapping.jobimported(),
+ });
+
+ deleteJob({
+ variables: { id: estData.id },
+ }).then((r) => {
refetch();
setInsertLoading(false);
});
+
+ setPartsQueueToggle(bodyshop.md_functionality_toggles.parts_queue_toggle);
+ } catch (err) {
+ //error while inserting
+ notification["error"]({
+ message: t("jobs.errors.creating", { error: err.message }),
+ });
+ refetch().catch(e => {console.error(`Something went wrong in jobs available table container - ${err.message || ''}`)});
+ setInsertLoading(false);
+ setPartsQueueToggle(bodyshop.md_functionality_toggles.parts_queue_toggle);
+ }
+
};
- //Suplement scenario
+ //Supplement scenario
const onJobFindModalOk = async () => {
logImEXEvent("job_import_supplement");
@@ -248,11 +256,14 @@ export function JobsAvailableContainer({
// "0.00"
// ),
// job_totals: newTotals,
- // queued_for_parts: true,
+ queued_for_parts: partsQueueToggle,
},
},
});
- if (CriticalPartsScanning.treatment === "on") {
+
+ setPartsQueueToggle(bodyshop.md_functionality_toggles.parts_queue_toggle);
+
+ if (CriticalPartsScanning.treatment === "on") {
CriticalPartsScan(updateResult.data.update_jobs.returning[0].id);
}
if (updateResult.errors) {
@@ -327,12 +338,14 @@ export function JobsAvailableContainer({
const onOwnerModalCancel = () => {
setOwnerModalVisible(false);
setSelectedOwner(null);
+ setPartsQueueToggle(bodyshop.md_functionality_toggles.parts_queue_toggle);
};
const onJobModalCancel = () => {
setJobModalVisible(false);
modalSearchState[1]("");
setSelectedJob(null);
+ setPartsQueueToggle(bodyshop.md_functionality_toggles.parts_queue_toggle);
};
const addJobAsNew = (record) => {
@@ -353,6 +366,8 @@ export function JobsAvailableContainer({
}, [addJobAsSupp, availableJobId, clm_no]);
if (error) return ;
+
+
return (
diff --git a/client/src/components/jobs-find-modal/jobs-find-modal.component.jsx b/client/src/components/jobs-find-modal/jobs-find-modal.component.jsx
index 330c0e5db..37a88e1ef 100644
--- a/client/src/components/jobs-find-modal/jobs-find-modal.component.jsx
+++ b/client/src/components/jobs-find-modal/jobs-find-modal.component.jsx
@@ -14,6 +14,8 @@ export default function JobsFindModalComponent({
importOptionsState,
modalSearchState,
jobsListRefetch,
+ partsQueueToggle,
+ setPartsQueueToggle,
}) {
const { t } = useTranslation();
const [modalSearch, setModalSearch] = modalSearchState;
@@ -199,6 +201,12 @@ export default function JobsFindModalComponent({
>
{t("jobs.labels.override_header")}
+ setPartsQueueToggle(e.target.checked)}
+ >
+ {t("bodyshop.fields.md_functionality_toggles.parts_queue_toggle")}
+
);
}
diff --git a/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx b/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx
index 7bb3591cb..64dc8be9a 100644
--- a/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx
+++ b/client/src/components/jobs-find-modal/jobs-find-modal.container.jsx
@@ -24,6 +24,8 @@ export default connect(
setSelectedJob,
importOptionsState,
modalSearchState,
+ partsQueueToggle,
+ setPartsQueueToggle,
...modalProps
}) {
const { t } = useTranslation();
@@ -91,6 +93,8 @@ export default connect(
jobsListRefetch={jobsList.refetch}
jobsList={jobsData}
modalSearchState={modalSearchState}
+ partsQueueToggle={partsQueueToggle}
+ setPartsQueueToggle={setPartsQueueToggle}
/>
) : null}
diff --git a/client/src/components/owner-find-modal/owner-find-modal.component.jsx b/client/src/components/owner-find-modal/owner-find-modal.component.jsx
index 177b4326e..3a5f313cd 100644
--- a/client/src/components/owner-find-modal/owner-find-modal.component.jsx
+++ b/client/src/components/owner-find-modal/owner-find-modal.component.jsx
@@ -8,10 +8,11 @@ export default function OwnerFindModalComponent({
setSelectedOwner,
ownersListLoading,
ownersList,
+ partsQueueToggle,
+ setPartsQueueToggle,
}) {
//setSelectedOwner is used to set the record id of the owner to use for adding the job.
const { t } = useTranslation();
-
const columns = [
{
title: t("owners.fields.ownr_ln"),
@@ -109,6 +110,12 @@ export default function OwnerFindModalComponent({
>
{t("owners.labels.create_new")}
+ setPartsQueueToggle(e.target.checked)}
+ >
+ {t("bodyshop.fields.md_functionality_toggles.parts_queue_toggle")}
+
);
}
diff --git a/client/src/components/owner-find-modal/owner-find-modal.container.jsx b/client/src/components/owner-find-modal/owner-find-modal.container.jsx
index 9f1397ba1..f6c9453d7 100644
--- a/client/src/components/owner-find-modal/owner-find-modal.container.jsx
+++ b/client/src/components/owner-find-modal/owner-find-modal.container.jsx
@@ -14,6 +14,8 @@ export default function OwnerFindModalContainer({
owner,
selectedOwner,
setSelectedOwner,
+ partsQueueToggle,
+ setPartsQueueToggle,
...modalProps
}) {
//use owner object to run query and find what possible owners there are.
@@ -59,6 +61,8 @@ export default function OwnerFindModalContainer({
selectedOwner={selectedOwner}
setSelectedOwner={setSelectedOwner}
ownersListLoading={ownersList.loading}
+ partsQueueToggle={partsQueueToggle}
+ setPartsQueueToggle={setPartsQueueToggle}
ownersList={
ownersList.data && ownersList.data.search_owners
? ownersList.data.search_owners
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 ebf2accaf..73861abc4 100644
--- a/client/src/components/shop-info/shop-info.general.component.jsx
+++ b/client/src/components/shop-info/shop-info.general.component.jsx
@@ -42,12 +42,20 @@ export function ShopInfoGeneral({ form, bodyshop }) {
bodyshop && bodyshop.imexshopid
);
+
return (
+
+
+