Skip to content

Commit 5218714

Browse files
authored
Merge pull request #29287 from Expensify/georgia-cardTransactions-ReportPreview
2 parents 06ab1eb + 8786ad4 commit 5218714

File tree

5 files changed

+32
-5
lines changed

5 files changed

+32
-5
lines changed

src/components/ReportActionItem/ReportPreview.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ function ReportPreview(props) {
127127
const hasErrors = hasReceipts && ReportUtils.hasMissingSmartscanFields(props.iouReportID);
128128
const lastThreeTransactionsWithReceipts = ReportUtils.getReportPreviewDisplayTransactions(props.action);
129129
const lastThreeReceipts = _.map(lastThreeTransactionsWithReceipts, ({receipt, filename}) => ReceiptUtils.getThumbnailAndImageURIs(receipt.source, filename || ''));
130-
130+
const hasNonReimbursableTransactions = ReportUtils.hasNonReimbursableTransactions(props.iouReportID);
131131
const hasOnlyOneReceiptRequest = numberOfRequests === 1 && hasReceipts;
132132
const previewSubtitle = hasOnlyOneReceiptRequest
133133
? TransactionUtils.getMerchant(transactionsWithReceipts[0])
@@ -166,7 +166,11 @@ function ReportPreview(props) {
166166
return props.translate('iou.managerApproved', {manager: ReportUtils.getDisplayNameForParticipant(managerID, true)});
167167
}
168168
const managerName = isPolicyExpenseChat ? ReportUtils.getPolicyName(props.chatReport) : ReportUtils.getDisplayNameForParticipant(managerID, true);
169-
return props.translate(iouSettled || props.iouReport.isWaitingOnBankAccount ? 'iou.payerPaid' : 'iou.payerOwes', {payer: managerName});
169+
let paymentVerb = hasNonReimbursableTransactions ? 'iou.payerSpent' : 'iou.payerOwes';
170+
if (iouSettled || props.iouReport.isWaitingOnBankAccount) {
171+
paymentVerb = 'iou.payerPaid';
172+
}
173+
return props.translate(paymentVerb, {payer: managerName});
170174
};
171175

172176
const bankAccountRoute = ReportUtils.getBankAccountRoute(props.chatReport);

src/languages/en.ts

+2
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,8 @@ export default {
553553
payerOwes: ({payer}: PayerOwesParams) => `${payer} owes: `,
554554
payerPaidAmount: ({payer, amount}: PayerPaidAmountParams): string => `${payer} paid ${amount}`,
555555
payerPaid: ({payer}: PayerPaidParams) => `${payer} paid: `,
556+
payerSpentAmount: ({payer, amount}: PayerPaidAmountParams): string => `${payer} spent ${amount}`,
557+
payerSpent: ({payer}: PayerPaidParams) => `${payer} spent: `,
556558
managerApproved: ({manager}: ManagerApprovedParams) => `${manager} approved:`,
557559
payerSettled: ({amount}: PayerSettledParams) => `paid ${amount}`,
558560
waitingOnBankAccount: ({submitterDisplayName}: WaitingOnBankAccountParams) => `started settling up, payment is held until ${submitterDisplayName} adds a bank account`,

src/languages/es.ts

+2
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,8 @@ export default {
545545
payerOwes: ({payer}: PayerOwesParams) => `${payer} debe: `,
546546
payerPaidAmount: ({payer, amount}: PayerPaidAmountParams) => `${payer} pagó ${amount}`,
547547
payerPaid: ({payer}: PayerPaidParams) => `${payer} pagó: `,
548+
payerSpentAmount: ({payer, amount}: PayerPaidAmountParams): string => `${payer} gastó ${amount}`,
549+
payerSpent: ({payer}: PayerPaidParams) => `${payer} gastó: `,
548550
managerApproved: ({manager}: ManagerApprovedParams) => `${manager} aprobó:`,
549551
payerSettled: ({amount}: PayerSettledParams) => `pagó ${amount}`,
550552
waitingOnBankAccount: ({submitterDisplayName}: WaitingOnBankAccountParams) => `inicio el pago, pero no se procesará hasta que ${submitterDisplayName} añada una cuenta bancaria`,

src/libs/ReportUtils.js

+18-1
Original file line numberDiff line numberDiff line change
@@ -1267,6 +1267,17 @@ function isWaitingForTaskCompleteFromAssignee(report, parentReportAction = {}) {
12671267
return isTaskReport(report) && isReportManager(report) && isOpenTaskReport(report, parentReportAction);
12681268
}
12691269

1270+
/**
1271+
* Returns number of transactions that are nonReimbursable
1272+
*
1273+
* @param {Object|null} iouReportID
1274+
* @returns {Number}
1275+
*/
1276+
function hasNonReimbursableTransactions(iouReportID) {
1277+
const allTransactions = TransactionUtils.getAllReportTransactions(iouReportID);
1278+
return _.filter(allTransactions, (transaction) => transaction.reimbursable === false).length > 0;
1279+
}
1280+
12701281
/**
12711282
* @param {Object} report
12721283
* @param {Object} allReportsDict
@@ -1344,6 +1355,10 @@ function getMoneyRequestReportName(report, policy = undefined) {
13441355
return `${payerPaidAmountMesssage}${Localize.translateLocal('iou.pending')}`;
13451356
}
13461357

1358+
if (hasNonReimbursableTransactions(report.reportID)) {
1359+
return Localize.translateLocal('iou.payerSpentAmount', {payer: payerName, amount: formattedAmount});
1360+
}
1361+
13471362
if (report.hasOutstandingIOU) {
13481363
return Localize.translateLocal('iou.payerOwesAmount', {payer: payerName, amount: formattedAmount});
13491364
}
@@ -1565,7 +1580,8 @@ function getReportPreviewMessage(report, reportAction = {}, shouldConsiderReceip
15651580
return Localize.translateLocal('iou.waitingOnBankAccount', {submitterDisplayName});
15661581
}
15671582

1568-
return Localize.translateLocal('iou.payerOwesAmount', {payer: payerName, amount: formattedAmount});
1583+
const containsNonReimbursable = hasNonReimbursableTransactions(report.reportID);
1584+
return Localize.translateLocal(containsNonReimbursable ? 'iou.payerSpentAmount' : 'iou.payerOwesAmount', {payer: payerName, amount: formattedAmount});
15691585
}
15701586

15711587
/**
@@ -3988,6 +4004,7 @@ export {
39884004
areAllRequestsBeingSmartScanned,
39894005
getReportPreviewDisplayTransactions,
39904006
getTransactionsWithReceipts,
4007+
hasNonReimbursableTransactions,
39914008
hasMissingSmartscanFields,
39924009
getIOUReportActionDisplayMessage,
39934010
isWaitingForTaskCompleteFromAssignee,

src/libs/actions/IOU.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -1767,7 +1767,8 @@ function editMoneyRequest(transactionID, transactionThreadReportID, transactionC
17671767
updatedMoneyRequestReport.lastMessageHtml = lastMessage[0].html;
17681768

17691769
// Update the last message of the chat report
1770-
const messageText = Localize.translateLocal('iou.payerOwesAmount', {
1770+
const hasNonReimbursableTransactions = ReportUtils.hasNonReimbursableTransactions(iouReport);
1771+
const messageText = Localize.translateLocal(hasNonReimbursableTransactions ? 'iou.payerSpentAmount' : 'iou.payerOwesAmount', {
17711772
payer: updatedMoneyRequestReport.managerEmail,
17721773
amount: CurrencyUtils.convertToDisplayString(updatedMoneyRequestReport.total, updatedMoneyRequestReport.currency),
17731774
});
@@ -1987,7 +1988,8 @@ function deleteMoneyRequest(transactionID, reportAction, isSingleTransactionView
19871988
updatedIOUReport.lastVisibleActionCreated = lastVisibleAction.created;
19881989

19891990
updatedReportPreviewAction = {...reportPreviewAction};
1990-
const messageText = Localize.translateLocal('iou.payerOwesAmount', {
1991+
const hasNonReimbursableTransactions = ReportUtils.hasNonReimbursableTransactions(iouReport);
1992+
const messageText = Localize.translateLocal(hasNonReimbursableTransactions ? 'iou.payerSpentAmount' : 'iou.payerOwesAmount', {
19911993
payer: updatedIOUReport.managerEmail,
19921994
amount: CurrencyUtils.convertToDisplayString(updatedIOUReport.total, updatedIOUReport.currency),
19931995
});

0 commit comments

Comments
 (0)