diff --git a/client/src/components/jobs-admin-change-status/jobs-admin-change.status.component.jsx b/client/src/components/jobs-admin-change-status/jobs-admin-change.status.component.jsx
index edef81343..54a020d37 100644
--- a/client/src/components/jobs-admin-change-status/jobs-admin-change.status.component.jsx
+++ b/client/src/components/jobs-admin-change-status/jobs-admin-change.status.component.jsx
@@ -53,12 +53,14 @@ export function JobsAdminStatus({ insertAuditTrail, bodyshop, job }) {
);
return (
-
-
+
+ >
);
}
diff --git a/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx b/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx
index 190778437..ec1bd976b 100644
--- a/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx
+++ b/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx
@@ -1,34 +1,18 @@
import { useMutation } from "@apollo/client";
-import { Button, notification } from "antd";
-import { gql } from "@apollo/client";
+import { Button, Space, notification } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
+import {
+ DELETE_DELIVERY_CHECKLIST,
+ DELETE_INTAKE_CHECKLIST,
+} from "../../graphql/jobs.queries";
+
export default function JobAdminDeleteIntake({ job }) {
const { t } = useTranslation();
const [loading, setLoading] = useState(false);
- const [deleteIntake] = useMutation(gql`
- mutation DELETE_INTAKE($jobId: uuid!) {
- update_jobs_by_pk(
- pk_columns: { id: $jobId }
- _set: { intakechecklist: null }
- ) {
- id
- intakechecklist
- }
- }
- `);
- const [DELETE_DELIVERY] = useMutation(gql`
- mutation DELETE_DELIVERY($jobId: uuid!) {
- update_jobs_by_pk(
- pk_columns: { id: $jobId }
- _set: { deliverchecklist: null }
- ) {
- id
- deliverchecklist
- }
- }
- `);
+ const [deleteIntake] = useMutation(DELETE_INTAKE_CHECKLIST);
+ const [deleteDelivery] = useMutation(DELETE_DELIVERY_CHECKLIST);
const handleDelete = async (values) => {
setLoading(true);
@@ -50,7 +34,7 @@ export default function JobAdminDeleteIntake({ job }) {
const handleDeleteDelivery = async (values) => {
setLoading(true);
- const result = await DELETE_DELIVERY({
+ const result = await deleteDelivery({
variables: { jobId: job.id },
});
@@ -68,12 +52,22 @@ export default function JobAdminDeleteIntake({ job }) {
return (
<>
-
- {t("jobs.labels.deleteintake")}
-
-
- {t("jobs.labels.deletedelivery")}
-
+
+
+ {t("jobs.labels.deleteintake")}
+
+
+ {t("jobs.labels.deletedelivery")}
+
+
>
);
}
diff --git a/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx b/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx
index c47c30def..ae193fa72 100644
--- a/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx
+++ b/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx
@@ -1,5 +1,5 @@
-import { gql, useMutation } from "@apollo/client";
-import { Button, notification } from "antd";
+import { useMutation } from "@apollo/client";
+import { Button, Space, notification } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
@@ -7,6 +7,11 @@ import moment from "moment";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { INSERT_EXPORT_LOG } from "../../graphql/accounting.queries";
+import {
+ MARK_JOB_AS_EXPORTED,
+ MARK_JOB_AS_UNINVOICED,
+ MARK_JOB_FOR_REEXPORT,
+} from "../../graphql/jobs.queries";
import { insertAuditTrail } from "../../redux/application/application.actions";
import {
selectBodyshop,
@@ -35,58 +40,18 @@ export function JobAdminMarkReexport({
const { t } = useTranslation();
const [loading, setLoading] = useState(false);
const [insertExportLog] = useMutation(INSERT_EXPORT_LOG);
- const [markJobForReexport] = useMutation(gql`
- mutation MARK_JOB_FOR_REEXPORT($jobId: uuid!) {
- update_jobs_by_pk(
- pk_columns: { id: $jobId }
- _set: { date_exported: null
- status: "${bodyshop.md_ro_statuses.default_invoiced}"
- }
- ) {
- id
- date_exported
- status
- date_invoiced
- }
- }
- `);
- const [markJobExported] = useMutation(gql`
- mutation MARK_JOB_AS_EXPORTED($jobId: uuid!, $date_exported: timestamptz!) {
- update_jobs_by_pk(
- pk_columns: { id: $jobId }
- _set: { date_exported: $date_exported
- status: "${bodyshop.md_ro_statuses.default_exported}"
- }
- ) {
- id
- date_exported
- date_invoiced
- status
- }
- }
- `);
- const [markJobUninvoiced] = useMutation(gql`
- mutation MARK_JOB_AS_UNINVOICED($jobId: uuid!, ) {
- update_jobs_by_pk(
- pk_columns: { id: $jobId }
- _set: { date_exported: null
- date_invoiced: null
- status: "${bodyshop.md_ro_statuses.default_delivered}"
- }
- ) {
- id
- date_exported
- date_invoiced
- status
- }
- }
- `);
+ const [markJobForReexport] = useMutation(MARK_JOB_FOR_REEXPORT);
+ const [markJobExported] = useMutation(MARK_JOB_AS_EXPORTED);
+ const [markJobUninvoiced] = useMutation(MARK_JOB_AS_UNINVOICED);
const handleMarkForExport = async () => {
setLoading(true);
const result = await markJobForReexport({
- variables: { jobId: job.id },
+ variables: {
+ jobId: job.id,
+ default_invoiced: bodyshop.md_ro_statuses.default_invoiced,
+ },
});
if (!result.errors) {
@@ -108,7 +73,11 @@ export function JobAdminMarkReexport({
const handleMarkExported = async () => {
setLoading(true);
const result = await markJobExported({
- variables: { jobId: job.id, date_exported: moment() },
+ variables: {
+ jobId: job.id,
+ date_exported: moment(),
+ default_exported: bodyshop.md_ro_statuses.default_exported,
+ },
});
await insertExportLog({
@@ -144,7 +113,10 @@ export function JobAdminMarkReexport({
const handleUninvoice = async () => {
setLoading(true);
const result = await markJobUninvoiced({
- variables: { jobId: job.id },
+ variables: {
+ jobId: job.id,
+ default_delivered: bodyshop.md_ro_statuses.default_delivered,
+ },
});
if (!result.errors) {
@@ -165,27 +137,29 @@ export function JobAdminMarkReexport({
return (
<>
-
- {t("jobs.labels.markforreexport")}
-
-
- {t("jobs.actions.markasexported")}
-
-
- {t("jobs.actions.uninvoice")}
-
+
+
+ {t("jobs.labels.markforreexport")}
+
+
+ {t("jobs.actions.markasexported")}
+
+
+ {t("jobs.actions.uninvoice")}
+
+
>
);
}
diff --git a/client/src/components/jobs-admin-remove-ar/jobs-admin-remove-ar.component.jsx b/client/src/components/jobs-admin-remove-ar/jobs-admin-remove-ar.component.jsx
index c85404f48..f1bda15ce 100644
--- a/client/src/components/jobs-admin-remove-ar/jobs-admin-remove-ar.component.jsx
+++ b/client/src/components/jobs-admin-remove-ar/jobs-admin-remove-ar.component.jsx
@@ -1,9 +1,10 @@
-import { gql, useMutation } from "@apollo/client";
-import { Form, Switch, notification } from "antd";
+import { useMutation } from "@apollo/client";
+import { Switch, notification } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
+import { UPDATE_REMOVE_FROM_AR } from "../../graphql/jobs.queries";
import { insertAuditTrail } from "../../redux/application/application.actions";
import AuditTrailMapping from "../../utils/AuditTrailMappings";
@@ -20,21 +21,11 @@ export function JobsAdminRemoveAR({ insertAuditTrail, job }) {
const [loading, setLoading] = useState(false);
const [switchValue, setSwitchValue] = useState(job.remove_from_ar);
- const [updateJob] = useMutation(gql`
- mutation REMOVE_FROM_AR_JOB($jobId: uuid!, $remove_from_ar: Boolean!) {
- update_jobs_by_pk(
- pk_columns: { id: $jobId }
- _set: { remove_from_ar: $remove_from_ar }
- ) {
- id
- remove_from_ar
- }
- }
- `);
+ const [mutationUpdateRemoveFromAR] = useMutation(UPDATE_REMOVE_FROM_AR);
const handleChange = async (value) => {
setLoading(true);
- const result = await updateJob({
+ const result = await mutationUpdateRemoveFromAR({
variables: { jobId: job.id, remove_from_ar: value },
});
@@ -56,8 +47,19 @@ export function JobsAdminRemoveAR({ insertAuditTrail, job }) {
};
return (
-
-
-
+ <>
+
+
+ {t("jobs.labels.remove_from_ar")}:
+
+
+
+
+
+ >
);
}
diff --git a/client/src/components/jobs-admin-unvoid/jobs-admin-unvoid.component.jsx b/client/src/components/jobs-admin-unvoid/jobs-admin-unvoid.component.jsx
index 7963fd05f..2094178c4 100644
--- a/client/src/components/jobs-admin-unvoid/jobs-admin-unvoid.component.jsx
+++ b/client/src/components/jobs-admin-unvoid/jobs-admin-unvoid.component.jsx
@@ -1,9 +1,10 @@
-import { gql, useMutation } from "@apollo/client";
+import { useMutation } from "@apollo/client";
import { Button, notification } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
+import { UNVOID_JOB } from "../../graphql/jobs.queries";
import { insertAuditTrail } from "../../redux/application/application.actions";
import {
selectBodyshop,
@@ -29,66 +30,17 @@ export function JobsAdminUnvoid({
}) {
const { t } = useTranslation();
const [loading, setLoading] = useState(false);
- const [updateJob] = useMutation(gql`
-mutation UNVOID_JOB($jobId: uuid!) {
- update_jobs_by_pk(pk_columns: {id: $jobId}, _set: {voided: false, status: "${
- bodyshop.md_ro_statuses.default_imported
- }", date_void: null}) {
- id
- date_void
- voided
- status
- }
- insert_notes(objects: {jobid: $jobId, audit: true, created_by: "${
- currentUser.email
- }", text: "${t("jobs.labels.unvoidnote")}"}) {
- returning {
- id
- }
- }
-}
-
- `);
-
- // const result = await voidJob({
- // variables: {
- // jobId: job.id,
- // job: {
- // status: bodyshop.md_ro_statuses.default_void,
- // voided: true,
- // },
- // note: [
- // {
- // jobid: job.id,
- // created_by: currentUser.email,
- // audit: true,
- // text: t("jobs.labels.voidnote", {
- // date: moment().format("MM/DD/yyy"),
- // time: moment().format("hh:mm a"),
- // }),
- // },
- // ],
- // },
- // });
-
- // if (!!!result.errors) {
- // notification["success"]({
- // message: t("jobs.successes.voided"),
- // });
- // //go back to jobs list.
- // history.push(`/manage/`);
- // } else {
- // notification["error"]({
- // message: t("jobs.errors.voiding", {
- // error: JSON.stringify(result.errors),
- // }),
- // });
- // }
+ const [mutationUnvoidJob] = useMutation(UNVOID_JOB);
const handleUpdate = async (values) => {
setLoading(true);
- const result = await updateJob({
- variables: { jobId: job.id },
+ const result = await mutationUnvoidJob({
+ variables: {
+ jobId: job.id,
+ default_imported: bodyshop.md_ro_statuses.default_imported,
+ currentUserEmail: currentUser.email,
+ text: t("jobs.labels.unvoidnote"),
+ },
});
if (!result.errors) {
@@ -110,8 +62,10 @@ mutation UNVOID_JOB($jobId: uuid!) {
};
return (
-
- {t("jobs.actions.unvoid")}
-
+ <>
+
+ {t("jobs.actions.unvoid")}
+
+ >
);
}
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index adfc42765..57bb935f8 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -2221,3 +2221,120 @@ export const GET_JOB_LINE_ORDERS = gql`
}
}
`;
+
+export const UPDATE_REMOVE_FROM_AR = gql`
+ mutation UPDATE_REMOVE_FROM_AR($jobId: uuid!, $remove_from_ar: Boolean!) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: { remove_from_ar: $remove_from_ar }
+ ) {
+ id
+ remove_from_ar
+ }
+ }
+`;
+
+export const UNVOID_JOB = gql`
+ mutation UNVOID_JOB(
+ $jobId: uuid!
+ $default_imported: String!
+ $currentUserEmail: String!
+ $text: String!
+ ) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: { voided: false, status: $default_imported, date_void: null }
+ ) {
+ id
+ date_void
+ voided
+ status
+ }
+ insert_notes(
+ objects: {
+ jobid: $jobId
+ audit: true
+ created_by: $currentUserEmail
+ text: $text
+ }
+ ) {
+ returning {
+ id
+ }
+ }
+ }
+`;
+
+export const DELETE_INTAKE_CHECKLIST = gql`
+ mutation DELETE_INTAKE($jobId: uuid!) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: { intakechecklist: null }
+ ) {
+ id
+ intakechecklist
+ }
+ }
+`;
+
+export const DELETE_DELIVERY_CHECKLIST = gql`
+ mutation DELETE_DELIVERY($jobId: uuid!) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: { deliverchecklist: null }
+ ) {
+ id
+ deliverchecklist
+ }
+ }
+`;
+
+export const MARK_JOB_FOR_REEXPORT = gql`
+ mutation MARK_JOB_FOR_REEXPORT($jobId: uuid!, $default_invoiced: String!) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: { date_exported: null, status: $default_invoiced }
+ ) {
+ id
+ date_exported
+ status
+ date_invoiced
+ }
+ }
+`;
+
+export const MARK_JOB_AS_EXPORTED = gql`
+ mutation MARK_JOB_AS_EXPORTED(
+ $jobId: uuid!
+ $date_exported: timestamptz!
+ $default_exported: String!
+ ) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: { date_exported: $date_exported, status: $default_exported }
+ ) {
+ id
+ date_exported
+ date_invoiced
+ status
+ }
+ }
+`;
+
+export const MARK_JOB_AS_UNINVOICED = gql`
+ mutation MARK_JOB_AS_UNINVOICED($jobId: uuid!, $default_delivered: String!) {
+ update_jobs_by_pk(
+ pk_columns: { id: $jobId }
+ _set: {
+ date_exported: null
+ date_invoiced: null
+ status: $default_delivered
+ }
+ ) {
+ id
+ date_exported
+ date_invoiced
+ status
+ }
+ }
+`;