Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2277,6 +2277,10 @@ const ROUTES = {
return getUrlWithBackToParam(`workspaces/${policyID}/receipt-partners/${integration}/invite`, backTo);
},
},
WORKSPACE_RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT: {
route: 'workspaces/:policyID/receipt-partners/:integration/billing-account',
getRoute: (policyID: string, integration: string) => `workspaces/${policyID}/receipt-partners/${integration}/billing-account` as const,
},
WORKSPACE_RECEIPT_PARTNERS_INVITE_EDIT: {
route: 'workspaces/:policyID/receipt-partners/:integration/invite/edit',
getRoute: (policyID: string | undefined, integration: string, backTo?: string) => {
Expand Down
1 change: 1 addition & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,7 @@ const SCREENS = {
RECEIPT_PARTNERS: 'Workspace_Receipt_Partners',
RECEIPT_PARTNERS_INVITE: 'Workspace_Receipt_Partners_Invite',
RECEIPT_PARTNERS_INVITE_EDIT: 'Workspace_Receipt_Partners_Invite_Edit',
RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT: 'Workspace_Receipt_Partners_Change_Billing_Account',
RULES: 'Policy_Rules',
REPORTS_DEFAULT_TITLE: 'Reports_Default_Title',
RULES_AUTO_APPROVE_REPORTS_UNDER: 'Rules_Auto_Approve_Reports_Under',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3664,6 +3664,8 @@ ${amount} für ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'Ausstehend',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Gesperrt',
},
centralBillingAccount: 'Zentrales Abrechnungskonto',
centralBillingDescription: 'Wählen Sie, wohin alle Uber-Belege importiert werden sollen.',
invitationFailure: 'Der Teilnehmer konnte nicht zu Uber for Business eingeladen werden.',
autoInvite: 'Neue Workspace-Mitglieder zu Uber for Business einladen',
autoRemove: 'Entfernte Workspace-Mitglieder von Uber for Business deaktivieren',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3640,6 +3640,8 @@ const translations = {
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'Pending',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Suspended',
},
centralBillingAccount: 'Central billing account',
centralBillingDescription: 'Choose where to import all Uber receipts.',
invitationFailure: 'Failed to invite member to Uber for Business',
autoInvite: 'Invite new workspace members to Uber for Business',
autoRemove: 'Deactivate removed workspace members from Uber for Business',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3638,6 +3638,8 @@ ${amount} para ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'Pendiente',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Suspendido',
},
centralBillingAccount: 'Cuenta de facturación central',
centralBillingDescription: 'Elija dónde importar todos los recibos de Uber.',
invitationFailure: 'Error al invitar miembro a Uber for Business',
autoInvite: 'Invitar a nuevos miembros del espacio de trabajo a Uber para Empresas',
autoRemove: 'Desactivar miembros del espacio de trabajo eliminados de Uber para Empresas',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3666,6 +3666,8 @@ ${amount} pour ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'En attente',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Suspendu',
},
centralBillingAccount: 'Compte de facturation central',
centralBillingDescription: 'Choisir où importer tous les reçus Uber.',
invitationFailure: "Impossible d'inviter un membre sur Uber for Business.",
autoInvite: "Inviter de nouveaux membres de l'espace de travail sur Uber",
autoRemove: "Désactiver les membres supprimés de l'espace de travail sur Uber",
Expand Down
2 changes: 2 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3673,6 +3673,8 @@ ${amount} per ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'In attesa',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Sospeso',
},
centralBillingAccount: 'Conto di fatturazione centrale',
centralBillingDescription: 'Scegli dove importare tutte le ricevute Uber.',
invitationFailure: 'Impossibile inviare il membro a Uber for Business',
autoInvite: "Invita nuovi membri dell'area di lavoro su Uber for Business",
autoRemove: "Disattiva i membri dell'area di lavoro rimossi da Uber for Business",
Expand Down
2 changes: 2 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3652,6 +3652,8 @@ ${date} - ${merchant}に${amount}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: '保留中',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: '停止中',
},
centralBillingAccount: '中央請求アカウント',
centralBillingDescription: 'Uberの領収書をすべてインポートする場所を選択してください。',
invitationFailure: 'メンバーを Uber for Business に招待できません。',
autoInvite: 'Uber for Business に新しいワークスペースメンバーを招待する',
autoRemove: 'Uber for Business から削除されたワークスペースメンバーを非アクティブ化する',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3674,6 +3674,8 @@ ${amount} voor ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'In behandeling',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Opgeschort',
},
centralBillingAccount: 'Central faktureringskonto',
centralBillingDescription: 'Vælg, hvor alle Uber-kvitteringer skal importeres.',
invitationFailure: 'Kan geen lid uitnodigen voor Uber for Business',
autoInvite: 'Nodig nieuwe werkruimteleden uit voor Uber for Business',
autoRemove: 'Deactiveer verwijderde werkruimteleden van Uber for Business',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3666,6 +3666,8 @@ ${amount} dla ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'Oczekujące',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Zawieszone',
},
centralBillingAccount: 'Centralne konto rozliczeniowe',
centralBillingDescription: 'Wybierz, gdzie importować wszystkie paragony z Ubera.',
invitationFailure: 'Nie można zaprosić członka do Ubera dla Firm.',
autoInvite: 'Zaproś nowych członków przestrzeni roboczej do Ubera dla Firm',
autoRemove: 'Dezaktywuj usuniętych członków przestrzeni roboczej w Uberze dla Firm',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3665,6 +3665,8 @@ ${amount} para ${merchant} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: 'Pendente',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: 'Suspenso',
},
centralBillingAccount: 'Conta de cobrança central',
centralBillingDescription: 'Escolha onde importar todos os recibos do Uber.',
invitationFailure: 'Não é possível convidar um membro para o Uber for Business',
autoInvite: 'Convidar novos membros do espaço de trabalho para o Uber for Business',
autoRemove: 'Desativar membros removidos do espaço de trabalho do Uber for Business',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3614,6 +3614,8 @@ ${merchant}的${amount} - ${date}`,
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.LINKED_PENDING_APPROVAL]: '待处理',
[CONST.POLICY.RECEIPT_PARTNERS.UBER_EMPLOYEE_STATUS.SUSPENDED]: '已暂停',
},
centralBillingAccount: '中央结算账户',
centralBillingDescription: '选择导入所有 Uber 收据的位置',
invitationFailure: '无法邀请会员加入 Uber for Business。',
autoInvite: '邀请新工作区成员加入 Uber for Business',
autoRemove: '停用已从 Uber for Business 移除的工作区成员',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
type ChangePolicyUberBillingAccountPageParams = {
policyID: string;
email: string;
};

export default ChangePolicyUberBillingAccountPageParams;
1 change: 1 addition & 0 deletions src/libs/API/parameters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ export type {default as RequestReplacementExpensifyCardParams} from './RequestRe
export type {default as RequestUnlinkValidationLinkParams} from './RequestUnlinkValidationLinkParams';
export type {default as RequestAccountValidationLinkParams} from './RequestAccountValidationLinkParams';
export type {default as ResolveActionableMentionWhisperParams} from './ResolveActionableMentionWhisperParams';
export type {default as ChangePolicyUberBillingAccountPageParams} from './ChangePolicyUberBillingAccountPageParams';
export type {default as ResolveActionableReportMentionWhisperParams} from './ResolveActionableReportMentionWhisperParams';
export type {default as RevealExpensifyCardDetailsParams} from './RevealExpensifyCardDetailsParams';
export type {default as SearchForReportsParams} from './SearchForReportsParams';
Expand Down
2 changes: 2 additions & 0 deletions src/libs/API/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ const WRITE_COMMANDS = {
CHRONOS_REMOVE_OOO_EVENT: 'Chronos_RemoveOOOEvent',
MAKE_DEFAULT_PAYMENT_METHOD: 'MakeDefaultPaymentMethod',
TOGGLE_WORKSPACE_UBER_AUTO_INVITE: 'ToggleWorkspaceUberAutoInvite',
SET_WORKSPACE_UBER_CENTRAL_BILL: 'SetWorkspaceUberCentralBill',
TOGGLE_WORKSPACE_UBER_AUTO_REMOVE: 'ToggleWorkspaceUberAutoRemove',
ADD_PAYMENT_CARD: 'AddPaymentCard',
ADD_PAYMENT_CARD_SCA: 'AddPaymentCardSCA',
Expand Down Expand Up @@ -543,6 +544,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.CARD_DEACTIVATE]: Parameters.CardDeactivateParams;
[WRITE_COMMANDS.MAKE_DEFAULT_PAYMENT_METHOD]: Parameters.MakeDefaultPaymentMethodParams;
[WRITE_COMMANDS.TOGGLE_WORKSPACE_UBER_AUTO_INVITE]: Parameters.TogglePolicyUberAutoInvitePageParams;
[WRITE_COMMANDS.SET_WORKSPACE_UBER_CENTRAL_BILL]: Parameters.ChangePolicyUberBillingAccountPageParams;
[WRITE_COMMANDS.TOGGLE_WORKSPACE_UBER_AUTO_REMOVE]: Parameters.TogglePolicyUberAutoRemovePageParams;
[WRITE_COMMANDS.ADD_PAYMENT_CARD]: Parameters.AddPaymentCardParams;
[WRITE_COMMANDS.ADD_PAYMENT_CARD_SCA]: Parameters.AddPaymentCardParams;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -759,6 +759,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
[SCREENS.WORKSPACE.PER_DIEM_EDIT_CURRENCY]: () => require<ReactComponentModule>('../../../../pages/workspace/perDiem/EditPerDiemCurrencyPage').default,
[SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE]: () => require<ReactComponentModule>('../../../../pages/workspace/receiptPartners/InviteReceiptPartnerPolicyPage').default,
[SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/receiptPartners/EditInviteReceiptPartnerPolicyPage').default,
[SCREENS.WORKSPACE.RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT]: () => require<ReactComponentModule>('../../../../pages/workspace/receiptPartners/ChangeReceiptBillingAccountPage').default,
});

const TwoFactorAuthenticatorStackNavigator = createModalStackNavigator<EnablePaymentsNavigatorParamList>({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
[SCREENS.WORKSPACE.RECEIPT_PARTNERS]: [
SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE,
SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE_EDIT,
SCREENS.WORKSPACE.RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT,
CONST.TAB.RECEIPT_PARTNERS.ALL,
CONST.TAB.RECEIPT_PARTNERS.LINKED,
CONST.TAB.RECEIPT_PARTNERS.OUTSTANDING,
Expand Down
3 changes: 3 additions & 0 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,9 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
[SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE]: {
path: ROUTES.WORKSPACE_RECEIPT_PARTNERS_INVITE.route,
},
[SCREENS.WORKSPACE.RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT]: {
path: ROUTES.WORKSPACE_RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT.route,
},

[SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE_EDIT]: {
path: ROUTES.WORKSPACE_RECEIPT_PARTNERS_INVITE_EDIT.route,
Expand Down
4 changes: 4 additions & 0 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1958,6 +1958,10 @@ type WorkspaceSplitNavigatorParamList = {
integration: string;
backTo?: Routes;
};
[SCREENS.WORKSPACE.RECEIPT_PARTNERS_CHANGE_BILLING_ACCOUNT]: {
policyID: string;
integration: string;
};

[SCREENS.WORKSPACE.RECEIPT_PARTNERS_INVITE_EDIT]: {
policyID: string;
Expand Down
37 changes: 37 additions & 0 deletions src/libs/actions/Policy/Policy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import * as API from '@libs/API';
import type {
AddBillingCardAndRequestWorkspaceOwnerChangeParams,
AddPaymentCardParams,
ChangePolicyUberBillingAccountPageParams,
CreateWorkspaceFromIOUPaymentParams,
CreateWorkspaceParams,
DeleteWorkspaceAvatarParams,
Expand Down Expand Up @@ -3011,6 +3012,41 @@ function togglePolicyUberAutoInvite(policyID: string | undefined, enabled: boole
API.write(WRITE_COMMANDS.TOGGLE_WORKSPACE_UBER_AUTO_INVITE, params, {optimisticData, successData, failureData});
}

function changePolicyUberBillingAccount(policyID: string | undefined, email: string, oldEmail: string) {
if (!policyID) {
Log.warn('changePolicyUberBillingAccount invalid params', {policyID});
return;
}

const optimisticData: OnyxUpdate[] = [
{
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
onyxMethod: Onyx.METHOD.MERGE,
value: {
receiptPartners: {uber: {centralBillingAccountEmail: email, pendingFields: {centralBillingAccountEmail: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE}}},
},
},
];
const successData: OnyxUpdate[] = [
{
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
onyxMethod: Onyx.METHOD.MERGE,
value: {receiptPartners: {uber: {pendingFields: null}}},
},
];
const failureData: OnyxUpdate[] = [
{
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
onyxMethod: Onyx.METHOD.MERGE,
value: {receiptPartners: {uber: {centralBillingAccountEmail: oldEmail, pendingFields: null}}},
},
];

const params: ChangePolicyUberBillingAccountPageParams = {policyID, email};

API.write(WRITE_COMMANDS.SET_WORKSPACE_UBER_CENTRAL_BILL, params, {optimisticData, successData, failureData});
}

function togglePolicyUberAutoRemove(policyID: string | undefined, enabled: boolean) {
if (!policyID) {
Log.warn('togglePolicyUberAutoRemove invalid params', {policyID});
Expand Down Expand Up @@ -6393,6 +6429,7 @@ export {
enablePolicyReportFields,
enablePolicyTaxes,
enablePolicyWorkflows,
changePolicyUberBillingAccount,
enableDistanceRequestTax,
enablePolicyInvoicing,
openPolicyMoreFeaturesPage,
Expand Down
Loading
Loading