Compare commits

..

14 Commits

Author SHA1 Message Date
Dave
043471fdbc feature/IO-3385-Remove-CASL-From-Rome - Remove CASL Report from Rome Customers. 2025-10-15 11:46:51 -04:00
Dave Richer
13a44b9a59 Merged in hotfix/2025-10-10 (pull request #2628)
Hotfix/2025 10 10 - Change BullMQ Key Delimiters based on system logs.

Approved-by: Patrick Fic
2025-10-11 01:35:51 +00:00
Dave
8e6c809fc6 Update 2025-10-10 16:02:56 -04:00
Dave
41afedd02c Change Delemiters in BullMQ, was using an invalid : 2025-10-10 15:58:32 -04:00
Allan Carr
11e0c3e507 Merged in hotfix/2025-10-09 (pull request #2624)
Hotfix/2025 10 09
2025-10-09 17:57:20 +00:00
Allan Carr
6c1c7c9c2c Merged in feature/IO-3386-carfax-rps (pull request #2623)
Feature/IO-3386 carfax rps
2025-10-09 17:55:21 +00:00
Dave Richer
e3df22160b Merged in release/2025-10-17 (pull request #2621)
Release/2025 10 17 into master-AIO - IO-3330, IO-3356, IO-3365, IO-3368, IO-3373, IO-3386, IO-3388, IO-3389, IO-3390, IO-3395
2025-10-08 01:22:16 +00:00
Allan Carr
34d70f6a18 Merged in feature/IO-3373-Dashboard-Component-Redux-Fix (pull request #2618)
IO-3373 Remove Cache Eviction

Approved-by: Dave Richer
2025-10-07 18:40:51 +00:00
Allan Carr
fc1bf213c7 Merged in feature/IO-3395-Postback-Payment-Date (pull request #2614)
IO-3395 Postback Payment Date

Approved-by: Dave Richer
2025-10-07 18:40:28 +00:00
Allan Carr
4dc72986d0 IO-3373 Remove Cache Eviction
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2025-10-07 11:07:12 -07:00
Allan Carr
f19b9cb8e1 IO-3395 Postback Payment Date
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2025-10-07 10:59:10 -07:00
Allan Carr
bdd5056c9a IO-3395 Postback Payment Date
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2025-10-06 21:35:31 -07:00
Allan Carr
4f6db827e7 IO-3395 Postback Payment Date
Signed-off-by: Allan Carr <allan@imexsystems.ca>
2025-10-06 17:50:19 -07:00
Patrick Fic
15792cb0ef Merged in hotfix/2025-10-06-remove-amplitude (pull request #2612)
Hotfix/2025 10 06 remove amplitude
2025-10-06 15:33:23 +00:00
7 changed files with 33 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
import Icon, { SyncOutlined } from "@ant-design/icons"; import Icon, { SyncOutlined } from "@ant-design/icons";
import { useMutation, useQuery, useApolloClient } from "@apollo/client"; import { useMutation, useQuery } from "@apollo/client";
import { Button, Dropdown, Space } from "antd"; import { Button, Dropdown, Space } from "antd";
import { PageHeader } from "@ant-design/pro-layout"; import { PageHeader } from "@ant-design/pro-layout";
import { useMemo, useState, useEffect } from "react"; import { useMemo, useState, useEffect } from "react";
@@ -33,7 +33,6 @@ const mapDispatchToProps = () => ({
export function DashboardGridComponent({ currentUser }) { export function DashboardGridComponent({ currentUser }) {
const { t } = useTranslation(); const { t } = useTranslation();
const client = useApolloClient();
const notification = useNotification(); const notification = useNotification();
// Constants for layout defaults // Constants for layout defaults
@@ -114,11 +113,6 @@ export function DashboardGridComponent({ currentUser }) {
return false; return false;
} }
// Note: Removed Apollo cache update to prevent triggering unwanted Redux actions
// Instead, evict the dashboard bodyshop query from cache to ensure fresh data on next fetch
client.cache.evict({ fieldName: "dashboard_bodyshops" });
client.cache.gc();
return true; return true;
} catch (err) { } catch (err) {
console.error(`Dashboard ${errorContext} failed`, err); console.error(`Dashboard ${errorContext} failed`, err);

View File

@@ -15,21 +15,29 @@ export const EmailSettings = {
export const TemplateList = (type, context) => { export const TemplateList = (type, context) => {
//const { bodyshop } = store.getState().user; //const { bodyshop } = store.getState().user;
const casl = InstanceRenderManager({
imex: {
casl_authorization: {
title: i18n.t("printcenter.jobs.casl_authorization"),
description: "",
subject: i18n.t("printcenter.jobs.casl_authorization"),
key: "casl_authorization",
disabled: false,
group: "authorization",
regions: {
CA: true
}
}
},
rome: {}
});
return { return {
//If there's no type or the type is job, send it back. //If there's no type or the type is job, send it back.
...(!type || type === "job" ...(!type || type === "job"
? { ? {
casl_authorization: { ...casl,
title: i18n.t("printcenter.jobs.casl_authorization"),
description: "",
subject: i18n.t("printcenter.jobs.casl_authorization"),
key: "casl_authorization",
disabled: false,
group: "authorization",
regions: {
CA: true
}
},
fippa_authorization: { fippa_authorization: {
title: i18n.t("printcenter.jobs.fippa_authorization"), title: i18n.t("printcenter.jobs.fippa_authorization"),
description: "", description: "",

View File

@@ -2902,6 +2902,7 @@ exports.GET_BODYSHOP_BY_ID = `
intellipay_config intellipay_config
state state
notification_followers notification_followers
timezone
} }
} }
`; `;
@@ -2993,6 +2994,7 @@ query GET_JOBID_BY_MERCHANTID_RONUMBER($merchantID: String!, $roNumber: String!)
id id
intellipay_config intellipay_config
email email
timezone
} }
} }
}`; }`;
@@ -3002,6 +3004,7 @@ query GET_BODYSHOP_BY_MERCHANTID($merchantID: String!) {
bodyshops(where: {intellipay_merchant_id: {_eq: $merchantID}}) { bodyshops(where: {intellipay_merchant_id: {_eq: $merchantID}}) {
id id
email email
timezone
} }
}`; }`;

View File

@@ -48,7 +48,9 @@ const handleCommentBasedPayment = async (values, decodedComment, logger, logMeta
payer: "Customer", payer: "Customer",
type: getPaymentType(ipMapping, values.cardtype), type: getPaymentType(ipMapping, values.cardtype),
jobid: p.jobid, jobid: p.jobid,
date: moment(Date.now()), date: moment()
.tz(bodyshop?.bodyshops_by_pk?.timezone ?? "UTC")
.format("YYYY-MM-DD"),
payment_responses: { payment_responses: {
data: { data: {
amount: values.total, amount: values.total,

View File

@@ -97,7 +97,9 @@ const handleInvoiceBasedPayment = async (values, logger, logMeta, res) => {
payer: "Customer", payer: "Customer",
type: getPaymentType(ipMapping, values.cardtype), type: getPaymentType(ipMapping, values.cardtype),
jobid: job.id, jobid: job.id,
date: moment(Date.now()) date: moment()
.tz(bodyshop?.timezone ?? "UTC")
.format("YYYY-MM-DD")
} }
}); });

View File

@@ -92,7 +92,7 @@ const loadAppQueue = async ({ pubClient, logger, redisHelpers, ioRedis }) => {
"consolidate-notifications", "consolidate-notifications",
{ jobId, recipients }, { jobId, recipients },
{ {
jobId: `consolidate:${jobId}`, jobId: `consolidate-${jobId}`,
delay: APP_CONSOLIDATION_DELAY, delay: APP_CONSOLIDATION_DELAY,
attempts: 3, attempts: 3,
backoff: LOCK_EXPIRATION backoff: LOCK_EXPIRATION
@@ -288,7 +288,7 @@ const dispatchAppsToQueue = async ({ appsToDispatch }) => {
await appQueue.add( await appQueue.add(
"add-notification", "add-notification",
{ jobId, bodyShopId, key, variables, recipients, body, jobRoNumber }, { jobId, bodyShopId, key, variables, recipients, body, jobRoNumber },
{ jobId: `${jobId}:${Date.now()}` } { jobId: `${jobId}-${Date.now()}` }
); );
devDebugLogger(`Added notification to queue for jobId ${jobId} with ${recipients.length} recipients`); devDebugLogger(`Added notification to queue for jobId ${jobId} with ${recipients.length} recipients`);
} }

View File

@@ -86,7 +86,7 @@ const loadEmailQueue = async ({ pubClient, logger }) => {
"consolidate-emails", "consolidate-emails",
{ jobId, jobRoNumber, bodyShopName, bodyShopTimezone }, { jobId, jobRoNumber, bodyShopName, bodyShopTimezone },
{ {
jobId: `consolidate:${jobId}`, jobId: `consolidate-${jobId}`,
delay: EMAIL_CONSOLIDATION_DELAY, delay: EMAIL_CONSOLIDATION_DELAY,
attempts: 3, attempts: 3,
backoff: LOCK_EXPIRATION backoff: LOCK_EXPIRATION
@@ -252,7 +252,7 @@ const dispatchEmailsToQueue = async ({ emailsToDispatch, logger }) => {
await emailAddQueue.add( await emailAddQueue.add(
"add-email-notification", "add-email-notification",
{ jobId, jobRoNumber, bodyShopName, bodyShopTimezone, body, recipients }, { jobId, jobRoNumber, bodyShopName, bodyShopTimezone, body, recipients },
{ jobId: `${jobId}:${Date.now()}` } { jobId: `${jobId}-${Date.now()}` }
); );
devDebugLogger(`Added email notification to queue for jobId ${jobId} with ${recipients.length} recipients`); devDebugLogger(`Added email notification to queue for jobId ${jobId} with ${recipients.length} recipients`);
} }