diff --git a/src/libs/actions/TaxRate.ts b/src/libs/actions/TaxRate.ts index 53f29473d1e3..387351e3f113 100644 --- a/src/libs/actions/TaxRate.ts +++ b/src/libs/actions/TaxRate.ts @@ -486,6 +486,8 @@ function renamePolicyTax(policyID: string, taxID: string, newName: string) { function setPolicyTaxCode(policyID: string, oldTaxCode: string, newTaxCode: string) { const policy = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`]; const originalTaxRate = {...policy?.taxRates?.taxes[oldTaxCode]}; + const oldDefaultExternalID = policy?.taxRates?.defaultExternalID; + const oldForeignTaxDefault = policy?.taxRates?.foreignTaxDefault; const onyxData: OnyxData = { optimisticData: [ { @@ -493,7 +495,8 @@ function setPolicyTaxCode(policyID: string, oldTaxCode: string, newTaxCode: stri key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { taxRates: { - defaultExternalID: oldTaxCode === policy?.taxRates?.defaultExternalID ? newTaxCode : policy?.taxRates?.defaultExternalID, + defaultExternalID: oldTaxCode === oldDefaultExternalID ? newTaxCode : oldDefaultExternalID, + foreignTaxDefault: oldTaxCode === oldForeignTaxDefault ? newTaxCode : oldForeignTaxDefault, taxes: { [oldTaxCode]: null, [newTaxCode]: { @@ -514,7 +517,8 @@ function setPolicyTaxCode(policyID: string, oldTaxCode: string, newTaxCode: stri key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { taxRates: { - defaultExternalID: oldTaxCode === policy?.taxRates?.defaultExternalID ? newTaxCode : policy?.taxRates?.defaultExternalID, + defaultExternalID: oldTaxCode === oldDefaultExternalID ? newTaxCode : oldDefaultExternalID, + foreignTaxDefault: oldTaxCode === oldForeignTaxDefault ? newTaxCode : oldForeignTaxDefault, taxes: { [oldTaxCode]: null, [newTaxCode]: { @@ -535,7 +539,8 @@ function setPolicyTaxCode(policyID: string, oldTaxCode: string, newTaxCode: stri key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { taxRates: { - defaultExternalID: policy?.taxRates?.defaultExternalID, + defaultExternalID: oldDefaultExternalID, + foreignTaxDefault: oldForeignTaxDefault, taxes: { [newTaxCode]: null, [oldTaxCode]: { diff --git a/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx b/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx index 4b97a3827e2b..0f50ed8fe0b8 100644 --- a/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx +++ b/src/pages/workspace/taxes/WorkspaceEditTaxPage.tsx @@ -38,7 +38,7 @@ function WorkspaceEditTaxPage({ const currentTaxID = PolicyUtils.getCurrentTaxID(policy, taxID); const currentTaxRate = currentTaxID && policy?.taxRates?.taxes?.[currentTaxID]; const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false); - const canEditTaxRate = policy && PolicyUtils.canEditTaxRate(policy, taxID); + const canEditTaxRate = policy && PolicyUtils.canEditTaxRate(policy, currentTaxID ?? taxID); const hasAccountingConnections = PolicyUtils.hasAccountingConnections(policy); const shouldShowDeleteMenuItem = canEditTaxRate && !hasAccountingConnections;