diff --git a/client/package.json b/client/package.json
index 5296db24a..bda074119 100644
--- a/client/package.json
+++ b/client/package.json
@@ -4,18 +4,18 @@
"private": true,
"proxy": "http://localhost:4000",
"dependencies": {
- "@apollo/client": "^3.6.6",
+ "@apollo/client": "^3.6.9",
"@asseinfo/react-kanban": "^2.2.0",
- "@craco/craco": "^6.4.3",
+ "@craco/craco": "^6.4.5",
"@fingerprintjs/fingerprintjs": "^3.3.3",
"@jsreport/browser-client": "^3.1.0",
- "@sentry/react": "^7.1.1",
- "@sentry/tracing": "^7.1.1",
- "@splitsoftware/splitio-react": "^1.4.1",
- "@stripe/react-stripe-js": "^1.8.1",
- "@stripe/stripe-js": "^1.31.0",
- "@tanem/react-nprogress": "^5.0.1",
- "antd": "^4.21.0",
+ "@sentry/react": "^7.7.0",
+ "@sentry/tracing": "^7.7.0",
+ "@splitsoftware/splitio-react": "^1.6.0",
+ "@stripe/react-stripe-js": "^1.9.0",
+ "@stripe/stripe-js": "^1.32.0",
+ "@tanem/react-nprogress": "^5.0.8",
+ "antd": "^4.21.7",
"apollo-link-logger": "^2.0.0",
"axios": "^0.27.2",
"craco-less": "^1.20.0",
@@ -24,33 +24,33 @@
"enquire-js": "^0.2.1",
"env-cmd": "^10.1.0",
"exifr": "^7.1.3",
- "firebase": "^9.8.2",
+ "firebase": "^9.9.1",
"graphql": "^16.5.0",
- "i18next": "^21.8.9",
+ "i18next": "^21.8.14",
"i18next-browser-languagedetector": "^6.1.4",
- "jsoneditor": "^9.8.0",
+ "jsoneditor": "^9.9.0",
"jsreport-browser-client-dist": "^1.3.0",
- "libphonenumber-js": "^1.10.6",
- "logrocket": "^3.0.0",
- "markerjs2": "^2.21.4",
+ "libphonenumber-js": "^1.10.9",
+ "logrocket": "^3.0.1",
+ "markerjs2": "^2.22.0",
"moment-business-days": "^1.2.0",
"moment-timezone": "^0.5.34",
"normalize-url": "^7.0.3",
- "phone": "^3.1.20",
+ "phone": "^3.1.23",
"preval.macro": "^5.0.0",
"prop-types": "^15.8.1",
"query-string": "^7.1.1",
"rc-queue-anim": "^2.0.0",
"rc-scroll-anim": "^2.7.6",
"react": "^17.0.2",
- "react-big-calendar": "^0.40.1",
+ "react-big-calendar": "^1.5.0",
"react-color": "^2.19.3",
"react-cookie": "^4.1.1",
"react-dom": "^17.0.2",
"react-drag-listview": "^0.2.1",
"react-grid-gallery": "^0.5.5",
"react-grid-layout": "^1.3.4",
- "react-i18next": "^11.17.0",
+ "react-i18next": "^11.18.1",
"react-icons": "^4.4.0",
"react-number-format": "^4.9.3",
"react-redux": "^7.2.8",
@@ -60,13 +60,13 @@
"react-sticky": "^6.0.3",
"react-sublime-video": "^0.2.5",
"react-virtualized": "^9.22.3",
- "recharts": "^2.1.10",
+ "recharts": "^2.1.12",
"redux": "^4.2.0",
"redux-persist": "^6.0.0",
"redux-saga": "^1.1.3",
- "redux-state-sync": "^3.1.2",
+ "redux-state-sync": "^3.1.4",
"reselect": "^4.1.6",
- "sass": "^1.51.0",
+ "sass": "^1.54.0",
"socket.io-client": "^4.5.1",
"styled-components": "^5.3.5",
"subscriptions-transport-ws": "^0.11.0",
@@ -119,9 +119,9 @@
"react-error-overlay": "6.0.9"
},
"devDependencies": {
- "@sentry/webpack-plugin": "^1.18.9",
- "@testing-library/cypress": "^8.0.2",
- "cypress": "^9.6.1",
+ "@sentry/webpack-plugin": "^1.19.0",
+ "@testing-library/cypress": "^8.0.3",
+ "cypress": "^10.3.1",
"eslint-plugin-cypress": "^2.12.1",
"react-error-overlay": "6.0.11",
"redux-logger": "^3.0.6",
diff --git a/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx b/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx
index 96eec6cdc..552c2ad47 100644
--- a/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx
+++ b/client/src/components/bill-line-search-select/bill-line-search-select.component.jsx
@@ -27,6 +27,10 @@ const BillLineSearchSelect = (
option.oem_partno
.toLowerCase()
.includes(inputValue.toLowerCase())) ||
+ (option.alt_partno &&
+ option.alt_partno
+ .toLowerCase()
+ .includes(inputValue.toLowerCase())) ||
(option.act_price &&
option.act_price.toString().startsWith(inputValue.toString()))
);
@@ -48,14 +52,17 @@ const BillLineSearchSelect = (
line_desc={item.line_desc}
part_qty={item.part_qty}
oem_partno={item.oem_partno}
+ alt_partno={item.alt_partno}
act_price={item.act_price}
style={{
...(item.removed ? { textDecoration: "line-through" } : {}),
}}
>
- {`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
- item.oem_partno ? ` - ${item.oem_partno}` : ""
- }`}
+
+ {`${item.removed ? `(REMOVED) ` : ""}${item.line_desc}${
+ item.oem_partno ? ` - ${item.oem_partno}` : ""
+ }${item.alt_partno ? ` (${item.alt_partno})` : ""}`.trim()}
+
{item.act_price
? `$${item.act_price && item.act_price.toFixed(2)}`
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 2b1ddf2b9..5c0cad744 100644
--- a/client/src/components/job-detail-lines/job-lines.component.jsx
+++ b/client/src/components/job-detail-lines/job-lines.component.jsx
@@ -144,11 +144,26 @@ export function JobLinesComponent({
filters: [
{
text: t("jobs.labels.partsfilter"),
- value: ["PAN", "PAP", "PAL", "PAA", "PAS", "PASL"],
+ value: [
+ "PAN",
+ "PAC",
+ "PAR",
+ "PAL",
+ "PAA",
+ "PAM",
+ "PAP",
+ "PAS",
+ "PASL",
+ "PAG",
+ ],
},
{
text: t("joblines.fields.part_types.PAN"),
- value: ["PAN", "PAP"],
+ value: ["PAN"],
+ },
+ {
+ text: t("joblines.fields.part_types.PAP"),
+ value: ["PAP"],
},
{
text: t("joblines.fields.part_types.PAL"),
@@ -158,9 +173,29 @@ export function JobLinesComponent({
text: t("joblines.fields.part_types.PAA"),
value: ["PAA"],
},
+ {
+ text: t("joblines.fields.part_types.PAG"),
+ value: ["PAG"],
+ },
{
text: t("joblines.fields.part_types.PAS"),
- value: ["PAS", "PASL"],
+ value: ["PAS"],
+ },
+ {
+ text: t("joblines.fields.part_types.PASL"),
+ value: ["PASL"],
+ },
+ {
+ text: t("joblines.fields.part_types.PAC"),
+ value: ["PAC"],
+ },
+ {
+ text: t("joblines.fields.part_types.PAR"),
+ value: ["PAR"],
+ },
+ {
+ text: t("joblines.fields.part_types.PAM"),
+ value: ["PAM"],
},
],
onFilter: (value, record) => value.includes(record.part_type),
@@ -346,7 +381,11 @@ export function JobLinesComponent({
];
const handleTableChange = (pagination, filters, sorter) => {
- setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
+ setState((state) => ({
+ ...state,
+ filteredInfo: filters,
+ sortedInfo: sorter,
+ }));
};
const handleMark = (e) => {
@@ -482,9 +521,10 @@ export function JobLinesComponent({