diff --git a/src/languages/de.ts b/src/languages/de.ts
index 6b8c6f2eadb6..fff51333812c 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -4478,6 +4478,7 @@ ${amount} für ${merchant} – ${date}`,
deleteConfirmation: 'Möchten Sie diesen Workspace wirklich löschen?',
deleteWithCardsConfirmation: 'Möchtest du diesen Workspace wirklich löschen? Dadurch werden alle Kartenfeeds und zugewiesenen Karten entfernt.',
deleteOpenExpensifyCardsError: 'Ihre Firma hat noch Expensify Karten. Bitte wenden Sie sich an Concierge, um sie zu entfernen.',
+ deleteTravelInvoicingError: 'Ihr Unternehmen hat die Konsolidierte Reiseabrechnung noch aktiviert.',
outstandingBalanceWarning:
'Sie haben einen offenen Saldo, der beglichen werden muss, bevor Sie Ihren letzten Workspace löschen können. Bitte gehen Sie zu Ihren Abonnementeinstellungen, um die Zahlung abzuschließen.',
settleBalance: 'Zu Abo wechseln',
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 216a3d60c119..63fc5eeb1fe7 100644
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -4586,6 +4586,7 @@ const translations = {
deleteConfirmation: 'Are you sure you want to delete this workspace?',
deleteWithCardsConfirmation: 'Are you sure you want to delete this workspace? This will remove all card feeds and assigned cards.',
deleteOpenExpensifyCardsError: 'Your company still has Expensify Cards. Please reach out to Concierge to remove them.',
+ deleteTravelInvoicingError: 'Your company still has Consolidated Travel Billing enabled.',
outstandingBalanceWarning:
'You have an outstanding balance that must be settled before deleting your last workspace. Please go to your subscription settings to resolve the payment.',
settleBalance: 'Go to subscription',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 9bf1359733ee..a9ec2e306676 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -4357,6 +4357,7 @@ ${amount} para ${merchant} - ${date}`,
deleteConfirmation: '¿Estás seguro de que quieres eliminar este espacio de trabajo?',
deleteWithCardsConfirmation: '¿Estás seguro de que quieres eliminar este espacio de trabajo? Se eliminarán todos los datos de las tarjetas y las tarjetas asignadas.',
deleteOpenExpensifyCardsError: 'Tu empresa todavía tiene Tarjetas Expensify. Por favor, contacta con Concierge para eliminarlas.',
+ deleteTravelInvoicingError: 'Tu empresa todavía tiene habilitada la Facturación Consolidada de Viajes.',
outstandingBalanceWarning:
'Tienes un saldo pendiente que debe liquidarse antes de eliminar tu último espacio de trabajo. Por favor, ve a la configuración de tu suscripción para resolver el pago.',
settleBalance: 'Ir a Suscripción',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 2f9ae12fa815..434af314bec8 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -4488,6 +4488,7 @@ ${amount} pour ${merchant} - ${date}`,
deleteConfirmation: 'Voulez-vous vraiment supprimer cet espace de travail ?',
deleteWithCardsConfirmation: 'Voulez-vous vraiment supprimer cet espace de travail ? Cela supprimera tous les flux de cartes et les cartes assignées.',
deleteOpenExpensifyCardsError: 'Votre entreprise a encore des Cartes Expensify. Veuillez contacter Concierge pour les supprimer.',
+ deleteTravelInvoicingError: 'Votre entreprise a toujours la facturation de voyages consolidée activée.',
outstandingBalanceWarning:
'Vous avez un solde impayé qui doit être réglé avant de supprimer votre dernier espace de travail. Veuillez accéder à vos paramètres d’abonnement pour résoudre le paiement.',
settleBalance: 'Aller à l’abonnement',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 6e49ff0d79c0..a6187102ef20 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -4463,6 +4463,7 @@ ${amount} per ${merchant} - ${date}`,
deleteConfirmation: 'Sei sicuro di voler eliminare questo spazio di lavoro?',
deleteWithCardsConfirmation: 'Sei sicuro di voler eliminare questo spazio di lavoro? Questa azione rimuoverà tutti i feed delle carte e le carte assegnate.',
deleteOpenExpensifyCardsError: 'La tua azienda ha ancora delle Carte Expensify. Per favore, contatta Concierge per rimuoverle.',
+ deleteTravelInvoicingError: 'La tua azienda ha ancora la Fatturazione Viaggi Consolidata attivata.',
outstandingBalanceWarning:
'Hai un saldo in sospeso che deve essere saldato prima di eliminare il tuo ultimo workspace. Vai alle impostazioni dell’abbonamento per risolvere il pagamento.',
settleBalance: 'Vai all’abbonamento',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 2bde735c0fe4..c63e7d375f53 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -4427,6 +4427,7 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの'
deleteConfirmation: 'このワークスペースを削除してもよろしいですか?',
deleteWithCardsConfirmation: 'このワークスペースを削除してもよろしいですか? すべてのカードフィードと割り当て済みカードが削除されます。',
deleteOpenExpensifyCardsError: '御社にはまだ Expensify カードが残っています。削除するには、Concierge までお問い合わせください。',
+ deleteTravelInvoicingError: 'お客様の会社では、統合トラベル請求がまだ有効になっています。',
outstandingBalanceWarning: '最後のワークスペースを削除する前に精算する必要がある未払残高があります。支払いを解決するには、サブスクリプション設定に移動してください。',
settleBalance: 'サブスクリプションに移動',
unavailable: '利用できないワークスペース',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 3bf61f9c238e..8f6d2f0af721 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -4458,6 +4458,7 @@ ${amount} voor ${merchant} - ${date}`,
deleteConfirmation: 'Weet je zeker dat je deze werkruimte wilt verwijderen?',
deleteWithCardsConfirmation: 'Weet je zeker dat je deze werkruimte wilt verwijderen? Hiermee worden alle kaartfeeds en toegewezen kaarten verwijderd.',
deleteOpenExpensifyCardsError: 'Je bedrijf heeft nog Expensify Kaarten. Neem contact op met Concierge om ze te verwijderen.',
+ deleteTravelInvoicingError: 'Je bedrijf heeft nog steeds Geconsolideerde Reisfacturering ingeschakeld.',
outstandingBalanceWarning:
'Je hebt een openstaand saldo dat moet worden vereffend voordat je je laatste werkruimte kunt verwijderen. Ga naar je abonnementsinstellingen om de betaling af te ronden.',
settleBalance: 'Ga naar abonnement',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index b4c34c53be25..32d0572a8403 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -4444,6 +4444,7 @@ ${amount} dla ${merchant} - ${date}`,
deleteConfirmation: 'Czy na pewno chcesz usunąć tę przestrzeń roboczą?',
deleteWithCardsConfirmation: 'Na pewno chcesz usunąć tę przestrzeń roboczą? Spowoduje to usunięcie wszystkich źródeł kart i przypisanych kart.',
deleteOpenExpensifyCardsError: 'Twoja firma wciąż ma Karty Expensify. Prosimy, skontaktuj się z Concierge, aby je usunąć.',
+ deleteTravelInvoicingError: 'Twoja firma nadal ma włączone Skonsolidowane Rozliczanie Podróży.',
outstandingBalanceWarning:
'Masz zaległe saldo, które musi zostać uregulowane przed usunięciem ostatniego miejsca pracy. Przejdź do ustawień subskrypcji, aby uregulować płatność.',
settleBalance: 'Przejdź do subskrypcji',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 429816f1f138..ef4e5b8d0d1f 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -4448,6 +4448,7 @@ ${amount} para ${merchant} - ${date}`,
deleteConfirmation: 'Tem certeza de que deseja excluir este workspace?',
deleteWithCardsConfirmation: 'Tem certeza de que deseja excluir este workspace? Isso removerá todos os feeds de cartão e cartões atribuídos.',
deleteOpenExpensifyCardsError: 'Sua empresa ainda tem Cartões Expensify. Por favor, fale com o Concierge para removê-los.',
+ deleteTravelInvoicingError: 'Sua empresa ainda tem o Faturamento de Viagens Consolidado ativado.',
outstandingBalanceWarning:
'Você tem um saldo pendente que precisa ser quitado antes de excluir seu último espaço de trabalho. Acesse as configurações de assinatura para resolver o pagamento.',
settleBalance: 'Ir para a assinatura',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 286066528d33..43e4239bce70 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -4336,6 +4336,7 @@ ${amount},商户:${merchant} - 日期:${date}`,
deleteConfirmation: '确定要删除此工作区吗?',
deleteWithCardsConfirmation: '确定要删除此工作区吗?这将移除所有卡片数据源和已分配的卡片。',
deleteOpenExpensifyCardsError: '您的公司仍在使用 Expensify 卡。请联系 Concierge以停用它们。',
+ deleteTravelInvoicingError: '您的公司仍然启用了合并差旅账单。',
outstandingBalanceWarning: '您有一笔未结清的余额,必须在删除最后一个工作区之前结清。请前往订阅设置以解决付款问题。',
settleBalance: '前往订阅',
unavailable: '工作区不可用',
diff --git a/src/pages/workspace/deleteWorkspace/DeleteWorkspaceFlow.tsx b/src/pages/workspace/deleteWorkspace/DeleteWorkspaceFlow.tsx
index e07c603f9c35..d4d5af562d65 100644
--- a/src/pages/workspace/deleteWorkspace/DeleteWorkspaceFlow.tsx
+++ b/src/pages/workspace/deleteWorkspace/DeleteWorkspaceFlow.tsx
@@ -13,12 +13,13 @@ import useThemeStyles from '@hooks/useThemeStyles';
import useTransactionViolationOfWorkspace from '@hooks/useTransactionViolationOfWorkspace';
import {calculateBillNewDot, deleteWorkspace, dismissWorkspaceError} from '@libs/actions/Policy/Policy';
-import {filterInactiveCards} from '@libs/CardUtils';
+import {filterInactiveCards, getCardSettings} from '@libs/CardUtils';
import {getLatestErrorMessage} from '@libs/ErrorUtils';
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
import Navigation from '@libs/Navigation/Navigation';
import {isPendingDeletePolicy, shouldBlockWorkspaceDeletionForInvoicifyUser} from '@libs/PolicyUtils';
import {isSubscriptionTypeOfInvoicing} from '@libs/SubscriptionUtils';
+import {getIsTravelInvoicingEnabled, getTravelInvoicingCardSettingsKey} from '@libs/TravelInvoicingUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
@@ -83,6 +84,7 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
const [cardsList, cardsListResult] = useOnyx(`${ONYXKEYS.COLLECTION.WORKSPACE_CARDS_LIST}${workspaceAccountID}_${CONST.EXPENSIFY_CARD.BANK}`, {
selector: filterInactiveCards,
});
+ const [travelCardSettings, travelCardSettingsResult] = useOnyx(getTravelInvoicingCardSettingsKey(workspaceAccountID));
const {reportsToArchive, transactionViolations, reportsResult, transactionsResult, transactionViolationsResult} = useTransactionViolationOfWorkspace(policyID);
const [accountIDToLogin] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: accountIDToLoginSelector(reportsToArchive)});
@@ -93,6 +95,7 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
privateSubscriptionResult,
cardFeedsResult,
cardsListResult,
+ travelCardSettingsResult,
reportsResult,
transactionsResult,
transactionViolationsResult,
@@ -104,6 +107,7 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
((policy?.areExpensifyCardsEnabled || policy?.areCompanyCardsEnabled) && policy?.policyAccountID);
const hasExpensifyCardsEnabledOnWorkspace = !!policy?.areExpensifyCardsEnabled && !!policy?.policyAccountID;
+ const hasTravelInvoicingEnabledOnWorkspace = getIsTravelInvoicingEnabled(getCardSettings(travelCardSettings, CONST.TRAVEL.PROGRAM_TRAVEL_US));
const hasDeleteWorkspaceExpensifyCardsError = !!hasExpensifyCardsEnabledOnWorkspace && !isEmptyObject(cardsList) && !!isOffline;
const policyLatestErrorMessage = getLatestErrorMessage(policy);
@@ -133,7 +137,8 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
prompt: (
{
closeModal();
dismissDeleteWorkspaceFlow();
@@ -148,7 +153,7 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
}).then(() => {
dismissDeleteWorkspaceFlow();
});
- }, [closeModal, dismissDeleteWorkspaceFlow, isFocused, showConfirmModal, styles.flexRow, styles.renderHTML, translate]);
+ }, [closeModal, dismissDeleteWorkspaceFlow, hasExpensifyCardsEnabledOnWorkspace, isFocused, showConfirmModal, styles.flexRow, styles.renderHTML, translate]);
const showGenericDeleteWorkspaceErrorModal = useCallback(
(errorMessage: string) => {
@@ -260,7 +265,7 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
closeModal();
- if (policyLatestErrorMessage && hasExpensifyCardsEnabledOnWorkspace) {
+ if (policyLatestErrorMessage && (hasExpensifyCardsEnabledOnWorkspace || hasTravelInvoicingEnabledOnWorkspace)) {
showDeleteWorkspaceErrorModal();
return;
}
@@ -278,6 +283,7 @@ function DeleteWorkspaceFlow({policyID, onDismiss, onDeleteComplete}: DeleteWork
prevIsPendingDelete,
policyLatestErrorMessage,
hasExpensifyCardsEnabledOnWorkspace,
+ hasTravelInvoicingEnabledOnWorkspace,
closeModal,
onDeleteComplete,
onDismiss,