From 4cb4f2196708c97db62d89a8dec1bb29ed06d447 Mon Sep 17 00:00:00 2001 From: daledah Date: Tue, 30 Jul 2024 17:09:54 +0700 Subject: [PATCH] fix: correct last synced time --- src/libs/PolicyUtils.ts | 19 ++++++++++++++++--- .../accounting/PolicyAccountingPage.tsx | 5 ++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index 2f27f0185759..08d9f6954a41 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -22,6 +22,7 @@ import type { NetSuiteCustomSegment, NetSuiteTaxAccount, NetSuiteVendor, + PolicyConnectionSyncProgress, PolicyFeatureName, Rate, Tenant, @@ -746,14 +747,26 @@ function isNetSuiteCustomFieldPropertyEditable(customField: NetSuiteCustomList | return fieldsAllowedToEdit.includes(fieldKey); } -function getIntegrationLastSuccessfulDate(connection?: Connections[keyof Connections]) { +function getIntegrationLastSuccessfulDate(connection?: Connections[keyof Connections], connectionSyncProgress?: PolicyConnectionSyncProgress) { + let syncSuccessfulDate; if (!connection) { return undefined; } if ((connection as NetSuiteConnection)?.lastSyncDate) { - return (connection as NetSuiteConnection)?.lastSyncDate; + syncSuccessfulDate = (connection as NetSuiteConnection)?.lastSyncDate; + } else { + syncSuccessfulDate = (connection as ConnectionWithLastSyncData)?.lastSync?.successfulDate; } - return (connection as ConnectionWithLastSyncData)?.lastSync?.successfulDate; + + if ( + connectionSyncProgress && + connectionSyncProgress.stageInProgress === CONST.POLICY.CONNECTIONS.SYNC_STAGE_NAME.JOB_DONE && + syncSuccessfulDate && + connectionSyncProgress.timestamp > syncSuccessfulDate + ) { + syncSuccessfulDate = connectionSyncProgress.timestamp; + } + return syncSuccessfulDate; } function getCurrentSageIntacctEntityName(policy?: Policy): string | undefined { diff --git a/src/pages/workspace/accounting/PolicyAccountingPage.tsx b/src/pages/workspace/accounting/PolicyAccountingPage.tsx index 89bbfd75d538..f08426df2773 100644 --- a/src/pages/workspace/accounting/PolicyAccountingPage.tsx +++ b/src/pages/workspace/accounting/PolicyAccountingPage.tsx @@ -198,7 +198,10 @@ function PolicyAccountingPage({policy}: PolicyAccountingPageProps) { const connectedIntegration = getConnectedIntegration(policy, accountingIntegrations) ?? connectionSyncProgress?.connectionName; const policyID = policy?.id ?? '-1'; - const successfulDate = getIntegrationLastSuccessfulDate(connectedIntegration ? policy?.connections?.[connectedIntegration] : undefined); + const successfulDate = getIntegrationLastSuccessfulDate( + connectedIntegration ? policy?.connections?.[connectedIntegration] : undefined, + connectedIntegration === connectionSyncProgress?.connectionName ? connectionSyncProgress : undefined, + ); const tenants = useMemo(() => getXeroTenants(policy), [policy]); const currentXeroOrganization = findCurrentXeroOrganization(tenants, policy?.connections?.xero?.config?.tenantID);