diff --git a/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx b/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx
index 000f56a3a..a720968b9 100644
--- a/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx
+++ b/client/src/components/courtesy-cars-list/courtesy-cars-list.component.jsx
@@ -97,7 +97,9 @@ export default function CourtesyCarsList({ loading, courtesycars, refetch }) {
render: (text, record) =>
record.cccontracts.length === 1 ? (
- {record.cccontracts[0].job.ro_number}
+ {`${record.cccontracts[0].job.ro_number} - ${
+ record.cccontracts[0].job.ownr_fn || ""
+ } ${record.cccontracts[0].job.ownr_ln || ""} ${record.cccontracts[0].job.ownr_co_nm || ""}`}
) : null,
},
diff --git a/client/src/components/form-date-time-picker/form-date-time-picker.component.jsx b/client/src/components/form-date-time-picker/form-date-time-picker.component.jsx
index 34131d479..0337a038b 100644
--- a/client/src/components/form-date-time-picker/form-date-time-picker.component.jsx
+++ b/client/src/components/form-date-time-picker/form-date-time-picker.component.jsx
@@ -19,26 +19,26 @@ const DateTimePicker = (
return (
moment().subtract(1, "day").isAfter(d),
- })}
- value={value}
- onBlur={onBlur}
- onChange={onChange}
+ {...(onlyFuture && {
+ disabledDate: (d) => moment().subtract(1, "day").isAfter(d),
+ })}
+ value={value}
+ onBlur={onBlur}
+ onChange={onChange}
+ {...restProps}
/>
moment().isAfter(d),
- })}
- onChange={onChange}
- showSecond={false}
- minuteStep={15}
- onBlur={onBlur}
- format="hh:mm a"
+ value={value ? moment(value) : null}
+ {...(onlyFuture && {
+ disabledDate: (d) => moment().isAfter(d),
+ })}
+ onChange={onChange}
+ showSecond={false}
+ minuteStep={15}
+ onBlur={onBlur}
+ format="hh:mm a"
+ {...restProps}
/>
);
diff --git a/client/src/components/production-list-detail/production-list-detail.component.jsx b/client/src/components/production-list-detail/production-list-detail.component.jsx
index 1ea6c49d0..9494d5fb2 100644
--- a/client/src/components/production-list-detail/production-list-detail.component.jsx
+++ b/client/src/components/production-list-detail/production-list-detail.component.jsx
@@ -1,5 +1,5 @@
import { useQuery } from "@apollo/client";
-import { Descriptions, Drawer, Space } from "antd";
+import { Descriptions, Drawer, Space, PageHeader, Button } from "antd";
import queryString from "query-string";
import React from "react";
import { useTranslation } from "react-i18next";
@@ -16,8 +16,25 @@ import JobEmployeeAssignments from "../job-employee-assignments/job-employee-ass
import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
import ProductionRemoveButton from "../production-remove-button/production-remove-button.component";
import JobAtChange from "../job-at-change/job-at-change.component";
+import { PrinterFilled } from "@ant-design/icons";
-export default function ProductionListDetail({ jobs }) {
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { setModalContext } from "../../redux/modals/modals.actions";
+
+const mapStateToProps = createStructuredSelector({
+ //currentUser: selectCurrentUser
+});
+const mapDispatchToProps = (dispatch) => ({
+ setPrintCenterContext: (context) =>
+ dispatch(setModalContext({ context: context, modal: "printCenter" })),
+});
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(ProductionListDetail);
+
+export function ProductionListDetail({ jobs, setPrintCenterContext }) {
const search = queryString.parse(useLocation().search);
const history = useHistory();
const { selected } = search;
@@ -39,11 +56,29 @@ export default function ProductionListDetail({ jobs }) {
return (
- {t("production.labels.jobdetail")}
- {theJob.ro_number}
-
-
+
+ {" "}
+
+
+ }
+ />
}
placement="right"
width={"33%"}
diff --git a/client/src/components/time-ticket-list/time-ticket-list.component.jsx b/client/src/components/time-ticket-list/time-ticket-list.component.jsx
index 46e9462c3..40af8ca48 100644
--- a/client/src/components/time-ticket-list/time-ticket-list.component.jsx
+++ b/client/src/components/time-ticket-list/time-ticket-list.component.jsx
@@ -76,6 +76,21 @@ export function TimeTicketList({
state.sortedInfo.columnKey === "employee" && state.sortedInfo.order,
render: (text, record) =>
`${record.employee.first_name} ${record.employee.last_name}`,
+ filters:
+ timetickets
+ .map((l) => l.employeeid)
+ .filter(onlyUnique)
+ .map((s) => {
+ return {
+ text: (() => {
+ const emp = bodyshop.employees.find((e) => e.id === s);
+
+ return `${emp.first_name} ${emp.last_name}`;
+ })(), //
+ value: [s],
+ };
+ }) || [],
+ onFilter: (value, record) => value.includes(record.employeeid),
},
{
title: t("timetickets.fields.cost_center"),
diff --git a/client/src/components/time-ticket-modal/time-ticket-modal.component.jsx b/client/src/components/time-ticket-modal/time-ticket-modal.component.jsx
index cc12ce503..cbd68ad5a 100644
--- a/client/src/components/time-ticket-modal/time-ticket-modal.component.jsx
+++ b/client/src/components/time-ticket-modal/time-ticket-modal.component.jsx
@@ -212,6 +212,7 @@ export function TimeTicketModalComponent({
<>