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 + /> );