IO-995 Update CSR to be a relationship.

This commit is contained in:
Patrick Fic
2021-05-06 15:29:50 -07:00
parent 121e7b3048
commit 9d1164496d
33 changed files with 1808 additions and 48 deletions

View File

@@ -23,7 +23,9 @@ export function JobEmployeeAssignments({
jobRO,
body,
refinish,
prep,
csr,
handleAdd,
handleRemove,
loading,
@@ -155,6 +157,30 @@ export function JobEmployeeAssignments({
/>
)}
</DataLabel>
<DataLabel label={t("jobs.fields.employee_csr")}>
{csr ? (
<div>
<span>{`${csr.first_name || ""} ${csr.last_name || ""}`}</span>
<DeleteFilled
disabled={jobRO}
style={iconStyle}
operation="csr"
onClick={() => !jobRO && handleRemove("csr")}
/>
</div>
) : (
<PlusCircleFilled
disabled={jobRO}
style={iconStyle}
onClick={() => {
if (!jobRO) {
setAssignment({ operation: "csr" });
setVisibility(true);
}
}}
/>
)}
</DataLabel>
</Spin>
</Popover>
);

View File

@@ -61,6 +61,7 @@ export default function JobEmployeeAssignmentsContainer({ job, refetch }) {
body={job.employee_body_rel}
refinish={job.employee_refinish_rel}
prep={job.employee_prep_rel}
csr={job.employee_csr_rel}
handleAdd={handleAdd}
handleRemove={handleRemove}
loading={loading}
@@ -75,6 +76,8 @@ const determineFieldName = (operation) => {
return "employee_body";
case "prep":
return "employee_prep";
case "csr":
return "employee_csr";
case "refinish":
return "employee_refinish";

View File

@@ -146,9 +146,6 @@ export function JobsCreateJobsInfo({ bodyshop, form, selected }) {
</Collapse.Panel>
<Collapse.Panel key="claim" header={t("menus.jobsdetail.claimdetail")}>
<LayoutFormRow>
<Form.Item label={t("jobs.fields.csr")} name="csr">
<Input />
</Form.Item>
<Form.Item label={t("jobs.fields.loss_desc")} name="loss_desc">
<Input />
</Form.Item>

View File

@@ -207,10 +207,6 @@ export function JobsDetailGeneral({ bodyshop, jobRO, job, form }) {
</Form.Item>
</FormRow>
<FormRow header={t("jobs.forms.other")}>
<Form.Item label={t("jobs.fields.csr")} name="csr">
<Input disabled={jobRO} />
</Form.Item>
<Form.Item label={t("jobs.fields.category")} name="category">
<Select disabled={jobRO}>
{bodyshop.md_categories.map((s) => (

View File

@@ -67,6 +67,11 @@ export default function ProductionBoardCard(technician, card) {
? `${card.employee_refinish_rel.first_name} ${card.employee_refinish_rel.last_name}`
: ""
}`}</div>
<div>{`P: ${
card.employee_csr_rel
? `${card.employee_csr_rel.first_name} ${card.employee_csr_rel.last_name}`
: ""
}`}</div>
</div>
</div>
</Col>

View File

@@ -167,14 +167,7 @@ const r = ({ technician, state }) => {
key: "special_coverage_policy",
ellipsis: true,
},
{
title: i18n.t("jobs.fields.csr"),
dataIndex: "csr",
key: "csr",
ellipsis: true,
sorter: (a, b) => alphaSort(a.csr, b.csr),
sortOrder: state.sortedInfo.columnKey === "csr" && state.sortedInfo.order,
},
{
title: i18n.t("jobs.fields.alt_transport"),
dataIndex: "alt_transport",
@@ -317,6 +310,17 @@ const r = ({ technician, state }) => {
/>
),
},
{
title: i18n.t("jobs.fields.employee_csr"),
dataIndex: "employee_csr",
key: "employee_csr",
render: (text, record) => (
<ProductionListEmployeeAssignment
record={record}
type="employee_csr_rel"
/>
),
},
{
title: i18n.t("jobs.fields.employee_refinish"),
dataIndex: "employee_refinish",

View File

@@ -158,7 +158,8 @@ const determineFieldName = (operation) => {
return "employee_prep";
case "employee_refinish_rel":
return "employee_refinish";
case "employee_csr_rel":
return "employee_csr";
default:
return null;
}

View File

@@ -157,6 +157,11 @@ export const SUBSCRIPTION_JOBS_IN_PRODUCTION = gql`
first_name
last_name
}
employee_csr_rel {
id
first_name
last_name
}
partcount: joblines_aggregate(where: { removed: { _eq: false } }) {
nodes {
status
@@ -344,9 +349,14 @@ export const GET_JOB_BY_PK = gql`
first_name
last_name
}
employee_csr_rel {
id
first_name
last_name
}
alt_transport
intakechecklist
csr
loss_desc
kmin
kmout
@@ -727,6 +737,11 @@ export const QUERY_JOB_CARD_DETAILS = gql`
first_name
last_name
}
employee_csr_rel {
id
first_name
last_name
}
notes {
id
text
@@ -1054,7 +1069,7 @@ export const QUERY_ALL_JOB_FIELDS = gql`
clm_title
clm_total
clm_zip
csr
cust_pr
ded_amt
ded_status

View File

@@ -1044,7 +1044,6 @@
"class": "Class",
"clm_no": "Claim #",
"clm_total": "Claim Total",
"csr": "Customer Service Rep.",
"customerowing": "Customer Owing",
"date_estimated": "Date Estimated",
"date_exported": "Exported",
@@ -1056,6 +1055,7 @@
"depreciation_taxes": "Depreciation/Taxes",
"driveable": "Driveable",
"employee_body": "Body",
"employee_csr": "Customer Service Rep.",
"employee_prep": "Prep",
"employee_refinish": "Refinish",
"est_addr1": "Estimator Address",

View File

@@ -1044,7 +1044,6 @@
"class": "",
"clm_no": "Reclamación #",
"clm_total": "Reclamar total",
"csr": "Representante de servicio al cliente.",
"customerowing": "Cliente debido",
"date_estimated": "Fecha estimada",
"date_exported": "Exportado",
@@ -1056,6 +1055,7 @@
"depreciation_taxes": "Depreciación / Impuestos",
"driveable": "",
"employee_body": "",
"employee_csr": "Representante de servicio al cliente.",
"employee_prep": "",
"employee_refinish": "",
"est_addr1": "Dirección del tasador",

View File

@@ -1044,7 +1044,6 @@
"class": "",
"clm_no": "Prétendre #",
"clm_total": "Total réclamation",
"csr": "représentant du service à la clientèle",
"customerowing": "Client propriétaire",
"date_estimated": "Date estimée",
"date_exported": "Exportés",
@@ -1056,6 +1055,7 @@
"depreciation_taxes": "Amortissement / taxes",
"driveable": "",
"employee_body": "",
"employee_csr": "représentant du service à la clientèle",
"employee_prep": "",
"employee_refinish": "",
"est_addr1": "Adresse de l'évaluateur",