diff --git a/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx b/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx
index fe6844503..c2ea5b348 100644
--- a/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx
+++ b/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx
@@ -3,6 +3,7 @@ import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
+import { selectJobReadOnly } from "../../redux/application/application.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
import LaborTypeFormItem from "../form-items-formatted/labor-type-form-item.component";
import PartTypeFormItem from "../form-items-formatted/part-type-form-item.component";
@@ -11,12 +12,13 @@ import "./jobs-close-lines.styles.scss";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
+ jobRO: selectJobReadOnly,
});
const mapDispatchToProps = (dispatch) => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
});
-export function JobsCloseLines({ bodyshop, job }) {
+export function JobsCloseLines({ bodyshop, job, jobRO }) {
const { t } = useTranslation();
return (
@@ -114,6 +116,7 @@ export function JobsCloseLines({ bodyshop, job }) {
allowClear
optionFilterProp="children"
showSearch
+ disabled={jobRO}
filterOption={(input, option) =>
option.children
.toLowerCase()
@@ -146,6 +149,7 @@ export function JobsCloseLines({ bodyshop, job }) {
allowClear
optionFilterProp="children"
showSearch
+ disabled={jobRO}
filterOption={(input, option) =>
option.children
.toLowerCase()
diff --git a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
index ea66f70ee..baa0d7dbe 100644
--- a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
+++ b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
@@ -240,11 +240,8 @@ export function JobsDetailHeaderActions({
>
{t("jobs.actions.addtopartsqueue")}
-
- {!!job.date_invoiced || !jobInPostProduction || jobRO ? (
+
+ {!jobInPostProduction ? (
t("menus.jobsactions.closejob")
) : (
)}
-
- {!!job.date_invoiced || jobRO ? (
- t("menus.jobsactions.admin")
- ) : (
-
- {t("menus.jobsactions.admin")}
-
- )}
+
+
+ {t("menus.jobsactions.admin")}
+
+
diff --git a/client/src/pages/jobs-close/jobs-close.component.jsx b/client/src/pages/jobs-close/jobs-close.component.jsx
index bbb016cf6..7163032a2 100644
--- a/client/src/pages/jobs-close/jobs-close.component.jsx
+++ b/client/src/pages/jobs-close/jobs-close.component.jsx
@@ -12,12 +12,14 @@ import JobsCloseExportButton from "../../components/jobs-close-export-button/job
import JobsCloseLines from "../../components/jobs-close-lines/jobs-close-lines.component";
import { generateJobLinesUpdatesForInvoicing } from "../../graphql/jobs-lines.queries";
import { UPDATE_JOB } from "../../graphql/jobs.queries";
+import { selectJobReadOnly } from "../../redux/application/application.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
+ jobRO: selectJobReadOnly,
});
-export function JobsCloseComponent({ job, bodyshop }) {
+export function JobsCloseComponent({ job, bodyshop, jobRO }) {
const { t } = useTranslation();
const [form] = Form.useForm();
const client = useApolloClient();
@@ -86,26 +88,31 @@ export function JobsCloseComponent({ job, bodyshop }) {
-