diff --git a/client/src/components/jobs-close-export-button/jobs-close-export-button.component.jsx b/client/src/components/jobs-close-export-button/jobs-close-export-button.component.jsx index 15d07e163..795e60110 100644 --- a/client/src/components/jobs-close-export-button/jobs-close-export-button.component.jsx +++ b/client/src/components/jobs-close-export-button/jobs-close-export-button.component.jsx @@ -20,6 +20,19 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, }); +function updateJobCache(items) { + client.cache.modify({ + id: "ROOT_QUERY", + fields: { + jobs(existingJobs = []) { + return existingJobs.filter( + (jobRef) => jobRef.__ref.includes(items) === false + ); + }, + }, + }); +} + export function JobsCloseExportButton({ bodyshop, currentUser, @@ -160,39 +173,17 @@ export function JobsCloseExportButton({ date_exported: new Date(), }, }, - update(cache) { - cache.modify({ - id: "ROOT_QUERY", - fields: { - jobs(existingJobs = []) { - return existingJobs.filter( - (jobRef) => - jobRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "jobid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); - }, }); - if (!jobUpdateResponse.errors) { + if (!!!jobUpdateResponse.errors) { notification.open({ type: "success", key: "jobsuccessexport", message: t("jobs.successes.exported"), }); + updateJobCache( + jobUpdateResponse.data.update_jobs.returning.map((job) => job.id) + ); } else { notification["error"]({ message: t("jobs.errors.exporting", { @@ -207,29 +198,18 @@ export function JobsCloseExportButton({ key: "jobsuccessexport", message: t("jobs.successes.exported"), }); - client.cache.modify({ - id: "ROOT_QUERY", - fields: { - jobs(existingJobs = []) { - return existingJobs.filter( - (jobRef) => - jobRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "jobid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); + updateJobCache([ + ...new Set( + successfulTransactions.map( + (st) => + st[ + bodyshop.accountingconfig && bodyshop.accountingconfig.qbo + ? "jobid" + : "id" + ] + ) + ), + ]); } if (setSelectedJobs) { setSelectedJobs((selectedJobs) => { diff --git a/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx b/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx index b584fb3e3..15fdb32b4 100644 --- a/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx +++ b/client/src/components/jobs-export-all-button/jobs-export-all-button.component.jsx @@ -20,6 +20,19 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, }); +function updateJobCache(items) { + client.cache.modify({ + id: "ROOT_QUERY", + fields: { + jobs(existingJobs = []) { + return existingJobs.filter( + (jobRef) => jobRef.__ref.includes(items) === false + ); + }, + }, + }); +} + export function JobsExportAllButton({ bodyshop, currentUser, @@ -97,7 +110,7 @@ export function JobsExportAllButton({ Object.keys(groupedData).map(async (key) => { //Check to see if any of them failed. If they didn't don't execute the update. const failedTransactions = groupedData[key].filter((r) => !r.success); - const successfulTransactions = PartnerResponse.data.filter( + const successfulTransactions = groupedData[key].filter( (r) => r.success ); if (failedTransactions.length > 0) { @@ -156,39 +169,19 @@ export function JobsExportAllButton({ date_exported: new Date(), }, }, - update(cache) { - cache.modify({ - id: "ROOT_QUERY", - fields: { - jobs(existingJobs = []) { - return existingJobs.filter( - (jobRef) => - jobRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "jobid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); - }, }); - if (!jobUpdateResponse.errors) { + if (!!!jobUpdateResponse.errors) { notification.open({ type: "success", key: "jobsuccessexport", message: t("jobs.successes.exported"), }); + updateJobCache( + jobUpdateResponse.data.update_jobs.returning.map( + (job) => job.id + ) + ); } else { notification["error"]({ message: t("jobs.errors.exporting", { @@ -203,27 +196,18 @@ export function JobsExportAllButton({ key: "jobsuccessexport", message: t("jobs.successes.exported"), }); - client.cache.modify({ - id: "ROOT_QUERY", - fields: { - jobs(existingJobs = []) { - return existingJobs.filter( - (jobRef) => - jobRef.__ref.includes( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "jobid" - : "id" - ] - ) - ) === false - ); - }, - }, - }); + updateJobCache([ + ...new Set( + successfulTransactions.map( + (st) => + st[ + bodyshop.accountingconfig && bodyshop.accountingconfig.qbo + ? "jobid" + : "id" + ] + ) + ), + ]); } } }) diff --git a/client/src/components/payable-export-all-button/payable-export-all-button.component.jsx b/client/src/components/payable-export-all-button/payable-export-all-button.component.jsx index dcd7cca4d..723fd0526 100644 --- a/client/src/components/payable-export-all-button/payable-export-all-button.component.jsx +++ b/client/src/components/payable-export-all-button/payable-export-all-button.component.jsx @@ -21,6 +21,19 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, }); +function updateBillCache(items) { + client.cache.modify({ + id: "ROOT_QUERY", + fields: { + bills(existingJobs = []) { + return existingJobs.filter( + (billRef) => billRef.__ref.includes(items) === false + ); + }, + }, + }); +} + export function PayableExportAll({ bodyshop, currentUser, @@ -97,7 +110,7 @@ export function PayableExportAll({ proms.push( (async () => { const failedTransactions = groupedData[key].filter((r) => !r.success); - const successfulTransactions = PartnerResponse.data.filter( + const successfulTransactions = groupedData[key].filter( (r) => r.success ); if (failedTransactions.length > 0) { @@ -159,31 +172,6 @@ export function PayableExportAll({ exported_at: new Date(), }, }, - update(cache) { - cache.modify({ - id: "ROOT_QUERY", - fields: { - bills(existingJobs = []) { - return existingJobs.filter( - (billRef) => - billRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "billid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); - }, }); if (!!!billUpdateResponse.errors) { notification.open({ @@ -191,6 +179,11 @@ export function PayableExportAll({ key: "billsuccessexport", message: t("bills.successes.exported"), }); + updateBillCache( + billUpdateResponse.data.update_bills.returning.map( + (bill) => bill.id + ) + ); } else { notification["error"]({ message: t("bills.errors.exporting", { @@ -205,29 +198,19 @@ export function PayableExportAll({ key: "billsuccessexport", message: t("bills.successes.exported"), }); - client.cache.modify({ - id: "ROOT_QUERY", - fields: { - bills(existingJobs = []) { - return existingJobs.filter( - (billRef) => - billRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "billid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); + updateBillCache([ + ...new Set( + successfulTransactions.map( + (st) => + st[ + bodyshop.accountingconfig && + bodyshop.accountingconfig.qbo + ? "billid" + : "id" + ] + ) + ), + ]); } } })() diff --git a/client/src/components/payable-export-button/payable-export-button.component.jsx b/client/src/components/payable-export-button/payable-export-button.component.jsx index 554ee475b..1836acb18 100644 --- a/client/src/components/payable-export-button/payable-export-button.component.jsx +++ b/client/src/components/payable-export-button/payable-export-button.component.jsx @@ -20,6 +20,19 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, }); +function updateBillCache(items) { + client.cache.modify({ + id: "ROOT_QUERY", + fields: { + bills(existingJobs = []) { + return existingJobs.filter( + (billRef) => billRef.__ref.includes(items) === false + ); + }, + }, + }); +} + export function PayableExportButton({ bodyshop, currentUser, @@ -152,31 +165,6 @@ export function PayableExportButton({ exported_at: new Date(), }, }, - update(cache) { - cache.modify({ - id: "ROOT_QUERY", - fields: { - bills(existingJobs = []) { - return existingJobs.filter( - (billRef) => - billRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "billid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); - }, }); if (!!!billUpdateResponse.errors) { notification.open({ @@ -184,6 +172,11 @@ export function PayableExportButton({ key: "billsuccessexport", message: t("bills.successes.exported"), }); + updateBillCache( + billUpdateResponse.data.update_bills.returning.map( + (bill) => bill.id + ) + ); } else { notification["error"]({ message: t("bills.errors.exporting", { @@ -198,29 +191,18 @@ export function PayableExportButton({ key: "billsuccessexport", message: t("bills.successes.exported"), }); - client.cache.modify({ - id: "ROOT_QUERY", - fields: { - bills(existingJobs = []) { - return existingJobs.filter( - (billRef) => - billRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "billid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); + updateBillCache([ + ...new Set( + successfulTransactions.map( + (st) => + st[ + bodyshop.accountingconfig && bodyshop.accountingconfig.qbo + ? "billid" + : "id" + ] + ) + ), + ]); } if (setSelectedBills) { diff --git a/client/src/components/payment-export-button/payment-export-button.component.jsx b/client/src/components/payment-export-button/payment-export-button.component.jsx index 6bbf5d8c7..91f9ccc88 100644 --- a/client/src/components/payment-export-button/payment-export-button.component.jsx +++ b/client/src/components/payment-export-button/payment-export-button.component.jsx @@ -20,6 +20,19 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, }); +function updatePaymentCache(items) { + client.cache.modify({ + id: "ROOT_QUERY", + fields: { + payments(existingJobs = []) { + return existingJobs.filter( + (paymentRef) => paymentRef.__ref.includes(items) === false + ); + }, + }, + }); +} + export function PaymentExportButton({ bodyshop, currentUser, @@ -151,31 +164,6 @@ export function PaymentExportButton({ exportedat: new Date(), }, }, - update(cache) { - cache.modify({ - id: "ROOT_QUERY", - fields: { - payments(existingJobs = []) { - return existingJobs.filter( - (paymentRef) => - paymentRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "paymentid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); - }, }); if (!!!paymentUpdateResponse.errors) { notification.open({ @@ -183,6 +171,11 @@ export function PaymentExportButton({ key: "paymentsuccessexport", message: t("payments.successes.exported"), }); + updatePaymentCache( + paymentUpdateResponse.data.update_payments.returning.map( + (payment) => payment.id + ) + ); } else { notification["error"]({ message: t("payments.errors.exporting", { @@ -204,29 +197,18 @@ export function PaymentExportButton({ key: "paymentsuccessexport", message: t("payments.successes.exported"), }); - client.cache.modify({ - id: "ROOT_QUERY", - fields: { - payments(existingJobs = []) { - return existingJobs.filter( - (paymentRef) => - paymentRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "paymentid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); + updatePaymentCache([ + ...new Set( + successfulTransactions.map( + (st) => + st[ + bodyshop.accountingconfig && bodyshop.accountingconfig.qbo + ? "paymentid" + : "id" + ] + ) + ), + ]); } if (!!loadingCallback) loadingCallback(false); setLoading(false); diff --git a/client/src/components/payments-export-all-button/payments-export-all-button.component.jsx b/client/src/components/payments-export-all-button/payments-export-all-button.component.jsx index 863487345..721e906d5 100644 --- a/client/src/components/payments-export-all-button/payments-export-all-button.component.jsx +++ b/client/src/components/payments-export-all-button/payments-export-all-button.component.jsx @@ -19,6 +19,19 @@ const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, }); +function updatePaymentCache(items) { + client.cache.modify({ + id: "ROOT_QUERY", + fields: { + payments(existingJobs = []) { + return existingJobs.filter( + (paymentRef) => paymentRef.__ref.includes(items) === false + ); + }, + }, + }); +} + export function PaymentsExportAllButton({ bodyshop, currentUser, @@ -85,7 +98,7 @@ export function PaymentsExportAllButton({ proms.push( (async () => { const failedTransactions = groupedData[key].filter((r) => !r.success); - const successfulTransactions = PartnerResponse.data.filter( + const successfulTransactions = groupedData[key].filter( (r) => r.success ); if (failedTransactions.length > 0) { @@ -146,31 +159,6 @@ export function PaymentsExportAllButton({ exportedat: new Date(), }, }, - update(cache) { - cache.modify({ - id: "ROOT_QUERY", - fields: { - payments(existingJobs = []) { - return existingJobs.filter( - (paymentRef) => - paymentRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "paymentid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); - }, }); if (!!!paymentUpdateResponse.errors) { notification.open({ @@ -178,6 +166,11 @@ export function PaymentsExportAllButton({ key: "paymentsuccessexport", message: t("payments.successes.exported"), }); + updatePaymentCache( + paymentUpdateResponse.data.update_payments.returning.map( + (payment) => payment.id + ) + ); } else { notification["error"]({ message: t("payments.errors.exporting", { @@ -192,29 +185,19 @@ export function PaymentsExportAllButton({ key: "paymentsuccessexport", message: t("payments.successes.exported"), }); - client.cache.modify({ - id: "ROOT_QUERY", - fields: { - payments(existingJobs = []) { - return existingJobs.filter( - (paymentRef) => - paymentRef.__ref.includes([ - ...new Set( - successfulTransactions.map( - (st) => - st[ - bodyshop.accountingconfig && - bodyshop.accountingconfig.qbo - ? "paymentid" - : "id" - ] - ) - ), - ]) === false - ); - }, - }, - }); + updatePaymentCache([ + ...new Set( + successfulTransactions.map( + (st) => + st[ + bodyshop.accountingconfig && + bodyshop.accountingconfig.qbo + ? "paymentid" + : "id" + ] + ) + ), + ]); } } })()