Skip to content

Commit a7e51d0

Browse files
authored
Merge pull request #95476 from dukenv0307/fix/94561-part-3
Add paid status column
2 parents 52db879 + f9a8dd9 commit a7e51d0

8 files changed

Lines changed: 32 additions & 0 deletions

File tree

src/CONST/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6617,6 +6617,7 @@ const CONST = {
66176617
FIRST_APPROVED: this.TABLE_COLUMNS.FIRST_APPROVED,
66186618
EXPORTED: this.TABLE_COLUMNS.EXPORTED,
66196619
STATUS: this.TABLE_COLUMNS.STATUS,
6620+
PAID_STATUS: this.TABLE_COLUMNS.PAID_STATUS,
66206621
TITLE: this.TABLE_COLUMNS.TITLE,
66216622
FROM: this.TABLE_COLUMNS.FROM,
66226623
TO: this.TABLE_COLUMNS.TO,
@@ -6844,6 +6845,7 @@ const CONST = {
68446845
ORDER_DEAL_NUMBERS: 'orderDealNumbers',
68456846
AVATAR: 'avatar',
68466847
STATUS: 'status',
6848+
PAID_STATUS: 'paidstatus',
68476849
EXPENSES: 'expenses',
68486850
FEED: 'feed',
68496851
WITHDRAWN: 'withdrawn',

src/components/Search/SearchList/ListItem/ExpenseReportListItemRow/ExpenseReportListItemRowWide.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,14 @@ function ExpenseReportListItemRowWide({
138138
/>
139139
</View>
140140
),
141+
[CONST.SEARCH.TABLE_COLUMNS.PAID_STATUS]: (
142+
<View style={[StyleUtils.getReportTableColumnStyles(CONST.SEARCH.TABLE_COLUMNS.PAID_STATUS)]}>
143+
<TextCell
144+
text={item.formattedPaidStatus ?? ''}
145+
isLargeScreenWidth
146+
/>
147+
</View>
148+
),
141149
[CONST.SEARCH.TABLE_COLUMNS.TITLE]: (
142150
<View style={[StyleUtils.getReportTableColumnStyles(CONST.SEARCH.TABLE_COLUMNS.TITLE)]}>
143151
<TextCell

src/components/Search/SearchList/ListItem/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ type TransactionReportGroupListItemType = TransactionGroupListItemType & {groupe
234234
/** Final and formatted "status" value used for displaying and sorting */
235235
formattedStatus?: string;
236236

237+
/** Final and formatted "paid status" value (Marked as paid / Withdrawing / Confirmed) used for displaying and sorting */
238+
formattedPaidStatus?: string;
239+
237240
/** Final and formatted "from" value used for displaying and sorting */
238241
formattedFrom?: string;
239242

src/components/Search/SearchTableHeader.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ const getExpenseReportHeaders = (profileIcon?: IconAsset): SearchColumnConfig[]
274274
columnName: CONST.SEARCH.TABLE_COLUMNS.STATUS,
275275
translationKey: 'common.status',
276276
},
277+
{
278+
columnName: CONST.SEARCH.TABLE_COLUMNS.PAID_STATUS,
279+
translationKey: 'common.paidStatus',
280+
},
277281
{
278282
columnName: CONST.SEARCH.TABLE_COLUMNS.TITLE,
279283
translationKey: 'common.title',

src/libs/SearchUIUtils.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ import {
152152
getReimbursableTotal,
153153
getReportCustomColumnValue,
154154
getReportOrDraftReport,
155+
getReportStatusTooltipTranslation,
155156
getReportStatusTranslation,
156157
hasHeldExpenses,
157158
hasInvoiceReports,
@@ -320,6 +321,7 @@ const expenseReportColumnNamesToSortingProperty: ExpenseReportSorting = {
320321
[CONST.SEARCH.TABLE_COLUMNS.FIRST_APPROVED]: 'firstApproved' as const,
321322
[CONST.SEARCH.TABLE_COLUMNS.EXPORTED]: 'exported' as const,
322323
[CONST.SEARCH.TABLE_COLUMNS.STATUS]: 'formattedStatus' as const,
324+
[CONST.SEARCH.TABLE_COLUMNS.PAID_STATUS]: 'formattedPaidStatus' as const,
323325
[CONST.SEARCH.TABLE_COLUMNS.TITLE]: 'reportName' as const,
324326
[CONST.SEARCH.TABLE_COLUMNS.FROM]: 'formattedFrom' as const,
325327
[CONST.SEARCH.TABLE_COLUMNS.TO]: 'formattedTo' as const,
@@ -2890,6 +2892,7 @@ function getReportSections({
28902892
const formattedFirstApprover = firstApproverAccountID ? formatPhoneNumber(temporaryGetDisplayNameOrDefault({passedPersonalDetails: firstApproverDetails, translate})) : '';
28912893

28922894
const formattedStatus = getReportStatusTranslation({stateNum: reportItem.stateNum, statusNum: reportItem.statusNum, translate});
2895+
const formattedPaidStatus = getReportStatusTooltipTranslation({stateNum: reportItem.stateNum, statusNum: reportItem.statusNum, translate});
28932896
const policy = getPolicyFromKey(data, reportItem);
28942897

28952898
const shouldShowStatusAsPending = !!isOffline && reportItem?.pendingFields?.nextStep === CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE;
@@ -2934,6 +2937,7 @@ function getReportSections({
29342937
formattedFrom,
29352938
formattedTo,
29362939
formattedStatus,
2940+
formattedPaidStatus,
29372941
transactions,
29382942
shouldShowStatusAsPending,
29392943
...(reportPendingAction ? {pendingAction: reportPendingAction} : {}),
@@ -4403,6 +4407,8 @@ function getSearchColumnTranslationKey(column: SearchSortBy): TranslationPaths {
44034407
return 'common.title';
44044408
case CONST.SEARCH.TABLE_COLUMNS.STATUS:
44054409
return 'common.status';
4410+
case CONST.SEARCH.TABLE_COLUMNS.PAID_STATUS:
4411+
return 'common.paidStatus';
44064412
case CONST.SEARCH.TABLE_COLUMNS.EXCHANGE_RATE:
44074413
return 'common.exchangeRate';
44084414
case CONST.SEARCH.TABLE_COLUMNS.POLICY_NAME:

src/styles/utils/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1903,6 +1903,9 @@ const createStyleUtils = (theme: ThemeColors, styles: ThemeStyles) => ({
19031903
case CONST.SEARCH.TABLE_COLUMNS.STATUS:
19041904
columnWidth = {...getWidthStyle(variables.w80), ...styles.alignItemsCenter};
19051905
break;
1906+
case CONST.SEARCH.TABLE_COLUMNS.PAID_STATUS:
1907+
columnWidth = {...getWidthStyle(variables.w130)};
1908+
break;
19061909
case CONST.SEARCH.TABLE_COLUMNS.GROUP_WITHDRAWAL_STATUS:
19071910
columnWidth = {...getWidthStyle(variables.w130), ...styles.alignItemsCenter};
19081911
break;

tests/unit/Search/ColumnAvailabilityTest.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ describe('Column availability single source of truth', () => {
3232
TABLE_COLUMNS.NON_REIMBURSABLE_TOTAL,
3333
TABLE_COLUMNS.FIRST_APPROVER,
3434
TABLE_COLUMNS.FIRST_APPROVED,
35+
TABLE_COLUMNS.PAID_STATUS,
3536
// Grouped search views.
3637
TABLE_COLUMNS.EXPENSES,
3738
TABLE_COLUMNS.FEED,
@@ -107,6 +108,7 @@ describe('Column availability single source of truth', () => {
107108
const reportColumns = Object.values(CONST.SEARCH.REPORT_DETAILS_CUSTOM_COLUMNS);
108109
const reportLevelColumns = [
109110
TABLE_COLUMNS.STATUS,
111+
TABLE_COLUMNS.PAID_STATUS,
110112
TABLE_COLUMNS.SUBMITTED,
111113
TABLE_COLUMNS.APPROVED,
112114
TABLE_COLUMNS.EXPORTED,

tests/unit/Search/SearchUIUtilsTest.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,6 +1115,7 @@ const transactionReportGroupListItems = [
11151115
currency: 'USD',
11161116
formattedFrom: 'Admin',
11171117
formattedStatus: 'Draft',
1118+
formattedPaidStatus: '',
11181119
formattedTo: '',
11191120
from: {
11201121
accountID: 18439984,
@@ -1240,6 +1241,7 @@ const transactionReportGroupListItems = [
12401241
currency: 'USD',
12411242
formattedFrom: 'Admin',
12421243
formattedStatus: 'Outstanding',
1244+
formattedPaidStatus: '',
12431245
formattedTo: 'Admin',
12441246
from: {
12451247
accountID: 18439984,
@@ -1374,6 +1376,7 @@ const transactionReportGroupListItems = [
13741376
currency: 'VND',
13751377
formattedFrom: 'Admin',
13761378
formattedStatus: 'Outstanding',
1379+
formattedPaidStatus: '',
13771380
formattedTo: 'Approver',
13781381
hasVisibleViolations: false,
13791382
isActionColumnWide: false,
@@ -1581,6 +1584,7 @@ const transactionReportGroupListItems = [
15811584
currency: 'USD',
15821585
formattedFrom: 'Admin',
15831586
formattedStatus: 'Draft',
1587+
formattedPaidStatus: '',
15841588
formattedTo: '',
15851589
from: {
15861590
accountID: 18439984,

0 commit comments

Comments
 (0)