diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 3d66a4d43fac3..724ab8c0a4cb7 100644 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -1625,6 +1625,7 @@ const CONST = { UPDATE_MANUAL_APPROVAL_THRESHOLD: 'POLICYCHANGELOG_UPDATE_MANUAL_APPROVAL_THRESHOLD', UPDATE_MAX_EXPENSE_AMOUNT: 'POLICYCHANGELOG_UPDATE_MAX_EXPENSE_AMOUNT', UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT: 'POLICYCHANGELOG_UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT', + UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT: 'POLICYCHANGELOG_UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT', UPDATE_MAX_EXPENSE_AGE: 'POLICYCHANGELOG_UPDATE_MAX_EXPENSE_AGE', UPDATE_MULTIPLE_TAGS_APPROVER_RULES: 'POLICYCHANGELOG_UPDATE_MULTIPLE_TAGS_APPROVER_RULES', UPDATE_NAME: 'POLICYCHANGELOG_UPDATE_NAME', diff --git a/src/languages/de.ts b/src/languages/de.ts index 963c61ac7a7c4..766787424cb9c 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -7277,7 +7277,10 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc }, setReceiptRequiredAmount: (newValue: string) => `Belegpflichtigen Betrag auf „${newValue}“ festlegen`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `Belegpflichtbetrag auf „${newValue}“ geändert (zuvor „${oldValue}“)`, - removedReceiptRequiredAmount: (oldValue: string) => `Belegpflichtigen Betrag entfernt (zuvor „${oldValue}“)`, + removedReceiptRequiredAmount: (oldValue: string) => `Belegpflichtigen Betrag entfernt (zuvor „${oldValue}”)`, + setItemizedReceiptRequiredAmount: (newValue: string) => `Betrag für Pflicht zur Einzelauflistung auf „${newValue}” festgelegt`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `erforderlichen Betrag des aufgeschlüsselten Belegs auf „${newValue}” geändert (zuvor „${oldValue}”)`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `Betrag für obligatorische Einzelpostenbelege entfernt (zuvor „${oldValue}”)`, setMaxExpenseAmount: (newValue: string) => `maximalen Ausgabenbetrag auf „${newValue}“ festlegen`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `hat den maximalen Ausgabenbetrag auf „${newValue}“ geändert (zuvor „${oldValue}“)`, removedMaxExpenseAmount: (oldValue: string) => `maximale Ausgabenhöhe entfernt (zuvor „${oldValue}“)`, diff --git a/src/languages/en.ts b/src/languages/en.ts index e4c5028b62357..5a11a64675a32 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -7383,6 +7383,9 @@ const translations = { setReceiptRequiredAmount: (newValue: string) => `set receipt required amount to "${newValue}"`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `changed receipt required amount to "${newValue}" (previously "${oldValue}")`, removedReceiptRequiredAmount: (oldValue: string) => `removed receipt required amount (previously "${oldValue}")`, + setItemizedReceiptRequiredAmount: (newValue: string) => `set itemized receipt required amount to "${newValue}"`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `changed itemized receipt required amount to "${newValue}" (previously "${oldValue}")`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `removed itemized receipt required amount (previously "${oldValue}")`, setMaxExpenseAmount: (newValue: string) => `set max expense amount to "${newValue}"`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `changed max expense amount to "${newValue}" (previously "${oldValue}")`, removedMaxExpenseAmount: (oldValue: string) => `removed max expense amount (previously "${oldValue}")`, diff --git a/src/languages/es.ts b/src/languages/es.ts index 1e9a38ec17bfb..3df3f3d4dacc2 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -6948,6 +6948,9 @@ ${amount} para ${merchant} - ${date}`, setReceiptRequiredAmount: (newValue) => `estableció el importe requerido del recibo en "${newValue}"`, changedReceiptRequiredAmount: (oldValue, newValue) => `cambió el importe requerido del recibo a "${newValue}" (antes "${oldValue}")`, removedReceiptRequiredAmount: (oldValue) => `eliminó el importe requerido del recibo (antes "${oldValue}")`, + setItemizedReceiptRequiredAmount: (newValue) => `estableció el importe requerido del recibo detallado en "${newValue}"`, + changedItemizedReceiptRequiredAmount: (oldValue, newValue) => `cambió el importe requerido del recibo detallado a "${newValue}" (antes "${oldValue}")`, + removedItemizedReceiptRequiredAmount: (oldValue) => `eliminó el importe requerido del recibo detallado (antes "${oldValue}")`, setMaxExpenseAmount: (newValue) => `estableció el importe máximo del gasto en "${newValue}"`, changedMaxExpenseAmount: (oldValue, newValue) => `cambió el importe máximo del gasto a "${newValue}" (antes "${oldValue}")`, diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 82f6c79bcdb62..205cbb845a8e8 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -7300,6 +7300,9 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e setReceiptRequiredAmount: (newValue: string) => `définir le montant de reçu obligatoire sur « ${newValue} »`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `a modifié le montant requis pour le reçu à « ${newValue} » (auparavant « ${oldValue} »)`, removedReceiptRequiredAmount: (oldValue: string) => `a supprimé le montant requis pour le reçu (précédemment « ${oldValue} »)`, + setItemizedReceiptRequiredAmount: (newValue: string) => `définir le montant requis pour le reçu détaillé sur « ${newValue} »`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `a modifié le montant requis pour le reçu détaillé à « ${newValue} » (auparavant « ${oldValue} »)`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `a supprimé le montant requis pour le reçu détaillé (précédemment « ${oldValue} »)`, setMaxExpenseAmount: (newValue: string) => `définir le montant maximal de dépense sur « ${newValue} »`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `montant maximal de dépense modifié en « ${newValue} » (précédemment « ${oldValue} »)`, removedMaxExpenseAmount: (oldValue: string) => `montant de dépense maximal supprimé (précédemment « ${oldValue} »)`, diff --git a/src/languages/it.ts b/src/languages/it.ts index 4a3ad959ec29d..75fbf46b68253 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -7265,6 +7265,10 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`, setReceiptRequiredAmount: (newValue: string) => `imposta l’importo richiesto per la ricevuta su "${newValue}"`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `ha modificato l’importo richiesto per la ricevuta in "${newValue}" (in precedenza "${oldValue}")`, removedReceiptRequiredAmount: (oldValue: string) => `ha rimosso l’importo richiesto per la ricevuta (in precedenza «${oldValue}»)`, + setItemizedReceiptRequiredAmount: (newValue: string) => `imposta l’importo richiesto per la ricevuta con voci singole su "${newValue}"`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => + `ha modificato l’importo richiesto per la ricevuta con voci a "${newValue}" (in precedenza "${oldValue}")`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `ha rimosso l’importo richiesto per la ricevuta dettagliata (precedentemente "${oldValue}")`, setMaxExpenseAmount: (newValue: string) => `imposta l’importo massimo della spesa su "${newValue}"`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `ha modificato l'importo massimo della spesa a "${newValue}" (precedentemente "${oldValue}")`, removedMaxExpenseAmount: (oldValue: string) => `importo massimo spesa rimosso (precedentemente "${oldValue}")`, diff --git a/src/languages/ja.ts b/src/languages/ja.ts index b7460368b0e3b..b292a2df9d8a2 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -7179,6 +7179,9 @@ ${reportName} setReceiptRequiredAmount: (newValue: string) => `必要な領収書金額を「${newValue}」に設定`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `領収書必須金額を「${newValue}」(以前は「${oldValue}」)に変更しました`, removedReceiptRequiredAmount: (oldValue: string) => `必須領収書金額を削除しました(以前の値:「${oldValue}」)`, + setItemizedReceiptRequiredAmount: (newValue: string) => `明細付き領収書の必須金額を「${newValue}」に設定しました`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `品目別レシートの必須金額を「${newValue}」(以前は「${oldValue}」)に変更しました`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `品目別レシートの必須金額を削除しました(以前の値:「${oldValue}」)`, setMaxExpenseAmount: (newValue: string) => `最大経費金額を「${newValue}」に設定`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `上限経費額を「${newValue}」に変更しました(以前は「${oldValue}」)`, removedMaxExpenseAmount: (oldValue: string) => `最大経費金額を削除しました(以前の値: 「${oldValue}」)`, diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 82eec026635c2..63cb4f3d0c2a6 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -7244,6 +7244,10 @@ Voeg meer bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`, setReceiptRequiredAmount: (newValue: string) => `stel het vereiste bonbedrag in op "${newValue}"`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `heeft het vereiste bonbedrag gewijzigd naar "${newValue}" (voorheen "${oldValue}")`, removedReceiptRequiredAmount: (oldValue: string) => `vereiste bedrag op verwijderde bon (voorheen “${oldValue}”)`, + setItemizedReceiptRequiredAmount: (newValue: string) => `stel het vereiste bedrag voor de gespecificeerde bon in op "${newValue}"`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => + `heeft het vereiste bedrag voor gespecificeerde bonnen gewijzigd naar "${newValue}" (voorheen "${oldValue}")`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `vereist bedrag voor gespecificeerde bon verwijderd (voorheen "${oldValue}")`, setMaxExpenseAmount: (newValue: string) => `maximumbedrag voor uitgave instellen op "${newValue}"`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `maximale onkostensom gewijzigd naar "${newValue}" (voorheen "${oldValue}")`, removedMaxExpenseAmount: (oldValue: string) => `maximaal bedrag voor uitgave verwijderd (voorheen "${oldValue}")`, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index fad2436ea5bc9..4552b081074f3 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -7233,6 +7233,9 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`, setReceiptRequiredAmount: (newValue: string) => `ustaw wymaganą kwotę paragonu na „${newValue}”`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `zmienił(a) wymaganą kwotę paragonu na „${newValue}” (wcześniej „${oldValue}”)`, removedReceiptRequiredAmount: (oldValue: string) => `usunięto wymagany limit paragonu (wcześniej „${oldValue}”)`, + setItemizedReceiptRequiredAmount: (newValue: string) => `ustaw wymaganą kwotę z wyszczególnionego paragonu na „${newValue}”`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `zmienił wymaganą kwotę za zindeksowany paragon na „${newValue}” (wcześniej „${oldValue}”)`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `usunięto wymaganą kwotę z rozbitego paragonu (wcześniej „${oldValue}”)`, setMaxExpenseAmount: (newValue: string) => `ustaw maksymalną kwotę wydatku na „${newValue}”`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `zmieniono maksymalną kwotę wydatku na „${newValue}” (wcześniej „${oldValue}”)`, removedMaxExpenseAmount: (oldValue: string) => `usunięto maksymalną kwotę wydatku (wcześniej „${oldValue}”)`, diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index b50ded52c6e85..cef7ae7dd4505 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -7236,6 +7236,9 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`, setReceiptRequiredAmount: (newValue: string) => `definir valor exigido do recibo como "${newValue}"`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `alterou o valor obrigatório do recibo para "${newValue}" (antes "${oldValue}")`, removedReceiptRequiredAmount: (oldValue: string) => `removeu o valor obrigatório do recibo (antes era "${oldValue}")`, + setItemizedReceiptRequiredAmount: (newValue: string) => `definir o valor obrigatório do recibo detalhado como "${newValue}"`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `alterou o valor obrigatório do recibo detalhado para "${newValue}" (antes "${oldValue}")`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `removeu o valor exigido de recibo detalhado (antes era "${oldValue}")`, setMaxExpenseAmount: (newValue: string) => `definir valor máximo da despesa como "${newValue}"`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `alterou o valor máximo da despesa para "${newValue}" (antes "${oldValue}")`, removedMaxExpenseAmount: (oldValue: string) => `removeu o valor máximo de despesa (anteriormente "${oldValue}")`, diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index acf4ea70a06fc..d3c765eca116d 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -7045,7 +7045,10 @@ ${reportName} setReceiptRequiredAmount: (newValue: string) => `将需要收据的金额设置为“${newValue}”`, changedReceiptRequiredAmount: (oldValue: string, newValue: string) => `已将所需收据金额更改为“${newValue}”(之前为“${oldValue}”)`, removedReceiptRequiredAmount: (oldValue: string) => `已移除所需收据金额(先前为“${oldValue}”)`, - setMaxExpenseAmount: (newValue: string) => `将最高报销金额设置为“${newValue}”`, + setItemizedReceiptRequiredAmount: (newValue: string) => `将分项收据所需金额设置为”${newValue}”`, + changedItemizedReceiptRequiredAmount: (oldValue: string, newValue: string) => `将逐项列示收据的必填金额更改为 “${newValue}”(之前为 “${oldValue}”)`, + removedItemizedReceiptRequiredAmount: (oldValue: string) => `已移除按项目明细收据所需金额(先前为”${oldValue}”)`, + setMaxExpenseAmount: (newValue: string) => `将最高报销金额设置为”${newValue}”`, changedMaxExpenseAmount: (oldValue: string, newValue: string) => `将最高报销金额更改为 “${newValue}”(之前为 “${oldValue}”)`, removedMaxExpenseAmount: (oldValue: string) => `已移除最⾼报销金额(原为“${oldValue}”)`, setMaxExpenseAge: (newValue: string) => `将最大报销天数设置为“${newValue}”天`, diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 1c31711ce7a7a..10ea68413baa6 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3612,6 +3612,30 @@ function getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(translate: Localized return getReportActionText(action); } +function getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage(translate: LocalizedTranslate, action: ReportAction): string { + const {oldMaxExpenseAmountNoItemizedReceipt, newMaxExpenseAmountNoItemizedReceipt, currency} = + getOriginalMessage(action as ReportAction) ?? {}; + + if (typeof oldMaxExpenseAmountNoItemizedReceipt === 'number' && typeof newMaxExpenseAmountNoItemizedReceipt === 'number') { + const isOldLimitDisabled = oldMaxExpenseAmountNoItemizedReceipt === CONST.DISABLED_MAX_EXPENSE_VALUE; + const isNewLimitDisabled = newMaxExpenseAmountNoItemizedReceipt === CONST.DISABLED_MAX_EXPENSE_VALUE; + const oldValue = isOldLimitDisabled ? '' : convertToDisplayString(oldMaxExpenseAmountNoItemizedReceipt, currency); + const newValue = isNewLimitDisabled ? '' : convertToDisplayString(newMaxExpenseAmountNoItemizedReceipt, currency); + + if (isOldLimitDisabled && !isNewLimitDisabled) { + return translate('workspaceActions.setItemizedReceiptRequiredAmount', newValue); + } + + if (!isOldLimitDisabled && isNewLimitDisabled) { + return translate('workspaceActions.removedItemizedReceiptRequiredAmount', oldValue); + } + + return translate('workspaceActions.changedItemizedReceiptRequiredAmount', oldValue, newValue); + } + + return getReportActionText(action); +} + function getPolicyChangeLogMaxExpenseAmountMessage(translate: LocalizedTranslate, action: ReportAction): string { const {oldMaxExpenseAmount, newMaxExpenseAmount, currency} = getOriginalMessage(action as ReportAction) ?? {}; @@ -3927,7 +3951,7 @@ function getUpdatedManualApprovalThresholdMessage(translate: LocalizedTranslate, currency = CONST.CURRENCY.USD, } = getOriginalMessage(reportAction as ReportAction) ?? {}; - if (typeof oldLimit !== 'number' || typeof oldLimit !== 'number') { + if (typeof oldLimit !== 'number' || typeof newLimit !== 'number') { return getReportActionText(reportAction); } return translate('workspaceActions.updatedManualApprovalThreshold', {oldLimit: convertToDisplayString(oldLimit, currency), newLimit: convertToDisplayString(newLimit, currency)}); @@ -4684,6 +4708,7 @@ export { getForeignCurrencyDefaultTaxUpdateMessage, getWorkspaceFrequencyUpdateMessage, getPolicyChangeLogMaxExpenseAmountNoReceiptMessage, + getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage, getPolicyChangeLogMaxExpenseAmountMessage, getPolicyChangeLogMaxExpenseAgeMessage, getPolicyChangeLogDefaultBillableMessage, diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index fe3de00aec9a3..85362be9e161b 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -72,6 +72,7 @@ import { getPolicyChangeLogEmployeeLeftMessage, getPolicyChangeLogMaxExpenseAgeMessage, getPolicyChangeLogMaxExpenseAmountMessage, + getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage, getPolicyChangeLogMaxExpenseAmountNoReceiptMessage, getPolicyChangeLogUpdateEmployee, getReimburserUpdateMessage, @@ -1036,6 +1037,8 @@ function getOptionData({ result.alternateText = getCompanyAddressUpdateMessage(translate, lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT) { result.alternateText = getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(translate, lastAction); + } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT) { + result.alternateText = getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage(translate, lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT) { result.alternateText = getPolicyChangeLogMaxExpenseAmountMessage(translate, lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AGE) { diff --git a/src/pages/inbox/report/PureReportActionItem.tsx b/src/pages/inbox/report/PureReportActionItem.tsx index ca19344d56b79..153ec506951e8 100644 --- a/src/pages/inbox/report/PureReportActionItem.tsx +++ b/src/pages/inbox/report/PureReportActionItem.tsx @@ -118,6 +118,7 @@ import { getPolicyChangeLogDeleteMemberMessage, getPolicyChangeLogMaxExpenseAgeMessage, getPolicyChangeLogMaxExpenseAmountMessage, + getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage, getPolicyChangeLogMaxExpenseAmountNoReceiptMessage, getPolicyChangeLogUpdateEmployee, getReimburserUpdateMessage, @@ -1626,6 +1627,8 @@ function PureReportActionItem({ children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT)) { children = ; + } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT)) { + children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT)) { children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AGE)) { diff --git a/src/types/onyx/OriginalMessage.ts b/src/types/onyx/OriginalMessage.ts index 41b63bc218006..7fc49006c20b0 100644 --- a/src/types/onyx/OriginalMessage.ts +++ b/src/types/onyx/OriginalMessage.ts @@ -475,6 +475,12 @@ type OriginalMessagePolicyChangeLog = { /** New value for max expense amount with no receipt */ newMaxExpenseAmountNoReceipt?: number; + /** Old value for max expense amount with no itemized receipt */ + oldMaxExpenseAmountNoItemizedReceipt?: number; + + /** New value for max expense amount with no itemized receipt */ + newMaxExpenseAmountNoItemizedReceipt?: number; + /** Currency of the policy */ currency?: string; diff --git a/tests/unit/ReportActionsUtilsTest.ts b/tests/unit/ReportActionsUtilsTest.ts index 148ad091b59d4..904ab473b6234 100644 --- a/tests/unit/ReportActionsUtilsTest.ts +++ b/tests/unit/ReportActionsUtilsTest.ts @@ -29,6 +29,7 @@ import { getOriginalMessage, getPolicyChangeLogMaxExpenseAgeMessage, getPolicyChangeLogMaxExpenseAmountMessage, + getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage, getPolicyChangeLogMaxExpenseAmountNoReceiptMessage, getRemovedCardFeedMessage, getRenamedCardFeedMessage, @@ -3303,6 +3304,53 @@ describe('ReportActionsUtils', () => { }); }); + describe('getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage', () => { + it('should return set message when setting from disabled to a value', () => { + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT, + reportActionID: '1', + created: '', + originalMessage: { + oldMaxExpenseAmountNoItemizedReceipt: CONST.DISABLED_MAX_EXPENSE_VALUE, + newMaxExpenseAmountNoItemizedReceipt: 2500, + currency: 'USD', + }, + } as ReportAction; + const result = getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage(translateLocal, action); + expect(result).toBe('set itemized receipt required amount to "$25.00"'); + }); + + it('should return removed message when setting to disabled', () => { + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT, + reportActionID: '1', + created: '', + originalMessage: { + oldMaxExpenseAmountNoItemizedReceipt: 2500, + newMaxExpenseAmountNoItemizedReceipt: CONST.DISABLED_MAX_EXPENSE_VALUE, + currency: 'USD', + }, + } as ReportAction; + const result = getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage(translateLocal, action); + expect(result).toBe('removed itemized receipt required amount (previously "$25.00")'); + }); + + it('should return changed message when changing from one value to another', () => { + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_ITEMIZED_RECEIPT, + reportActionID: '1', + created: '', + originalMessage: { + oldMaxExpenseAmountNoItemizedReceipt: 2500, + newMaxExpenseAmountNoItemizedReceipt: 7500, + currency: 'USD', + }, + } as ReportAction; + const result = getPolicyChangeLogMaxExpenseAmountNoItemizedReceiptMessage(translateLocal, action); + expect(result).toBe('changed itemized receipt required amount to "$75.00" (previously "$25.00")'); + }); + }); + describe('getAddedCardFeedMessage', () => { it('should return translated message when feedName is present', () => { const action = {