Removed references to allocations objects. Added new fields to job for employee assignment + created new component. BOD-100

This commit is contained in:
Patrick Fic
2020-07-16 13:59:27 -07:00
parent bbc0359e3a
commit fbb7bbad15
37 changed files with 2127 additions and 55 deletions

View File

@@ -0,0 +1,70 @@
import { useMutation } from "@apollo/react-hooks";
import { notification } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import { UPDATE_JOB } from "../../graphql/jobs.queries";
import JobEmployeeAssignmentsComponent from "./job-employee-assignments.component";
export default function JobEmployeeAssignmentsContainer({ job }) {
const { t } = useTranslation();
const [updateJob] = useMutation(UPDATE_JOB);
const handleAdd = async (assignment) => {
const { operation, employeeid } = assignment;
let empAssignment = determineFieldName(operation);
const result = await updateJob({
variables: { jobId: job.id, job: { [empAssignment]: employeeid } },
refetchQueries: ["GET_JOB_BY_PK"],
awaitRefetchQueries: true,
});
if (!!result.errors) {
notification["error"]({
message: t("jobs.errors.assigning", {
message: JSON.stringify(result.errors),
}),
});
}
};
const handleRemove = async (operation) => {
console.log("handleRemove -> operation", operation);
let empAssignment = determineFieldName(operation);
const result = await updateJob({
variables: { jobId: job.id, job: { [empAssignment]: null } },
refetchQueries: ["GET_JOB_BY_PK"],
awaitRefetchQueries: true,
});
if (!!result.errors) {
notification["error"]({
message: t("jobs.errors.assigning", {
message: JSON.stringify(result.errors),
}),
});
}
};
return (
<div>
<JobEmployeeAssignmentsComponent
body={job.employee_body_rel}
refinish={job.employee_refinish_rel}
handleAdd={handleAdd}
handleRemove={handleRemove}
/>
</div>
);
}
const determineFieldName = (operation) => {
switch (operation) {
case "body":
return "employee_body";
break;
case "refinish":
return "employee_refinish";
break;
}
};