diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 4706a9625..986564e97 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -36770,6 +36770,27 @@ labels + + actual_in + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + alert false @@ -37221,6 +37242,27 @@ + + partsstatus + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + production_note false diff --git a/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx b/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx index deebf46b1..4d42963df 100644 --- a/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx +++ b/client/src/components/job-parts-queue-count/job-parts-queue-count.component.jsx @@ -12,8 +12,8 @@ const mapDispatchToProps = (dispatch) => ({ export default connect(mapStateToProps, mapDispatchToProps)(JobPartsQueueCount); export function JobPartsQueueCount({ bodyshop, parts }) { - console.log(parts); const partsStatus = useMemo(() => { + if (!parts) return null; return parts.reduce( (acc, val) => { acc.total = acc.total + val.count; @@ -23,6 +23,7 @@ export function JobPartsQueueCount({ bodyshop, parts }) { }, { total: 0, + null: 0, [bodyshop.md_order_statuses.default_bo]: 0, [bodyshop.md_order_statuses.default_ordered]: 0, [bodyshop.md_order_statuses.default_received]: 0, @@ -31,33 +32,35 @@ export function JobPartsQueueCount({ bodyshop, parts }) { ); }, [bodyshop, parts]); - console.log( - "🚀 ~ file: job-parts-queue-count.component.jsx ~ line 8 ~ partsStatus", - partsStatus - ); + if (!parts) return null; return ( - + {partsStatus.total} - + + + {partsStatus["null"]} + + + {partsStatus[bodyshop.md_order_statuses.default_ordered]} - + {partsStatus[bodyshop.md_order_statuses.default_received]} - + {partsStatus[bodyshop.md_order_statuses.default_returned]} diff --git a/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx b/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx index 0f56e25f3..e03279d22 100644 --- a/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx +++ b/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx @@ -1,6 +1,7 @@ import { CalendarOutlined, EyeFilled, + DownloadOutlined, PauseCircleOutlined, } from "@ant-design/icons"; import { Card, Col, Row, Space } from "antd"; @@ -14,6 +15,7 @@ import ProductionSubletsManageComponent from "../production-sublets-manage/produ import "./production-board-card.styles.scss"; import moment from "moment"; import OwnerNameDisplay from "../owner-name-display/owner-name-display.component"; +import JobPartsQueueCount from "../job-parts-queue-count/job-parts-queue-count.component"; export default function ProductionBoardCard( technician, @@ -157,6 +159,16 @@ export default function ProductionBoardCard( )} */} + {cardSettings && cardSettings.actual_in && card.actual_in && ( + + + + + {card.actual_in} + + + + )} {cardSettings && cardSettings.scheduled_completion && card.scheduled_completion && ( @@ -188,6 +200,11 @@ export default function ProductionBoardCard( )} )} + {cardSettings && cardSettings.partsstatus && ( + + + + )} ); diff --git a/client/src/components/production-board-kanban/production-board-kanban.card-settings.component.jsx b/client/src/components/production-board-kanban/production-board-kanban.card-settings.component.jsx index 0f54c60ac..25c77e307 100644 --- a/client/src/components/production-board-kanban/production-board-kanban.card-settings.component.jsx +++ b/client/src/components/production-board-kanban/production-board-kanban.card-settings.component.jsx @@ -97,6 +97,13 @@ export default function ProductionBoardKanbanCardSettings({ > + + + + + + { return [ @@ -490,6 +491,14 @@ const r = ({ technician, state, activeStatuses, bodyshop }) => { ), }, + { + title: i18n.t("jobs.fields.partsstatus"), + dataIndex: "partsstatus", + key: "partsstatus", + render: (text, record) => ( + + ), + }, ]; }; export default r; diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index f398759a5..2b8f8ede7 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -2187,6 +2187,7 @@ "settings": "Error saving board settings: {{error}}" }, "labels": { + "actual_in": "Actual In", "alert": "Alert", "alertoff": "Remove alert from job", "alerton": "Add alert to job", @@ -2212,6 +2213,7 @@ "note": "Production Note", "ownr_nm": "Owner Name", "paintpriority": "P/P", + "partsstatus": "Parts Status", "production_note": "Production Note", "refinishhours": "R", "scheduled_completion": "Scheduled Completion", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 5c93bb36e..1fc30514d 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -2187,6 +2187,7 @@ "settings": "" }, "labels": { + "actual_in": "", "alert": "", "alertoff": "", "alerton": "", @@ -2212,6 +2213,7 @@ "note": "", "ownr_nm": "", "paintpriority": "", + "partsstatus": "", "production_note": "", "refinishhours": "", "scheduled_completion": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index ebab12b16..b05416820 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -2187,6 +2187,7 @@ "settings": "" }, "labels": { + "actual_in": "", "alert": "", "alertoff": "", "alerton": "", @@ -2212,6 +2213,7 @@ "note": "", "ownr_nm": "", "paintpriority": "", + "partsstatus": "", "production_note": "", "refinishhours": "", "scheduled_completion": "",