Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
5a58af9
add setWorkspaceAutoHarvesting command
s77rt Sep 9, 2025
596d9ea
update policy paramter type
s77rt Sep 9, 2025
41d097e
call setWorkspaceAutoHarvesting on toggling delyed submission
s77rt Sep 9, 2025
8162c2e
set pending field on autoReporting only
s77rt Sep 9, 2025
cb47073
Add Instantly to submission frequency options
s77rt Sep 9, 2025
50f57c9
Rename “Delayed submission” to “Submission frequency”
s77rt Sep 9, 2025
10f4dbe
translate
s77rt Sep 10, 2025
e5c9853
update report id and name based on autoreporting
s77rt Sep 10, 2025
72fcc9b
Merge branch 'main' into add-SetWorkspaceAutoHarvesting
s77rt Sep 11, 2025
55bb867
merge main
s77rt Sep 11, 2025
b128ea3
track expense: use money report only if chat is not selfDM
s77rt Sep 11, 2025
36dc551
handle create unreported expense
s77rt Sep 12, 2025
dc4eb2e
Merge branch 'main' into add-SetWorkspaceAutoHarvesting
s77rt Sep 12, 2025
b8bebbf
merge main
s77rt Sep 12, 2025
7bbea19
start flow with unreported report if autoreporting is off
s77rt Sep 12, 2025
042d4a0
allow clearing report selection on create expense flow
s77rt Sep 13, 2025
18b803c
set correct report when changing participants
s77rt Sep 13, 2025
8006842
Revert "set correct report when changing participants"
s77rt Sep 13, 2025
2b4cf14
set correct report when changing participants (2)
s77rt Sep 13, 2025
a8551fc
get self dm report
s77rt Sep 13, 2025
a224b9d
update transaction when coming back to amount step and updating parti…
s77rt Sep 13, 2025
8ae68a2
Merge branch 'main' into add-SetWorkspaceAutoHarvesting
s77rt Sep 13, 2025
93c59a9
handle report name and navigation in case no report is available
s77rt Sep 13, 2025
023d88d
add s77rt comment
s77rt Sep 14, 2025
a9ae833
allow choosing no report if default option is 'New report'
s77rt Sep 14, 2025
2ca3289
remove s77rt comment
s77rt Sep 14, 2025
752992e
Fix "0" in param
s77rt Sep 14, 2025
1ccc353
remove unnecessary picked field
s77rt Sep 14, 2025
dd9c5f6
set transaction report id after setting a participant in new flow
s77rt Sep 14, 2025
292751a
clean up
s77rt Sep 14, 2025
edf7d3d
translate
s77rt Sep 14, 2025
17fe33e
ts
s77rt Sep 14, 2025
5a7d6c2
lint
s77rt Sep 14, 2025
a938564
spell fix
s77rt Sep 14, 2025
9375448
lint
s77rt Sep 14, 2025
fba7b71
lint
s77rt Sep 14, 2025
5d72cf6
lint
s77rt Sep 14, 2025
00eb8d7
update translation
s77rt Sep 15, 2025
cae8d32
merge main
s77rt Sep 16, 2025
eee8170
optimisticaly build self dm report
s77rt Sep 16, 2025
3c6151b
add comment
s77rt Sep 16, 2025
ea74d86
use usePersonalPolicy
s77rt Sep 16, 2025
562ab2e
allow passing undefined report in TrackExpense
s77rt Sep 17, 2025
af74889
better type
s77rt Sep 17, 2025
41a9c01
trackExpense default to self-DM if no report is passed
s77rt Sep 17, 2025
cea1f23
pass selfDMReportID and selfDMCreatedReportActionID to TrackExpense c…
s77rt Sep 17, 2025
6552d5a
don't pass chatReportID if we are passing selfDMReportID to TrackExpense
s77rt Sep 17, 2025
e8be222
add optimistic onyx data for created self dm report
s77rt Sep 17, 2025
86b8fc0
merge main
s77rt Sep 17, 2025
3197216
TrackExpense: rename selfDMReportID/selfDMCreatedReportActionID to op…
s77rt Sep 24, 2025
6ee3b06
revert unintentional change
s77rt Sep 24, 2025
4070069
clean up and fix handling preexistingreport pattern
s77rt Sep 24, 2025
cf217f0
merge main
s77rt Oct 1, 2025
898d024
merge main
s77rt Oct 1, 2025
87e714b
revert report change logic
s77rt Oct 1, 2025
e59e005
ts + lint
s77rt Oct 1, 2025
cb9dde5
lint
s77rt Oct 1, 2025
eaaf8ac
merge main
s77rt Oct 6, 2025
3080a2b
non-CREATE actions require a report
s77rt Oct 6, 2025
83c7a18
fix lint
s77rt Oct 6, 2025
88a175d
merge main
s77rt Oct 7, 2025
bb525d8
merge main
s77rt Oct 8, 2025
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
1 change: 0 additions & 1 deletion src/components/MoneyRequestConfirmationList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1146,7 +1146,6 @@ function MoneyRequestConfirmationList({
currency={currency}
didConfirm={!!didConfirm}
distance={distance}
rawAmount={amountToBeUsed}
formattedAmount={formattedAmount}
formattedAmountPerAttendee={formattedAmountPerAttendee}
formError={formError}
Expand Down
54 changes: 19 additions & 35 deletions src/components/MoneyRequestConfirmationListFooter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,7 @@ import {getDestinationForDisplay, getSubratesFields, getSubratesForDisplay, getT
import {canSendInvoice, getPerDiemCustomUnit} from '@libs/PolicyUtils';
import type {ThumbnailAndImageURI} from '@libs/ReceiptUtils';
import {getThumbnailAndImageURIs} from '@libs/ReceiptUtils';
import {
buildOptimisticExpenseReport,
getDefaultWorkspaceAvatar,
getOutstandingReportsForUser,
getReportName,
isArchivedReport,
isMoneyRequestReport,
isReportOutstanding,
populateOptimisticReportFormula,
} from '@libs/ReportUtils';
import {generateReportID, getDefaultWorkspaceAvatar, getOutstandingReportsForUser, getReportName, isArchivedReport, isMoneyRequestReport, isReportOutstanding} from '@libs/ReportUtils';
import {getTagVisibility, hasEnabledTags} from '@libs/TagsOptionsListUtils';
import {
getTagForDisplay,
Expand Down Expand Up @@ -75,9 +66,6 @@ type MoneyRequestConfirmationListFooterProps = {
/** The distance of the transaction */
distance: number;

/** The raw numeric amount of the transaction */
rawAmount: number;

/** The formatted amount of the transaction */
formattedAmount: string;

Expand Down Expand Up @@ -246,7 +234,6 @@ function MoneyRequestConfirmationListFooter({
onToggleBillable,
policy,
policyTags,
rawAmount,
policyTagLists,
rate,
receiptFilename,
Expand Down Expand Up @@ -299,7 +286,6 @@ function MoneyRequestConfirmationListFooter({
const hasErrors = !isEmptyObject(transaction?.errors) || !isEmptyObject(transaction?.errorFields?.route) || !isEmptyObject(transaction?.errorFields?.waypoints);
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
const shouldShowMap = isDistanceRequest && !isManualDistanceRequest && !!(hasErrors || hasPendingWaypoints || iouType !== CONST.IOU.TYPE.SPLIT || !isReadOnly);

const isFromGlobalCreate = !!transaction?.isFromGlobalCreate;

const senderWorkspace = useMemo(() => {
Expand All @@ -317,35 +303,34 @@ function MoneyRequestConfirmationListFooter({
* We need to check if the transaction report exists first in order to prevent the outstanding reports from being used.
* Also we need to check if transaction report exists in outstanding reports in order to show a correct report name.
*/
const isUnreported = transaction?.reportID === CONST.REPORT.UNREPORTED_REPORT_ID;
const transactionReport = transaction?.reportID ? Object.values(allReports ?? {}).find((report) => report?.reportID === transaction.reportID) : undefined;
const policyID = selectedParticipants?.at(0)?.policyID;
const selectedPolicy = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`];
const shouldUseTransactionReport = !!transactionReport && isReportOutstanding(transactionReport, policyID, undefined, false);
const shouldUseTransactionReport = (!!transactionReport && isReportOutstanding(transactionReport, policyID, undefined, false)) || isUnreported;
const availableOutstandingReports = getOutstandingReportsForUser(policyID, selectedParticipants?.at(0)?.ownerAccountID, allReports, reportNameValuePairs, false).sort((a, b) =>
localeCompare(a?.reportName?.toLowerCase() ?? '', b?.reportName?.toLowerCase() ?? ''),
);
const iouReportID = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${reportID}`]?.iouReportID;
const outstandingReportID = isPolicyExpenseChat ? (iouReportID ?? availableOutstandingReports.at(0)?.reportID) : reportID;
let selectedReportID = shouldUseTransactionReport ? transactionReport.reportID : outstandingReportID;
const selectedReport = useMemo(() => {
if (!selectedReportID) {
return;
const [selectedReportID, selectedReport] = useMemo(() => {
const reportIDToUse = shouldUseTransactionReport ? transaction?.reportID : outstandingReportID;
if (!reportIDToUse) {
// Even if we have no report to use we still need a report id for proper navigation
return [generateReportID(), undefined];
}
return allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${selectedReportID}`];
}, [allReports, selectedReportID]);
let reportName = getReportName(selectedReport, selectedPolicy);

if (!reportName) {
const optimisticReport = buildOptimisticExpenseReport(
reportID,
selectedPolicy?.id,
selectedPolicy?.ownerAccountID ?? CONST.DEFAULT_NUMBER_ID,
rawAmount ?? transaction?.amount ?? 0,
currency,
);
selectedReportID = !selectedReportID ? optimisticReport.reportID : selectedReportID;
reportName = populateOptimisticReportFormula(selectedPolicy?.fieldList?.text_title?.defaultValue ?? '', optimisticReport, selectedPolicy, true);
}
const reportToUse = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${reportIDToUse}`];
return [reportIDToUse, reportToUse];
}, [allReports, shouldUseTransactionReport, transaction?.reportID, outstandingReportID]);

const reportName = useMemo(() => {
const name = getReportName(selectedReport, selectedPolicy);
if (!name) {
return isUnreported ? translate('common.none') : translate('iou.newReport');
}
return name;
}, [isUnreported, selectedReport, selectedPolicy, translate]);

// When creating an expense in an individual report, the report field becomes read-only
// since the destination is already determined and there's no need to show a selectable list.
Expand Down Expand Up @@ -1024,7 +1009,6 @@ export default memo(
prevProps.currency === nextProps.currency &&
prevProps.didConfirm === nextProps.didConfirm &&
prevProps.distance === nextProps.distance &&
prevProps.rawAmount === nextProps.rawAmount &&
prevProps.formattedAmount === nextProps.formattedAmount &&
prevProps.formError === nextProps.formError &&
prevProps.hasRoute === nextProps.hasRoute &&
Expand Down
24 changes: 24 additions & 0 deletions src/hooks/usePersonalPolicy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import {useMemo} from 'react';
import type {OnyxEntry} from 'react-native-onyx';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import type Policy from '@src/types/onyx/Policy';
import mapOnyxCollectionItems from '@src/utils/mapOnyxCollectionItems';
import useOnyx from './useOnyx';

type PolicySelector = Pick<Policy, 'id' | 'type' | 'autoReporting'>;

const policySelector = (policy: OnyxEntry<Policy>): PolicySelector =>
(policy && {
id: policy.id,
type: policy.type,
autoReporting: policy.autoReporting,
}) as PolicySelector;

function usePersonalPolicy() {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NAB: There was a discussion about sending the personal policy in Session Onyx Key so that it can be readily used. Not a blocker here but, perhaps, you can work later on the backend PR to send it to simplify this. Unrelated but same for self DM reportID too.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I have replied there but we don't need to block on that

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't need to block on that

That's what I said too. 😃

const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY, {selector: (c) => mapOnyxCollectionItems(c, policySelector), canBeMissing: true});
const personalPolicy = useMemo(() => Object.values(allPolicies ?? {}).find((policy) => policy?.type === CONST.POLICY.TYPE.PERSONAL), [allPolicies]);
return personalPolicy;
}

export default usePersonalPolicy;
5 changes: 2 additions & 3 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ const translations = {
unstableInternetConnection: 'Instabile Internetverbindung. Bitte überprüfe dein Netzwerk und versuche es erneut.',
enableGlobalReimbursements: 'Globale Rückerstattungen aktivieren',
purchaseAmount: 'Kaufbetrag',
frequency: 'Frequenz',
link: 'Link',
pinned: 'Angeheftet',
read: 'Gelesen',
Expand Down Expand Up @@ -2021,9 +2022,8 @@ const translations = {
workflowsPage: {
workflowTitle: 'Ausgaben',
workflowDescription: 'Konfigurieren Sie einen Workflow ab dem Moment, in dem Ausgaben anfallen, einschließlich Genehmigung und Zahlung.',
delaySubmissionTitle: 'Einreichungen verzögern',
delaySubmissionDescription: 'Wählen Sie einen benutzerdefinierten Zeitplan für die Einreichung von Ausgaben oder lassen Sie dies für Echtzeit-Updates zu Ausgaben aus.',
submissionFrequency: 'Einreichungshäufigkeit',
submissionFrequencyDescription: 'Wählen Sie einen benutzerdefinierten Zeitplan für die Einreichung von Ausgaben oder lassen Sie dies für Echtzeit-Updates zu Ausgaben aus.',
submissionFrequencyDateOfMonth: 'Datum des Monats',
addApprovalsTitle: 'Genehmigungen hinzufügen',
addApprovalButton: 'Genehmigungsworkflow hinzufügen',
Expand Down Expand Up @@ -2075,7 +2075,6 @@ const translations = {
},
},
workflowsDelayedSubmissionPage: {
autoReportingErrorMessage: 'Verspätete Einreichung konnte nicht geändert werden. Bitte versuchen Sie es erneut oder kontaktieren Sie den Support.',
autoReportingFrequencyErrorMessage: 'Die Einreichungshäufigkeit konnte nicht geändert werden. Bitte versuchen Sie es erneut oder kontaktieren Sie den Support.',
monthlyOffsetErrorMessage: 'Die monatliche Frequenz konnte nicht geändert werden. Bitte versuchen Sie es erneut oder kontaktieren Sie den Support.',
},
Expand Down
7 changes: 3 additions & 4 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -662,6 +662,7 @@ const translations = {
unstableInternetConnection: 'Unstable internet connection. Please check your network and try again.',
enableGlobalReimbursements: 'Enable Global Reimbursements',
purchaseAmount: 'Purchase amount',
frequency: 'Frequency',
link: 'Link',
pinned: 'Pinned',
read: 'Read',
Expand Down Expand Up @@ -1995,9 +1996,8 @@ const translations = {
workflowsPage: {
workflowTitle: 'Spend',
workflowDescription: 'Configure a workflow from the moment spend occurs, including approval and payment.',
delaySubmissionTitle: 'Delay submissions',
delaySubmissionDescription: 'Choose a custom schedule for submitting expenses, or leave this off for realtime updates on spending.',
submissionFrequency: 'Submission frequency',
submissionFrequencyDescription: 'Choose a custom schedule for submitting expenses, or leave this off for realtime updates on spending.',
submissionFrequencyDateOfMonth: 'Date of month',
addApprovalsTitle: 'Add approvals',
addApprovalButton: 'Add approval workflow',
Expand All @@ -2011,7 +2011,7 @@ const translations = {
},
frequencyDescription: 'Choose how often you’d like expenses to submit automatically, or make it manual',
frequencies: {
instant: 'Instant',
instant: 'Instantly',
weekly: 'Weekly',
monthly: 'Monthly',
twiceAMonth: 'Twice a month',
Expand Down Expand Up @@ -2049,7 +2049,6 @@ const translations = {
},
},
workflowsDelayedSubmissionPage: {
autoReportingErrorMessage: "Delayed submission couldn't be changed. Please try again or contact support.",
autoReportingFrequencyErrorMessage: "Submission frequency couldn't be changed. Please try again or contact support.",
monthlyOffsetErrorMessage: "Monthly frequency couldn't be changed. Please try again or contact support.",
},
Expand Down
7 changes: 3 additions & 4 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -648,6 +648,7 @@ const translations = {
unstableInternetConnection: 'Conexión a internet inestable. Por favor, revisa tu red e inténtalo de nuevo.',
enableGlobalReimbursements: 'Habilitar Reembolsos Globales',
purchaseAmount: 'Importe de compra',
frequency: 'Frecuencia',
link: 'Enlace',
pinned: 'Fijado',
read: 'Leído',
Expand Down Expand Up @@ -1987,9 +1988,8 @@ const translations = {
workflowsPage: {
workflowTitle: 'Gasto',
workflowDescription: 'Configure un flujo de trabajo desde el momento en que se produce el gasto, incluida la aprobación y el pago',
delaySubmissionTitle: 'Retrasar envíos',
delaySubmissionDescription: 'Elige una frecuencia para enviar los gastos, o dejalo desactivado para recibir actualizaciones en tiempo real sobre los gastos.',
submissionFrequency: 'Frecuencia de envíos',
submissionFrequencyDescription: 'Elige una frecuencia para enviar los gastos, o dejalo desactivado para recibir actualizaciones en tiempo real sobre los gastos.',
submissionFrequencyDateOfMonth: 'Fecha del mes',
addApprovalsTitle: 'Aprobaciones',
addApprovalButton: 'Añadir flujo de aprobación',
Expand All @@ -2003,7 +2003,7 @@ const translations = {
},
frequencyDescription: 'Elige la frecuencia de presentación automática de gastos, o preséntalos manualmente',
frequencies: {
instant: 'Instante',
instant: 'Al instante',
weekly: 'Semanal',
monthly: 'Mensual',
twiceAMonth: 'Dos veces al mes',
Expand Down Expand Up @@ -2041,7 +2041,6 @@ const translations = {
},
},
workflowsDelayedSubmissionPage: {
autoReportingErrorMessage: 'El parámetro de envío retrasado no pudo ser cambiado. Por favor, inténtelo de nuevo o contacte al soporte.',
autoReportingFrequencyErrorMessage: 'La frecuencia de envío no pudo ser cambiada. Por favor, inténtelo de nuevo o contacte al soporte.',
monthlyOffsetErrorMessage: 'La frecuencia mensual no pudo ser cambiada. Por favor, inténtelo de nuevo o contacte al soporte.',
},
Expand Down
9 changes: 4 additions & 5 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ const translations = {
unstableInternetConnection: 'Connexion Internet instable. Veuillez vérifier votre réseau et réessayer.',
enableGlobalReimbursements: 'Activer les remboursements globaux',
purchaseAmount: "Montant de l'achat",
frequency: 'Fréquence',
link: 'Lien',
pinned: 'Épinglé',
read: 'Lu',
Expand Down Expand Up @@ -2021,10 +2022,9 @@ const translations = {
workflowsPage: {
workflowTitle: 'Dépenser',
workflowDescription: "Configurez un flux de travail dès que la dépense survient, y compris l'approbation et le paiement.",
delaySubmissionTitle: 'Retarder les soumissions',
delaySubmissionDescription:
'Choisissez un calendrier personnalisé pour soumettre les dépenses, ou laissez cette option désactivée pour des mises à jour en temps réel sur les dépenses.',
submissionFrequency: 'Fréquence de soumission',
submissionFrequencyDescription:
'Choisissez un calendrier personnalisé pour soumettre les dépenses, ou laissez cette option désactivée pour des mises à jour en temps réel sur les dépenses.',
submissionFrequencyDateOfMonth: 'Date du mois',
addApprovalsTitle: 'Ajouter des approbations',
addApprovalButton: "Ajouter un flux de travail d'approbation",
Expand All @@ -2038,7 +2038,7 @@ const translations = {
},
frequencyDescription: 'Choisissez la fréquence à laquelle vous souhaitez que les dépenses soient soumises automatiquement, ou faites-le manuellement.',
frequencies: {
instant: 'Instantané',
instant: 'Immédiatement',
weekly: 'Hebdomadaire',
monthly: 'Mensuel',
twiceAMonth: 'Deux fois par mois',
Expand Down Expand Up @@ -2076,7 +2076,6 @@ const translations = {
},
},
workflowsDelayedSubmissionPage: {
autoReportingErrorMessage: "La soumission retardée n'a pas pu être modifiée. Veuillez réessayer ou contacter le support.",
autoReportingFrequencyErrorMessage: "La fréquence de soumission n'a pas pu être modifiée. Veuillez réessayer ou contacter le support.",
monthlyOffsetErrorMessage: "La fréquence mensuelle n'a pas pu être modifiée. Veuillez réessayer ou contacter le support.",
},
Expand Down
7 changes: 3 additions & 4 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ const translations = {
unstableInternetConnection: 'Connessione Internet instabile. Controlla la tua rete e riprova.',
enableGlobalReimbursements: 'Abilita i rimborsi globali',
purchaseAmount: 'Importo di acquisto',
frequency: 'Frequenza',
link: 'Link',
pinned: 'Fissato',
read: 'Letto',
Expand Down Expand Up @@ -2012,9 +2013,8 @@ const translations = {
workflowsPage: {
workflowTitle: 'Spendere',
workflowDescription: 'Configura un flusso di lavoro dal momento in cui si verifica una spesa, inclusi approvazione e pagamento.',
delaySubmissionTitle: 'Ritarda invii',
delaySubmissionDescription: "Scegli un programma personalizzato per l'invio delle spese, oppure lascia disattivato per aggiornamenti in tempo reale sulle spese.",
submissionFrequency: 'Frequenza di invio',
submissionFrequencyDescription: "Scegli un programma personalizzato per l'invio delle spese, oppure lascia disattivato per aggiornamenti in tempo reale sulle spese.",
submissionFrequencyDateOfMonth: 'Data del mese',
addApprovalsTitle: 'Aggiungi approvazioni',
addApprovalButton: 'Aggiungi flusso di lavoro di approvazione',
Expand All @@ -2028,7 +2028,7 @@ const translations = {
},
frequencyDescription: 'Scegli con quale frequenza desideri che le spese vengano inviate automaticamente, oppure impostale manualmente.',
frequencies: {
instant: 'Istantaneo',
instant: 'Immediatamente',
weekly: 'Settimanale',
monthly: 'Mensile',
twiceAMonth: 'Due volte al mese',
Expand Down Expand Up @@ -2066,7 +2066,6 @@ const translations = {
},
},
workflowsDelayedSubmissionPage: {
autoReportingErrorMessage: 'La presentazione ritardata non può essere modificata. Per favore, riprova o contatta il supporto.',
autoReportingFrequencyErrorMessage: "La frequenza di invio non può essere modificata. Riprova o contatta l'assistenza.",
monthlyOffsetErrorMessage: 'La frequenza mensile non può essere modificata. Riprova o contatta il supporto.',
},
Expand Down
7 changes: 3 additions & 4 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ const translations = {
unstableInternetConnection: 'インターネット接続が不安定です。ネットワークを確認してもう一度お試しください。',
enableGlobalReimbursements: 'グローバル払い戻しを有効にする',
purchaseAmount: '購入金額',
frequency: '頻度',
link: 'リンク',
pinned: '固定済み',
read: '既読',
Expand Down Expand Up @@ -2005,9 +2006,8 @@ const translations = {
workflowsPage: {
workflowTitle: '支出',
workflowDescription: '支出が発生した瞬間から、承認および支払いを含むワークフローを設定します。',
delaySubmissionTitle: '提出を遅らせる',
delaySubmissionDescription: '経費提出のカスタムスケジュールを選択するか、支出のリアルタイム更新のためにこれをオフにしておいてください。',
submissionFrequency: '提出頻度',
submissionFrequencyDescription: '経費提出のカスタムスケジュールを選択するか、支出のリアルタイム更新のためにこれをオフにしておいてください。',
submissionFrequencyDateOfMonth: '月の日付',
addApprovalsTitle: '承認を追加',
addApprovalButton: '承認ワークフローを追加',
Expand All @@ -2021,7 +2021,7 @@ const translations = {
},
frequencyDescription: '経費を自動で提出する頻度を選択するか、手動で行うように設定してください。',
frequencies: {
instant: 'インスタント',
instant: '即座に',
weekly: '毎週',
monthly: '毎月',
twiceAMonth: '月に2回',
Expand Down Expand Up @@ -2059,7 +2059,6 @@ const translations = {
},
},
workflowsDelayedSubmissionPage: {
autoReportingErrorMessage: '遅延した提出は変更できませんでした。もう一度お試しいただくか、サポートにお問い合わせください。',
autoReportingFrequencyErrorMessage: '提出頻度を変更できませんでした。もう一度お試しいただくか、サポートにお問い合わせください。',
monthlyOffsetErrorMessage: '月次の頻度を変更できませんでした。もう一度お試しいただくか、サポートにお問い合わせください。',
},
Expand Down
Loading
Loading