{data.timetickets.length > 0 ? (
diff --git a/client/src/graphql/bills.queries.js b/client/src/graphql/bills.queries.js
index 9cb76dc1e..9992a8308 100644
--- a/client/src/graphql/bills.queries.js
+++ b/client/src/graphql/bills.queries.js
@@ -44,6 +44,7 @@ export const QUERY_ALL_BILLS_PAGINATED = gql`
total
invoice_number
date
+ isinhouse
exported
job {
id
@@ -80,6 +81,7 @@ export const QUERY_BILLS_BY_JOBID = gql`
order_date
deliver_by
return
+
parts_order_lines {
id
act_price
@@ -114,6 +116,7 @@ export const QUERY_BILLS_BY_JOBID = gql`
state_tax_rate
local_tax_rate
is_credit_memo
+ isinhouse
exported
billlines {
actual_price
@@ -147,6 +150,7 @@ export const QUERY_BILL_BY_PK = gql`
local_tax_rate
state_tax_rate
federal_tax_rate
+ isinhouse
vendor {
id
name
diff --git a/client/src/pages/bills/bills.page.component.jsx b/client/src/pages/bills/bills.page.component.jsx
index 858f443ca..7a1651c24 100644
--- a/client/src/pages/bills/bills.page.component.jsx
+++ b/client/src/pages/bills/bills.page.component.jsx
@@ -7,10 +7,12 @@ import { connect } from "react-redux";
import { Link, useHistory, useLocation } from "react-router-dom";
import BillDeleteButton from "../../components/bill-delete-button/bill-delete-button.component";
import PartsOrderModalContainer from "../../components/parts-order-modal/parts-order-modal.container";
+import PrintWrapperComponent from "../../components/print-wrapper/print-wrapper.component";
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";
const mapDispatchToProps = (dispatch) => ({
setPartsOrderContext: (context) =>
@@ -34,6 +36,7 @@ export function BillsListPage({
const history = useHistory();
const search = queryString.parse(useLocation().search);
const { page } = search;
+ const Templates = TemplateList("bill");
const columns = [
{
@@ -136,7 +139,7 @@ export function BillsListPage({
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
}
}`;