diff --git a/src/languages/de.ts b/src/languages/de.ts
index 020ccf7147e6..3828ba795b80 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -5090,6 +5090,8 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
`Wählen Sie das ${integration}-Konto, in das die Transaktionen exportiert werden sollen. Wählen Sie eine andere Exportoption, um die verfügbaren Konten zu ändern.`,
lastUpdated: 'Zuletzt aktualisiert',
transactionStartDate: 'Transaktionsanfangsdatum',
+ changeTransactionStartDateWarning:
+ 'Durch das Ändern des Startdatums werden alle nicht gemeldeten/entworfenen Berichtstransaktionen entfernt und alle Transaktionen ab dem neuen Startdatum erneut importiert. Dies kann zu doppelten Transaktionen führen.',
updateCard: 'Karte aktualisieren',
unassignCard: 'Karte zuweisen aufheben',
unassign: 'Zuweisung aufheben',
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 9cc61cc8166f..ef141bcc0a97 100755
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -4991,6 +4991,8 @@ const translations = {
`Choose the ${integration} account where transactions should be exported. Select a different export option to change the available accounts.`,
lastUpdated: 'Last updated',
transactionStartDate: 'Transaction start date',
+ changeTransactionStartDateWarning:
+ 'Changing start date will remove all unreported/draft report transactions and reimport all transactions from the new start date. This can cause duplicate transactions.',
updateCard: 'Update card',
unassignCard: 'Unassign card',
unassign: 'Unassign',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 222e2131599a..202bf2663ca5 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -4728,6 +4728,8 @@ ${amount} para ${merchant} - ${date}`,
`Seleccione la cuenta ${integration} donde se deben exportar las transacciones. Seleccione una cuenta diferente opción de exportación para cambiar las cuentas disponibles.`,
lastUpdated: 'Última actualización',
transactionStartDate: 'Fecha de inicio de transacciones',
+ changeTransactionStartDateWarning:
+ 'Cambiar la fecha de inicio eliminará todas las transacciones no informadas o en borrador y volverá a importar todas las transacciones desde la nueva fecha de inicio. Esto puede causar transacciones duplicadas.',
updateCard: 'Actualizar tarjeta',
unassignCard: 'Desasignar tarjeta',
unassign: 'Desasignar',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 7bc96c367822..f0d149f05f7f 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -5096,6 +5096,8 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
`Choisissez le compte ${integration} vers lequel les transactions doivent être exportées. Sélectionnez une autre option d’exportation pour modifier les comptes disponibles.`,
lastUpdated: 'Dernière mise à jour',
transactionStartDate: 'Date de début de la transaction',
+ changeTransactionStartDateWarning:
+ 'La modification de la date de début supprimera toutes les transactions non déclarées/provisoires et réimportera toutes les transactions à partir de la nouvelle date de début. Cela peut entraîner des transactions en double.',
updateCard: 'Mettre à jour la carte',
unassignCard: 'Désattribuer la carte',
unassign: 'Désassigner',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index f8ae6fef71c9..2169379a499a 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -5075,6 +5075,8 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
`Scegli il conto ${integration} in cui esportare le transazioni. Seleziona una opzione di esportazione diversa per modificare i conti disponibili.`,
lastUpdated: 'Ultimo aggiornamento',
transactionStartDate: 'Data di inizio transazione',
+ changeTransactionStartDateWarning:
+ 'Modificando la data di inizio verranno eliminate tutte le transazioni non segnalate/bozze di segnalazione e verranno reimportate tutte le transazioni dalla nuova data di inizio. Ciò può causare transazioni duplicate.',
updateCard: 'Aggiorna carta',
unassignCard: 'Rimuovi assegnazione carta',
unassign: 'Rimuovi assegnazione',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index c9ea2e2d83b6..691632cc9b30 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -5042,6 +5042,8 @@ _より詳しい手順については、[ヘルプサイトをご覧ください
`取引をエクスポートする${integration}アカウントを選択してください。利用可能なアカウントを変更するには、別のエクスポートオプションを選択してください。`,
lastUpdated: '最終更新',
transactionStartDate: '取引開始日',
+ changeTransactionStartDateWarning:
+ '開始日を変更すると、未報告/下書きのレポート取引がすべて削除され、新しい開始日以降の取引がすべて再インポートされます。これにより取引の重複が発生する可能性があります。',
updateCard: 'カードを更新',
unassignCard: 'カードの割り当てを解除',
unassign: '割り当て解除',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index efb0e5be92bd..1313c6c37742 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -5070,6 +5070,8 @@ _Voor gedetailleerdere instructies, [bezoek onze helpsite](${CONST.NETSUITE_IMPO
`Kies de ${integration}-rekening waarnaar transacties moeten worden geëxporteerd. Selecteer een andere exportoptie om de beschikbare rekeningen te wijzigen.`,
lastUpdated: 'Laatst bijgewerkt',
transactionStartDate: 'Startdatum transactie',
+ changeTransactionStartDateWarning:
+ 'Als u de startdatum wijzigt, worden alle niet-gerapporteerde/conceptrapporttransacties verwijderd en worden alle transacties vanaf de nieuwe startdatum opnieuw geïmporteerd. Dit kan dubbele transacties veroorzaken.',
updateCard: 'Kaart bijwerken',
unassignCard: 'Kaart ontkoppelen',
unassign: 'Toewijzen verwijderen',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 4b158b362d7a..676da5d807ef 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -5056,6 +5056,8 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
`Wybierz konto ${integration}, do którego mają być eksportowane transakcje. Wybierz inną opcję eksportu, aby zmienić dostępne konta.`,
lastUpdated: 'Ostatnia aktualizacja',
transactionStartDate: 'Data początkowa transakcji',
+ changeTransactionStartDateWarning:
+ 'Zmiana daty rozpoczęcia spowoduje usunięcie wszystkich nieraportowanych lub transakcji w wersji roboczej i ponowne zaimportowanie wszystkich transakcji od nowej daty rozpoczęcia. Może to spowodować duplikaty transakcji.',
updateCard: 'Zaktualizuj kartę',
unassignCard: 'Cofnij przypisanie karty',
unassign: 'Cofnij przypisanie',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 94f3cf4ca44c..2936a11304c4 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -5058,6 +5058,8 @@ _Para instruções mais detalhadas, [visite nosso site de ajuda](${CONST.NETSUIT
`Escolha a conta do ${integration} para a qual as transações devem ser exportadas. Selecione uma opção de exportação diferente para alterar as contas disponíveis.`,
lastUpdated: 'Última atualização',
transactionStartDate: 'Data de início da transação',
+ changeTransactionStartDateWarning:
+ 'Alterar a data de início removerá todas as transações não reportadas ou em rascunho e reimportará todas as transações a partir da nova data de início. Isso pode causar transações duplicadas.',
updateCard: 'Atualizar cartão',
unassignCard: 'Desatribuir cartão',
unassign: 'Desatribuir',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 29373376dc3a..f030e410db91 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -4963,6 +4963,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
`选择要导出交易记录的 ${integration} 账户。请选择不同的导出选项以更改可用账户。`,
lastUpdated: '最近更新',
transactionStartDate: '交易开始日期',
+ changeTransactionStartDateWarning: '更改开始日期将删除所有未报告/草稿报表的交易,并从新开始日期重新导入所有交易。这可能导致重复交易。',
updateCard: '更新卡片',
unassignCard: '取消分配卡片',
unassign: '取消分配',
diff --git a/src/pages/workspace/companyCards/WorkspaceCompanyCardEditTransactionStartDatePage.tsx b/src/pages/workspace/companyCards/WorkspaceCompanyCardEditTransactionStartDatePage.tsx
index 5f4743beff8a..96545da557a8 100644
--- a/src/pages/workspace/companyCards/WorkspaceCompanyCardEditTransactionStartDatePage.tsx
+++ b/src/pages/workspace/companyCards/WorkspaceCompanyCardEditTransactionStartDatePage.tsx
@@ -3,6 +3,7 @@ import React, {useState} from 'react';
import {View} from 'react-native';
import type {ValueOf} from 'type-fest';
import Button from '@components/Button';
+import ConfirmModal from '@components/ConfirmModal';
import DatePicker from '@components/DatePicker';
import HeaderWithBackButton from '@components/HeaderWithBackButton';
import ScreenWrapper from '@components/ScreenWrapper';
@@ -57,6 +58,7 @@ function WorkspaceCompanyCardEditTransactionStartDatePage({route}: WorkspaceComp
});
const [errorText, setErrorText] = useState('');
+ const [isWarningModalVisible, setIsWarningModalVisible] = useState(false);
const handleSelectDateOption = (dateOption: DateOption) => {
setErrorText('');
@@ -70,16 +72,31 @@ function WorkspaceCompanyCardEditTransactionStartDatePage({route}: WorkspaceComp
}
};
+ const getNewStartDate = () => {
+ const date90DaysBack = format(subDays(new Date(), 90), CONST.DATE.FNS_FORMAT_STRING);
+ return dateOptionSelected === CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.FROM_BEGINNING ? date90DaysBack : startDate;
+ };
+
const submit = () => {
if (dateOptionSelected === CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.CUSTOM && !isRequiredFulfilled(startDate)) {
setErrorText(translate('common.error.fieldRequired'));
return;
}
- const date90DaysBack = format(subDays(new Date(), 90), CONST.DATE.FNS_FORMAT_STRING);
- const newStartDate = dateOptionSelected === CONST.COMPANY_CARD.TRANSACTION_START_DATE_OPTIONS.FROM_BEGINNING ? date90DaysBack : startDate;
+ const newStartDate = getNewStartDate();
+ if (currentStartDate === newStartDate) {
+ Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARD_DETAILS.getRoute(policyID, feedName, cardID), {compareParams: false});
+ return;
+ }
+
+ setIsWarningModalVisible(true);
+ };
+
+ const confirmSubmit = () => {
+ const newStartDate = getNewStartDate();
updateCardTransactionStartDate(domainOrWorkspaceAccountID, cardID, newStartDate, bank, currentStartDate);
+ setIsWarningModalVisible(false);
Navigation.goBack(ROUTES.WORKSPACE_COMPANY_CARD_DETAILS.getRoute(policyID, feedName, cardID), {compareParams: false});
};
@@ -155,6 +172,17 @@ function WorkspaceCompanyCardEditTransactionStartDatePage({route}: WorkspaceComp
}
/>
+ setIsWarningModalVisible(false)}
+ shouldSetModalVisibility={false}
+ prompt={translate('workspace.moreFeatures.companyCards.changeTransactionStartDateWarning')}
+ confirmText={translate('common.save')}
+ cancelText={translate('common.cancel')}
+ danger
+ />
);