IO-995 Update CSR to be a relationship.
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) => (
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user