diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel
index f292acf4f..8de0a69f7 100644
--- a/bodyshop_translations.babel
+++ b/bodyshop_translations.babel
@@ -25469,6 +25469,27 @@
+
+ invoicedatefuture
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
kmoutnotgreaterthankmin
false
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index 999d56224..8f927d4ff 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -1878,6 +1878,7 @@ export const QUERY_JOB_CLOSE_DETAILS = gql`
scheduled_delivery
actual_delivery
scheduled_in
+ date_invoiced
actual_in
kmin
kmout
diff --git a/client/src/pages/jobs-close/jobs-close.component.jsx b/client/src/pages/jobs-close/jobs-close.component.jsx
index 71d961c99..697211ee6 100644
--- a/client/src/pages/jobs-close/jobs-close.component.jsx
+++ b/client/src/pages/jobs-close/jobs-close.component.jsx
@@ -56,7 +56,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO }) {
jobId: job.id,
job: {
status: bodyshop.md_ro_statuses.default_invoiced || "",
- date_invoiced: new Date(),
+ date_invoiced: values.date_invoiced,
actual_in: values.actual_in,
actual_completion: values.actual_completion,
actual_delivery: values.actual_delivery,
@@ -119,6 +119,9 @@ export function JobsCloseComponent({ job, bodyshop, jobRO }) {
actual_delivery: job.actual_delivery
? moment(job.actual_delivery)
: job.scheduled_delivery && moment(job.scheduled_delivery),
+ date_invoiced: job.date_invoiced
+ ? moment(job.date_invoiced)
+ : moment(),
kmin: job.kmin,
kmout: job.kmout,
dms_allocation: job.dms_allocation,
@@ -219,6 +222,32 @@ export function JobsCloseComponent({ job, bodyshop, jobRO }) {
>
+ ({
+ validator(_, value) {
+ if (!bodyshop.cdk_dealerid) return Promise.resolve();
+ if (!value || moment(value).isSameOrAfter(moment(), "day")) {
+ return Promise.resolve();
+ }
+
+ return Promise.reject(
+ new Error(t("jobs.labels.dms.invoicedatefuture"))
+ );
+ },
+ }),
+ ]}
+ >
+
+
{(bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber) && (