diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index e771a1050..13fdc4c6b 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -4099,6 +4099,27 @@ + + checklist-view + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + close false @@ -27559,6 +27580,48 @@ + + noemployeeforuser + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + noemployeeforuser_sub + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + diff --git a/client/src/components/bills-list-table/bills-list-table.component.jsx b/client/src/components/bills-list-table/bills-list-table.component.jsx index a930385b7..d279d33b1 100644 --- a/client/src/components/bills-list-table/bills-list-table.component.jsx +++ b/client/src/components/bills-list-table/bills-list-table.component.jsx @@ -18,7 +18,9 @@ import { setModalContext } from "../../redux/modals/modals.actions"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { DateFormatter } from "../../utils/DateFormatter"; import { alphaSort } from "../../utils/sorters"; +import { TemplateList } from "../../utils/TemplateConstants"; import BillDeleteButton from "../bill-delete-button/bill-delete-button.component"; +import PrintWrapperComponent from "../print-wrapper/print-wrapper.component"; const mapStateToProps = createStructuredSelector({ //jobRO: selectJobReadOnly, @@ -49,7 +51,7 @@ export function BillsListTableComponent({ }); const search = queryString.parse(useLocation().search); const selectedBill = search.billid; - + const Templates = TemplateList("bill"); const bills = billsQuery.data ? billsQuery.data.bills : []; const { refetch } = billsQuery; const columns = [ @@ -115,7 +117,7 @@ export function BillsListTableComponent({ dataIndex: "actions", key: "actions", render: (text, record) => ( - + {record.exported ? ( ) : ( @@ -126,6 +128,15 @@ export function BillsListTableComponent({ )} + {record.isinhouse && ( + + )} ), }, @@ -275,7 +286,7 @@ export function BillsListTableComponent({ .map((i) => { return { line_desc: i.line_desc, - // db_price: i.actual_price, + // db_price: i.actual_price, act_price: i.actual_price, quantity: i.quantity, joblineid: i.joblineid, diff --git a/client/src/components/job-detail-lines/job-lines.component.jsx b/client/src/components/job-detail-lines/job-lines.component.jsx index f1b564d36..8f5ce8a2e 100644 --- a/client/src/components/job-detail-lines/job-lines.component.jsx +++ b/client/src/components/job-detail-lines/job-lines.component.jsx @@ -246,6 +246,8 @@ export function JobLinesComponent({ sorter: (a, b) => alphaSort(a.status, b.status), sortOrder: state.sortedInfo.columnKey === "status" && state.sortedInfo.order, + filteredValue: state.filteredInfo.status || null, + filters: (jobLines && jobLines diff --git a/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx b/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx index f930432be..009597238 100644 --- a/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx +++ b/client/src/components/parts-order-list-table/parts-order-list-table.component.jsx @@ -40,7 +40,7 @@ export function PartsOrderListTableComponent({ setPartsReceiveContext, }) { const responsibilityCenters = bodyshop.md_responsibility_centers; - + const Templates = TemplateList("partsorder"); const { t } = useTranslation(); const [state, setState] = useState({ sortedInfo: {}, @@ -105,7 +105,7 @@ export function PartsOrderListTableComponent({ dataIndex: "actions", key: "actions", render: (text, record) => ( - + @@ -153,7 +156,7 @@ export function BillsListPage({ linesToOrder: record.billlines.map((i) => { return { line_desc: i.line_desc, - // db_price: i.actual_price, + // db_price: i.actual_price, act_price: i.actual_price, quantity: i.quantity, joblineid: i.joblineid, @@ -167,6 +170,15 @@ export function BillsListPage({ {t("bills.actions.return")} + {record.isinhouse && ( + + )} ), }, diff --git a/client/src/pages/shift-clock/shift-clock.page.jsx b/client/src/pages/shift-clock/shift-clock.page.jsx index 15209ce06..d026da567 100644 --- a/client/src/pages/shift-clock/shift-clock.page.jsx +++ b/client/src/pages/shift-clock/shift-clock.page.jsx @@ -5,9 +5,7 @@ import TimeTicketShift from "../../components/time-ticket-shift/time-ticket-shif export default function ShiftClock() { return ( -
- -
+
); } diff --git a/client/src/redux/store.js b/client/src/redux/store.js index 30d325108..c60519c05 100644 --- a/client/src/redux/store.js +++ b/client/src/redux/store.js @@ -9,7 +9,11 @@ import { import rootReducer from "./root.reducer"; import rootSaga from "./root.saga"; +import * as Sentry from "@sentry/react"; +const sentryReduxEnhancer = Sentry.createReduxEnhancer({ + // Optionally pass options +}); const sagaMiddleWare = createSagaMiddleware(); const reduxSyncConfig = { @@ -32,7 +36,8 @@ const composeEnhancers = : compose; const enhancer = composeEnhancers( - applyMiddleware(...middlewares) + applyMiddleware(...middlewares), + sentryReduxEnhancer // other store enhancers if any ); diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 5a308a29e..b2520ab2f 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -270,6 +270,7 @@ "jobs": { "admin": "Jobs -> Admin", "available-list": "Jobs -> Available List", + "checklist-view": "Jobs -> Checklist View", "close": "Jobs -> Close", "create": "Jobs -> Create", "deliver": "Jobs -> Deliver", @@ -1691,7 +1692,9 @@ "clockingin": "Error while clocking in. {{message}}", "clockingout": "Error while clocking out. {{message}}", "creating": "Error creating time ticket. {{message}}", - "deleting": "Error deleting time ticket. {{message}}" + "deleting": "Error deleting time ticket. {{message}}", + "noemployeeforuser": "Unable to use Shift Clock", + "noemployeeforuser_sub": "An employee record has not been created for this user. Please create one before using the shift clock. " }, "fields": { "actualhrs": "Actual Hours", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 4a9bfdf49..c488ebcc7 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -270,6 +270,7 @@ "jobs": { "admin": "", "available-list": "", + "checklist-view": "", "close": "", "create": "", "deliver": "", @@ -1691,7 +1692,9 @@ "clockingin": "", "clockingout": "", "creating": "", - "deleting": "" + "deleting": "", + "noemployeeforuser": "", + "noemployeeforuser_sub": "" }, "fields": { "actualhrs": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index 26b251e04..1615b838a 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -270,6 +270,7 @@ "jobs": { "admin": "", "available-list": "", + "checklist-view": "", "close": "", "create": "", "deliver": "", @@ -1691,7 +1692,9 @@ "clockingin": "", "clockingout": "", "creating": "", - "deleting": "" + "deleting": "", + "noemployeeforuser": "", + "noemployeeforuser_sub": "" }, "fields": { "actualhrs": "", diff --git a/server/graphql-client/queries.js b/server/graphql-client/queries.js index 275c87613..c1fd19819 100644 --- a/server/graphql-client/queries.js +++ b/server/graphql-client/queries.js @@ -252,7 +252,6 @@ exports.QUERY_EMPLOYEE_PIN = `query QUERY_EMPLOYEE_PIN($shopId: uuid!, $employee first_name employee_number id - cost_center pin } }`;