IO-1533 Kanban Customizations

This commit is contained in:
Patrick Fic
2021-11-17 22:07:50 -08:00
parent 696781c857
commit 49bf461c36
7 changed files with 205 additions and 53 deletions

View File

@@ -34961,6 +34961,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>ats</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>bodyhours</name> <name>bodyhours</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -35024,6 +35045,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>clm_no</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>compact</name> <name>compact</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -35108,6 +35150,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>ins_co_nm</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>jobdetail</name> <name>jobdetail</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -35171,6 +35234,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>ownr_nm</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>paintpriority</name> <name>paintpriority</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -35192,6 +35276,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>production_note</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>refinishhours</name> <name>refinishhours</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>
@@ -35213,6 +35318,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </concept_node>
<concept_node>
<name>scheduled_completion</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node> <concept_node>
<name>selectview</name> <name>selectview</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -1,6 +1,6 @@
import { EyeFilled, CalendarOutlined, ToolFilled } from "@ant-design/icons"; import { CalendarOutlined, EyeFilled } from "@ant-design/icons";
import { Card, Col, Row, Space, Typography } from "antd"; import { Card, Col, Row, Space } from "antd";
import React, { useState } from "react"; import React from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { DateTimeFormatter } from "../../utils/DateFormatter"; import { DateTimeFormatter } from "../../utils/DateFormatter";
@@ -17,7 +17,7 @@ export default function ProductionBoardCard(
) { ) {
const { t } = useTranslation(); const { t } = useTranslation();
let employee_body, employee_prep, employee_refinish, employee_csr; let employee_body, employee_prep, employee_refinish; //employee_csr;
if (card.employee_body) { if (card.employee_body) {
employee_body = bodyshop.employees.find((e) => e.id === card.employee_body); employee_body = bodyshop.employees.find((e) => e.id === card.employee_body);
} }
@@ -29,9 +29,9 @@ export default function ProductionBoardCard(
(e) => e.id === card.employee_refinish (e) => e.id === card.employee_refinish
); );
} }
if (card.employee_csr) { // if (card.employee_csr) {
employee_csr = bodyshop.employees.find((e) => e.id === card.employee_csr); // employee_csr = bodyshop.employees.find((e) => e.id === card.employee_csr);
} // }
return ( return (
<Card <Card
@@ -46,24 +46,15 @@ export default function ProductionBoardCard(
</Space> </Space>
} }
extra={ extra={
<Space> technician ? (
{cardSettings && cardSettings.sublets && ( <Link to={`/tech/joblookup?selected=${card.id}`}>
<Col span={12}> <EyeFilled />
<ProductionSubletsManageComponent </Link>
subletJobLines={card.subletLines} ) : (
/> <Link to={`/manage/jobs/${card.id}`}>
</Col> <EyeFilled />
)} </Link>
{technician ? ( )
<Link to={`/tech/joblookup?selected=${card.id}`}>
<EyeFilled />
</Link>
) : (
<Link to={`/manage/jobs/${card.id}`}>
<EyeFilled />
</Link>
)}
</Space>
} }
> >
<Row> <Row>
@@ -85,12 +76,12 @@ export default function ProductionBoardCard(
card.v_make_desc || "" card.v_make_desc || ""
} ${card.v_model_desc || ""}`}</div> } ${card.v_model_desc || ""}`}</div>
</Col> </Col>
{cardSettings && cardSettings.ins_co_nm && ( {cardSettings && cardSettings.ins_co_nm && card.ins_co_nm && (
<Col span={cardSettings && cardSettings.compact ? 24 : 12}> <Col span={cardSettings && cardSettings.compact ? 24 : 12}>
<div className="ellipses">{card.ins_co_nm || ""}</div> <div className="ellipses">{card.ins_co_nm || ""}</div>
</Col> </Col>
)} )}
{cardSettings && cardSettings.clm_no && ( {cardSettings && cardSettings.clm_no && card.clm_no && (
<Col span={cardSettings && cardSettings.compact ? 24 : 12}> <Col span={cardSettings && cardSettings.compact ? 24 : 12}>
<div className="ellipses">{card.clm_no || ""}</div> <div className="ellipses">{card.clm_no || ""}</div>
</Col> </Col>
@@ -101,19 +92,28 @@ export default function ProductionBoardCard(
<Row> <Row>
<Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`B: ${ <Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`B: ${
employee_body employee_body
? `${employee_body.first_name} ${employee_body.last_name}` ? `${employee_body.first_name.substr(
0,
3
)} ${employee_body.last_name.charAt(0)}`
: "" : ""
}`}</Col> } ${card.labhrs.aggregate.sum.mod_lb_hrs || "?"}h`}</Col>
<Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`P: ${ <Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`P: ${
employee_prep employee_prep
? `${employee_prep.first_name} ${employee_prep.last_name}` ? `${employee_prep.first_name.substr(
0,
3
)} ${employee_prep.last_name.charAt(0)}`
: "" : ""
}`}</Col> }`}</Col>
<Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`R: ${ <Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`R: ${
employee_refinish employee_refinish
? `${employee_refinish.first_name} ${employee_refinish.last_name}` ? `${employee_refinish.first_name.substr(
0,
3
)} ${employee_refinish.last_name.charAt(0)}`
: "" : ""
}`}</Col> } ${card.larhrs.aggregate.sum.mod_lb_hrs || "?"}h`}</Col>
{/* <Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`C: ${ {/* <Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`C: ${
employee_csr employee_csr
? `${employee_csr.first_name} ${employee_csr.last_name}` ? `${employee_csr.first_name} ${employee_csr.last_name}`
@@ -122,7 +122,7 @@ export default function ProductionBoardCard(
</Row> </Row>
</Col> </Col>
)} )}
{cardSettings && cardSettings.laborhrs && ( {/* {cardSettings && cardSettings.laborhrs && (
<Col span={24}> <Col span={24}>
<Row> <Row>
<Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`B: ${ <Col span={cardSettings && cardSettings.compact ? 24 : 12}>{`B: ${
@@ -133,19 +133,21 @@ export default function ProductionBoardCard(
} hrs`}</Col> } hrs`}</Col>
</Row> </Row>
</Col> </Col>
)} )} */}
{cardSettings && cardSettings.scheduled_completion && ( {cardSettings &&
<Col span={cardSettings && cardSettings.compact ? 24 : 12}> cardSettings.scheduled_completion &&
<Space> card.scheduled_completion && (
<CalendarOutlined /> <Col span={cardSettings && cardSettings.compact ? 24 : 12}>
<DateTimeFormatter format="MM/DD"> <Space>
{card.scheduled_completion} <CalendarOutlined />
</DateTimeFormatter> <DateTimeFormatter format="MM/DD">
</Space> {card.scheduled_completion}
</Col> </DateTimeFormatter>
)} </Space>
{cardSettings && cardSettings.ats && ( </Col>
<Col span={cardSettings && cardSettings.compact ? 24 : 12}> )}
{cardSettings && cardSettings.ats && card.alt_transport && (
<Col span={12}>
<div>{card.alt_transport || ""}</div> <div>{card.alt_transport || ""}</div>
</Col> </Col>
)} )}

View File

@@ -84,13 +84,13 @@ export default function ProductionBoardKanbanCardSettings({
> >
<Switch /> <Switch />
</Form.Item> </Form.Item>
<Form.Item {/* <Form.Item
valuePropName="checked" valuePropName="checked"
label={t("production.labels.laborhrs")} label={t("production.labels.laborhrs")}
name="laborhrs" name="laborhrs"
> >
<Switch /> <Switch />
</Form.Item> </Form.Item> */}
<Form.Item <Form.Item
valuePropName="checked" valuePropName="checked"
label={t("production.labels.employeeassignments")} label={t("production.labels.employeeassignments")}
@@ -98,15 +98,15 @@ export default function ProductionBoardKanbanCardSettings({
> >
<Switch /> <Switch />
</Form.Item> </Form.Item>
</Col>
<Col span={12}>
<Form.Item <Form.Item
valuePropName="checked" valuePropName="checked"
label={t("production.labels.scheduled_completion")} label={t("production.labels.scheduled_completion")}
name="scheduled_completion" name="scheduled_completion"
> >
<Switch /> <Switch />
</Form.Item>{" "} </Form.Item>
</Col>
<Col span={12}>
<Form.Item <Form.Item
valuePropName="checked" valuePropName="checked"
label={t("production.labels.ats")} label={t("production.labels.ats")}

View File

@@ -56,7 +56,10 @@ export default function ProductionSubletsManageComponent({ subletJobLines }) {
<Button <Button
key="complete" key="complete"
loading={loading} loading={loading}
onClick={() => handleSubletMark(s, "complete")} onClick={(e) => {
e.stopPropagation();
handleSubletMark(s, "complete");
}}
type={s.sublet_completed ? "primary" : "ghost"} type={s.sublet_completed ? "primary" : "ghost"}
> >
<CheckCircleFilled <CheckCircleFilled
@@ -66,7 +69,10 @@ export default function ProductionSubletsManageComponent({ subletJobLines }) {
<Button <Button
key="sublet" key="sublet"
loading={loading} loading={loading}
onClick={() => handleSubletMark(s, "ignore")} onClick={(e) => {
e.stopPropagation();
handleSubletMark(s, "ignore");
}}
type={s.sublet_ignored ? "primary" : "ghost"} type={s.sublet_ignored ? "primary" : "ghost"}
> >
<EyeInvisibleFilled <EyeInvisibleFilled

View File

@@ -2085,18 +2085,24 @@
"alert": "Alert", "alert": "Alert",
"alertoff": "Remove alert from job", "alertoff": "Remove alert from job",
"alerton": "Add alert to job", "alerton": "Add alert to job",
"ats": "Alternative Transportation",
"bodyhours": "B", "bodyhours": "B",
"bodypriority": "B/P", "bodypriority": "B/P",
"cardsettings": "Card Settings", "cardsettings": "Card Settings",
"clm_no": "Claim Number",
"compact": "Compact Cards", "compact": "Compact Cards",
"detailpriority": "D/P", "detailpriority": "D/P",
"employeeassignments": "Employee Assignments", "employeeassignments": "Employee Assignments",
"employeesearch": "Employee Search", "employeesearch": "Employee Search",
"ins_co_nm": "Insurance Company Name",
"jobdetail": "Job Details", "jobdetail": "Job Details",
"laborhrs": "Labor Hours", "laborhrs": "Labor Hours",
"note": "Production Note", "note": "Production Note",
"ownr_nm": "Owner Name",
"paintpriority": "P/P", "paintpriority": "P/P",
"production_note": "Production Note",
"refinishhours": "R", "refinishhours": "R",
"scheduled_completion": "Scheduled Completion",
"selectview": "Select a View", "selectview": "Select a View",
"sublets": "Sublets", "sublets": "Sublets",
"totalhours": "Total Hrs ", "totalhours": "Total Hrs ",

View File

@@ -2085,18 +2085,24 @@
"alert": "", "alert": "",
"alertoff": "", "alertoff": "",
"alerton": "", "alerton": "",
"ats": "",
"bodyhours": "", "bodyhours": "",
"bodypriority": "", "bodypriority": "",
"cardsettings": "", "cardsettings": "",
"clm_no": "",
"compact": "", "compact": "",
"detailpriority": "", "detailpriority": "",
"employeeassignments": "", "employeeassignments": "",
"employeesearch": "", "employeesearch": "",
"ins_co_nm": "",
"jobdetail": "", "jobdetail": "",
"laborhrs": "", "laborhrs": "",
"note": "", "note": "",
"ownr_nm": "",
"paintpriority": "", "paintpriority": "",
"production_note": "",
"refinishhours": "", "refinishhours": "",
"scheduled_completion": "",
"selectview": "", "selectview": "",
"sublets": "", "sublets": "",
"totalhours": "", "totalhours": "",

View File

@@ -2085,18 +2085,24 @@
"alert": "", "alert": "",
"alertoff": "", "alertoff": "",
"alerton": "", "alerton": "",
"ats": "",
"bodyhours": "", "bodyhours": "",
"bodypriority": "", "bodypriority": "",
"cardsettings": "", "cardsettings": "",
"clm_no": "",
"compact": "", "compact": "",
"detailpriority": "", "detailpriority": "",
"employeeassignments": "", "employeeassignments": "",
"employeesearch": "", "employeesearch": "",
"ins_co_nm": "",
"jobdetail": "", "jobdetail": "",
"laborhrs": "", "laborhrs": "",
"note": "", "note": "",
"ownr_nm": "",
"paintpriority": "", "paintpriority": "",
"production_note": "",
"refinishhours": "", "refinishhours": "",
"scheduled_completion": "",
"selectview": "", "selectview": "",
"sublets": "", "sublets": "",
"totalhours": "", "totalhours": "",