Compare commits

...

14 Commits

Author SHA1 Message Date
Allan Carr
818aedf04f IO-3604 Tech Job Drawer
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2026-03-06 12:43:12 -08:00
Dave Richer
8980d3716b Merged in release/2026-03-13 (pull request #3092)
release/2026-02-27 - Final RR debug fix [FRONT END NOT REQUIRED]

Approved-by: Allan Carr
2026-03-04 20:31:22 +00:00
Dave Richer
764ec5f8f9 Merged in release/2026-02-27 (pull request #3091)
release/2026-02-27 - Final RR debug fix
2026-03-04 20:20:49 +00:00
Dave
a7a7551dae release/2026-02-27 - Final RR debug fix 2026-03-04 15:17:56 -05:00
Dave Richer
571536a7ec Merged in master-AIO (pull request #3089)
release/2026-02-27 - bump
2026-03-04 19:28:47 +00:00
Dave Richer
20e56fff6a Merged in release/2026-02-27 (pull request #3088)
release/2026-02-27 - bump
2026-03-04 19:28:21 +00:00
Dave
8f132ca14d release/2026-02-27 - bump 2026-03-04 14:27:23 -05:00
Dave Richer
99c002dac1 Merged in master-AIO (pull request #3086)
Master AIO
2026-03-04 19:24:37 +00:00
Dave Richer
0cd30ccdec Merged in release/2026-02-27 (pull request #3085)
Release/2026 02 27
2026-03-04 17:45:15 +00:00
Patrick Fic
acd69276a5 Merged in release/revert-revert-pr-3080 (pull request #3083)
Revert "Revert "Release/2026 02 27 (pull request #3070)" (pull request #3080)"
2026-03-04 17:41:44 +00:00
Patrick Fic
faf5878bdf Revert "Revert "Release/2026 02 27 (pull request #3070)" (pull request #3080)" 2026-03-04 17:41:10 +00:00
Patrick Fic
5a55798d2d Merged in release/revert-pr-3070-2026-03-04 (pull request #3080)
Revert "Release/2026 02 27 (pull request #3070)"
2026-03-04 16:20:15 +00:00
Patrick Fic
c9e41ba72a Revert "Release/2026 02 27 (pull request #3070)" 2026-03-04 16:18:44 +00:00
Dave Richer
522f2b9e26 Merged in release/2026-02-27 (pull request #3070)
Release/2026 02 27
2026-03-04 01:41:53 +00:00
5 changed files with 80 additions and 28 deletions

View File

@@ -25,10 +25,7 @@ const mapDispatchToProps = (dispatch) => ({
});
export function TechLookupJobsDrawer({ bodyshop, setPrintCenterContext }) {
const breakpoints = Grid.useBreakpoint();
const selectedBreakpoint = Object.entries(breakpoints)
.filter(([, isOn]) => !!isOn)
.slice(-1)[0];
const screens = Grid.useBreakpoint();
const bpoints = {
xs: "100%",
@@ -36,10 +33,16 @@ export function TechLookupJobsDrawer({ bodyshop, setPrintCenterContext }) {
md: "100%",
lg: "100%",
xl: "90%",
xxl: "85%"
xxl: "90%"
};
const drawerPercentage = selectedBreakpoint ? bpoints[selectedBreakpoint[0]] : "100%";
let drawerPercentage = "100%";
if (screens.xxl) drawerPercentage = bpoints.xxl;
else if (screens.xl) drawerPercentage = bpoints.xl;
else if (screens.lg) drawerPercentage = bpoints.lg;
else if (screens.md) drawerPercentage = bpoints.md;
else if (screens.sm) drawerPercentage = bpoints.sm;
else if (screens.xs) drawerPercentage = bpoints.xs;
const location = useLocation();
const history = useNavigate();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -4,7 +4,7 @@
* @returns {number|null}
*/
const parseVendorStatusCode = (err) => {
// Prefer explicit numeric props when available
// Prefer explicit numeric props when available.
const codeProp = err?.code ?? err?.statusCode ?? err?.meta?.status?.StatusCode ?? err?.status?.StatusCode;
const num = Number(codeProp);
if (!Number.isNaN(num) && num > 0) return num;

View File

@@ -12,7 +12,7 @@ const { createRRCustomer } = require("./rr-customers");
const { ensureRRServiceVehicle } = require("./rr-service-vehicles");
const { classifyRRVendorError } = require("./rr-errors");
const { markRRExportSuccess, insertRRFailedExportLog } = require("./rr-export-logs");
const { withRRRequestXml } = require("./rr-log-xml");
const { withRRRequestXml, extractRRXmlPair } = require("./rr-log-xml");
const {
makeVehicleSearchPayloadFromJob,
ownersFromVinBlocks,
@@ -49,6 +49,21 @@ const resolveJobId = (explicit, payload, job) => explicit || payload?.jobId || j
*/
const resolveVin = ({ tx, job }) => tx?.jobData?.vin || job?.v_vin || null;
/**
* Add request/response XML to socket event payloads when available.
* @param rrObj
* @param payload
* @returns {*}
*/
const withRRXmlSocketPayload = (rrObj, payload = {}) => {
const { requestXml, responseXml } = extractRRXmlPair(rrObj);
return {
...payload,
...(requestXml ? { requestXml } : {}),
...(responseXml ? { responseXml } : {})
};
};
/**
* Sort vehicle owners first in the list, preserving original order otherwise.
* @param list
@@ -474,7 +489,14 @@ const registerRREvents = ({ socket, redisHelpers }) => {
);
try {
socket.emit("export-failed", { vendor: "rr", jobId: rid, error: error.message });
socket.emit(
"export-failed",
withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
})
);
} catch {
//
}
@@ -870,9 +892,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR early RO creation failed",
...withRRXmlSocketPayload(result, {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR early RO creation failed"
}),
...cls
});
@@ -923,9 +947,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
try {
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: error.message,
...withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
}),
...cls
});
socket.emit("rr-user-notice", { jobId: rid, ...cls });
@@ -1173,7 +1199,14 @@ const registerRREvents = ({ socket, redisHelpers }) => {
);
try {
socket.emit("export-failed", { vendor: "rr", jobId: rid, error: error.message });
socket.emit(
"export-failed",
withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
})
);
} catch {
//
}
@@ -1538,9 +1571,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR export failed",
...withRRXmlSocketPayload(result, {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR export failed"
}),
...cls
});
@@ -1591,9 +1626,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
try {
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: error.message,
...withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
}),
...cls
});
socket.emit("rr-user-notice", { jobId: rid, ...cls });
@@ -1725,9 +1762,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || finalizeResult?.error || "RR finalize failed",
...withRRXmlSocketPayload(finalizeResult, {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || finalizeResult?.error || "RR finalize failed"
}),
...cls
});
ack?.({ ok: false, error: cls.friendlyMessage || "RR finalize failed", classification: cls });
@@ -1770,7 +1809,17 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
try {
socket.emit("export-failed", { vendor: "rr", jobId: rid, error: error.message, ...cls });
socket.emit(
"export-failed",
{
...withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
}),
...cls
}
);
} catch {
//
}