Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 1 addition & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7924,6 +7924,7 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
reimburseableLink: 'Auslagen',
nonReimbursableLink: 'Firmenkarten-Ausgaben',
pending: (label: string) => `hat begonnen, diesen Bericht nach ${label} zu exportieren...`,
travelCardLink: 'Reisespesen mit Firmenkarte',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`Fehler beim Exportieren dieses Berichts nach ${label} („${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}“)`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7903,6 +7903,7 @@ const translations = {
automaticActionThree: 'and successfully created a record for',
reimburseableLink: 'out-of-pocket expenses',
nonReimbursableLink: 'company card expenses',
travelCardLink: 'travel card expenses',
pending: (label: string) => `started exporting this report to ${label}...`,
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
Expand Down
1 change: 1 addition & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7750,6 +7750,7 @@ ${amount} para ${merchant} - ${date}`,
automaticActionThree: 'y creó un registro con éxito para',
reimburseableLink: 'Exportar gastos por cuenta propia como',
nonReimbursableLink: 'gastos de la tarjeta de empresa',
travelCardLink: 'gastos de la tarjeta de viaje',
pending: (label) => `comenzó a exportar este informe a ${label}...`,
},
integrationsMessage: (errorMessage, label, linkText, linkURL) =>
Expand Down
1 change: 1 addition & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7946,6 +7946,7 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
reimburseableLink: 'dépenses personnelles',
nonReimbursableLink: 'Dépenses de carte d’entreprise',
pending: (label: string) => `a commencé à exporter cette note de frais vers ${label}...`,
travelCardLink: 'dépenses par carte de voyage',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`échec de l’exportation de cette note de frais vers ${label} (« ${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''} »)`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7913,6 +7913,7 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
reimburseableLink: 'spese vive',
nonReimbursableLink: 'spese con carta aziendale',
pending: (label: string) => `ha iniziato a esportare questo resoconto su ${label}...`,
travelCardLink: 'spese con carta di viaggio',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`esportazione di questo report su ${label} non riuscita ("${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}")`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7815,6 +7815,7 @@ ${reportName}
reimburseableLink: '立替経費',
nonReimbursableLink: '会社カード経費',
pending: (label: string) => `このレポートの${label}へのエクスポートを開始しました…`,
travelCardLink: 'トラベルカード経費',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`このレポートを${label}にエクスポートできませんでした("${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}")`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7887,6 +7887,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
reimburseableLink: 'uit eigen zak gemaakte uitgaven',
nonReimbursableLink: 'uitgaven met bedrijfskaart',
pending: (label: string) => `is begonnen dit rapport te exporteren naar ${label}...`,
travelCardLink: 'reiskartuitgaven',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`het exporteren van dit rapport naar ${label} is mislukt ("${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}")`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7877,6 +7877,7 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
reimburseableLink: 'wydatki z własnej kieszeni',
nonReimbursableLink: 'wydatki z firmowej karty',
pending: (label: string) => `rozpoczęto eksport tego raportu do ${label}...`,
travelCardLink: 'wydatki z karty podróżnej',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`nie udało się wyeksportować tego raportu do ${label} („${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}”)`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7880,6 +7880,7 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
reimburseableLink: 'despesas reembolsáveis',
nonReimbursableLink: 'despesas com cartão corporativo',
pending: (label: string) => `iniciou a exportação deste relatório para ${label}...`,
travelCardLink: 'despesas do cartão de viagem',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`falha ao exportar este relatório para ${label} ("${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}")`,
Expand Down
1 change: 1 addition & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7678,6 +7678,7 @@ ${reportName}
reimburseableLink: '自付报销费用',
nonReimbursableLink: '公司卡消费',
pending: (label: string) => `已开始将此报表导出到 ${label}…`,
travelCardLink: '差旅卡费用',
},
integrationsMessage: (errorMessage: string, label: string, linkText?: string, linkURL?: string) =>
`未能将此报表导出到 ${label}(“${errorMessage}${linkText ? `<a href="${linkURL}">${linkText}</a>` : ''}”)`,
Expand Down
43 changes: 38 additions & 5 deletions src/libs/ReportActionsUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2717,6 +2717,7 @@ function getExportIntegrationActionFragments(translate: LocalizedTranslate, repo
const {label, markedManually, automaticAction} = originalMessage;
const reimbursableUrls = originalMessage.reimbursableUrls ?? [];
const nonReimbursableUrls = originalMessage.nonReimbursableUrls ?? [];
const travelInvoicingUrls = originalMessage.travelInvoicingUrls ?? [];
const reportID = reportAction?.reportID;
const wasExportedAfterBase62 = (reportAction?.created ?? '') > '2022-11-14';
const base62ReportID = getBase62ReportID(Number(reportID));
Expand Down Expand Up @@ -2748,29 +2749,40 @@ function getExportIntegrationActionFragments(translate: LocalizedTranslate, repo
url: '',
});
}
if (reimbursableUrls.length || nonReimbursableUrls.length) {
if (reimbursableUrls.length || nonReimbursableUrls.length || travelInvoicingUrls.length) {
result.push({
text: translate('report.actions.type.exportedToIntegration.automaticActionThree'),
url: '',
});
}

const hasReimbursable = reimbursableUrls.length > 0;
const hasNonReimbursable = nonReimbursableUrls.length > 0;
const hasTravelInvoicing = travelInvoicingUrls.length > 0;
const linkItemCount = (hasReimbursable ? 1 : 0) + (hasNonReimbursable ? 1 : 0) + (hasTravelInvoicing ? 1 : 0);

if (reimbursableUrls.length === 1) {
const shouldAddPeriod = nonReimbursableUrls.length === 0;
const reimbursableUrl = reimbursableUrls.at(0) ?? '';
let suffix = '';
if (linkItemCount === 1) {
suffix = '.';
} else if (linkItemCount === 3) {
suffix = ',';
}
result.push({
text: translate('report.actions.type.exportedToIntegration.reimburseableLink') + (shouldAddPeriod ? '.' : ''),
text: translate('report.actions.type.exportedToIntegration.reimburseableLink') + suffix,
url: reimbursableUrl.startsWith('https://') ? reimbursableUrl : '',
});
}
if (reimbursableUrls.length === 1 && nonReimbursableUrls.length) {
if (hasReimbursable && (hasNonReimbursable || hasTravelInvoicing) && linkItemCount === 2) {
result.push({
text: translate('common.and'),
url: '',
});
}
if (nonReimbursableUrls.length) {
const text = translate('report.actions.type.exportedToIntegration.nonReimbursableLink');
const baseText = translate('report.actions.type.exportedToIntegration.nonReimbursableLink');
const text = linkItemCount === 3 ? `${baseText},` : baseText;
let url = '';

if (nonReimbursableUrls.length === 1) {
Expand All @@ -2797,6 +2809,27 @@ function getExportIntegrationActionFragments(translate: LocalizedTranslate, repo
result.push({text, url});
}

if (nonReimbursableUrls.length && travelInvoicingUrls.length) {
result.push({
text: translate('common.and'),
url: '',
});
}
if (travelInvoicingUrls.length) {
const text = translate('report.actions.type.exportedToIntegration.travelCardLink');
let url = '';
Comment thread
blimpich marked this conversation as resolved.

if (travelInvoicingUrls.length === 1) {
const travelInvoicingUrl = travelInvoicingUrls.at(0) ?? '';
url = travelInvoicingUrl.startsWith('https://') ? travelInvoicingUrl : '';
} else if (label === CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY.netsuite) {
url = NETSUITE_NON_REIMBURSABLE_EXPENSES_URL_PREFIX;
url += wasExportedAfterBase62 ? base62ReportID : reportID;
}

result.push({text, url});
}

return result;
}

Expand Down
5 changes: 5 additions & 0 deletions src/types/onyx/OriginalMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1228,6 +1228,11 @@ type OriginalMessageExportIntegration = {
*/
reimbursableUrls?: string[];

/**
* A list of URLs to the Travel Invoicing Journal Entry records
*/
travelInvoicingUrls?: string[];

/**
* The type of the export action
*/
Expand Down
Loading