Skip to content

Commit 49eb51d

Browse files
lakchoteOSBotify
authored andcommitted
Merge pull request #82147 from ZhenjaHorbach/revert-pr-79099
[CP Staging] Revert Handle the Distance and Rate fields for splits (cherry picked from commit e0a6b4e) (cherry-picked to staging by lakchote)
1 parent 66a1c30 commit 49eb51d

23 files changed

+153
-1728
lines changed

src/CONST/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1858,7 +1858,6 @@ const CONST = {
18581858
STATE: {
18591859
CURRENT: 'current',
18601860
DRAFT: 'draft',
1861-
SPLIT_DRAFT: 'splitDraft',
18621861
BACKUP: 'backup',
18631862
},
18641863
LIABILITY_TYPE: {
@@ -2970,8 +2969,6 @@ const CONST = {
29702969
QUANTITY_MAX_LENGTH: 12,
29712970
// This is the transactionID used when going through the create expense flow so that it mimics a real transaction (like the edit flow)
29722971
OPTIMISTIC_TRANSACTION_ID: '1',
2973-
// This is the transactionID used when going through the distance split expense flow so that it mimics a draft transaction
2974-
OPTIMISTIC_DISTANCE_SPLIT_TRANSACTION_ID: '2',
29752972
// Note: These payment types are used when building IOU reportAction message values in the server and should
29762973
// not be changed.
29772974
LOCATION_PERMISSION_PROMPT_THRESHOLD_DAYS: 7,

src/components/MoneyReportHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1377,7 +1377,7 @@ function MoneyReportHeader({
13771377
return;
13781378
}
13791379

1380-
initSplitExpense(allTransactions, allReports, currentTransaction, policy);
1380+
initSplitExpense(allTransactions, allReports, currentTransaction);
13811381
},
13821382
},
13831383
[CONST.REPORT.SECONDARY_ACTIONS.MERGE]: {

src/components/MoneyRequestHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ function MoneyRequestHeader({report, parentReportAction, policy, onBackButtonPre
432432
icon: expensifyIcons.ArrowSplit,
433433
value: CONST.REPORT.SECONDARY_ACTIONS.SPLIT,
434434
onSelected: () => {
435-
initSplitExpense(allTransactions, allReports, transaction, policy);
435+
initSplitExpense(allTransactions, allReports, transaction);
436436
},
437437
},
438438
[CONST.REPORT.TRANSACTION_SECONDARY_ACTIONS.MERGE]: {

src/components/ReportActionItem/MoneyRequestView.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,11 @@ function MoneyRequestView({
604604
return;
605605
}
606606

607+
if (isExpenseSplit && isSplitAvailable) {
608+
initSplitExpense(allTransactions, allReports, transaction);
609+
return;
610+
}
611+
607612
if (isOdometerDistanceRequest) {
608613
Navigation.navigate(
609614
ROUTES.MONEY_REQUEST_STEP_DISTANCE_ODOMETER.getRoute(CONST.IOU.ACTION.EDIT, iouType, transaction.transactionID, transactionThreadReport.reportID),
@@ -652,6 +657,11 @@ function MoneyRequestView({
652657
return;
653658
}
654659

660+
if (isExpenseSplit && isSplitAvailable) {
661+
initSplitExpense(allTransactions, allReports, transaction);
662+
return;
663+
}
664+
655665
Navigation.navigate(
656666
ROUTES.MONEY_REQUEST_STEP_DISTANCE_RATE.getRoute(
657667
CONST.IOU.ACTION.EDIT,
@@ -840,7 +850,7 @@ function MoneyRequestView({
840850
}
841851

842852
if (isExpenseSplit && isSplitAvailable) {
843-
initSplitExpense(allTransactions, allReports, transaction, policy);
853+
initSplitExpense(allTransactions, allReports, transaction);
844854
return;
845855
}
846856

src/hooks/useSelectedTransactionsActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ function useSelectedTransactionsActions({
370370
icon: expensifyIcons.ArrowSplit,
371371
value: SPLIT,
372372
onSelected: () => {
373-
initSplitExpense(allTransactions, allReports, firstTransaction, policy);
373+
initSplitExpense(allTransactions, allReports, firstTransaction);
374374
},
375375
});
376376
}

src/libs/API/parameters/SplitTransactionParams.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {Comment, WaypointCollection} from '@src/types/onyx/Transaction';
1+
import type {Comment} from '@src/types/onyx/Transaction';
22

33
type SplitTransactionSplitParam = {
44
transactionID: string;
@@ -14,11 +14,6 @@ type SplitTransactionSplitParam = {
1414
reimbursable?: boolean;
1515
billable?: boolean;
1616
reportID?: string;
17-
quantity?: number;
18-
customUnitRateID?: string;
19-
odometerStart?: number;
20-
odometerEnd?: number;
21-
waypoints?: WaypointCollection;
2217
};
2318

2419
type SplitTransactionSplitsParam = SplitTransactionSplitParam[];

src/libs/API/types.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,7 +1157,6 @@ const READ_COMMANDS = {
11571157
GRAPHITE: 'Graphite',
11581158
GET_ROUTE: 'GetRoute',
11591159
GET_ROUTE_FOR_DRAFT: 'GetRouteForDraft',
1160-
GET_ROUTE_FOR_SPLIT_DRAFT: 'GetRouteForSplitDraft',
11611160
GET_ROUTE_FOR_BACKUP: 'GetRouteForBackup',
11621161
GET_STATEMENT_PDF: 'GetStatementPDF',
11631162
OPEN_ONFIDO_FLOW: 'OpenOnfidoFlow',
@@ -1242,7 +1241,6 @@ type ReadCommandParameters = {
12421241
[READ_COMMANDS.GRAPHITE]: Parameters.GraphiteParams;
12431242
[READ_COMMANDS.GET_ROUTE]: Parameters.GetRouteParams;
12441243
[READ_COMMANDS.GET_ROUTE_FOR_DRAFT]: Parameters.GetRouteParams;
1245-
[READ_COMMANDS.GET_ROUTE_FOR_SPLIT_DRAFT]: Parameters.GetRouteParams;
12461244
[READ_COMMANDS.GET_ROUTE_FOR_BACKUP]: Parameters.GetRouteParams;
12471245
[READ_COMMANDS.GET_STATEMENT_PDF]: Parameters.GetStatementPDFParams;
12481246
[READ_COMMANDS.OPEN_ONFIDO_FLOW]: null;

src/libs/TransactionUtils/index.ts

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ import type {OnyxData} from '@src/types/onyx/Request';
7575
import type {
7676
Comment,
7777
Receipt,
78-
Routes,
7978
TransactionChanges,
8079
TransactionCustomUnit,
8180
TransactionPendingFieldsKey,
@@ -114,17 +113,13 @@ type TransactionParams = {
114113
splitsStartDate?: string;
115114
splitsEndDate?: string;
116115
distance?: number;
117-
customUnitRateID?: string;
118-
waypoints?: WaypointCollection;
119116
odometerStart?: number;
120117
odometerEnd?: number;
121-
routes?: Routes;
122118
gpsCoordinates?: string;
123119
type?: ValueOf<typeof CONST.TRANSACTION.TYPE>;
124120
count?: number;
125121
rate?: number;
126122
unit?: ValueOf<typeof CONST.TIME_TRACKING.UNIT>;
127-
commentType?: ValueOf<typeof CONST.TRANSACTION.TYPE>;
128123
};
129124

130125
type BuildOptimisticTransactionParams = {
@@ -474,16 +469,12 @@ function buildOptimisticTransaction(params: BuildOptimisticTransactionParams): T
474469
splitExpensesTotal,
475470
participants,
476471
pendingAction = CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD,
477-
customUnitRateID,
478-
waypoints,
479472
odometerStart,
480473
odometerEnd,
481-
routes,
482474
type,
483475
count,
484476
rate,
485477
unit,
486-
commentType,
487478
} = transactionParams;
488479
// transactionIDs are random, positive, 64-bit numeric strings.
489480
// Because JS can only handle 53-bit numbers, transactionIDs are strings in the front-end (just like reportActionID)
@@ -517,28 +508,14 @@ function buildOptimisticTransaction(params: BuildOptimisticTransactionParams): T
517508
if (splitExpensesTotal) {
518509
commentJSON.splitExpensesTotal = splitExpensesTotal;
519510
}
520-
if (waypoints) {
521-
commentJSON.waypoints = waypoints;
522-
}
523-
if (commentType) {
524-
commentJSON.type = commentType;
525-
}
526511

527-
const isMapDistanceTransaction = !!pendingFields?.waypoints || existingTransaction?.comment?.waypoints?.waypoint0;
512+
const isMapDistanceTransaction = !!pendingFields?.waypoints;
528513
const isManualDistanceTransaction = isManualDistanceRequest(existingTransaction);
529514
const isOdometerDistanceTransaction = isOdometerDistanceRequest(existingTransaction);
530515
if (isMapDistanceTransaction || isManualDistanceTransaction || isOdometerDistanceTransaction) {
531-
// If customUnit is provided (e.g., for split expenses), use it directly
532-
// Otherwise, build customUnit from distance parameter
533-
if (customUnit) {
534-
lodashSet(commentJSON, 'customUnit', customUnit);
535-
} else {
536-
// Set the distance unit, which comes from the policy distance unit or the P2P rate data
537-
lodashSet(commentJSON, 'customUnit.distanceUnit', DistanceRequestUtils.getUpdatedDistanceUnit({transaction: existingTransaction, policy}));
538-
lodashSet(commentJSON, 'customUnit.quantity', distance);
539-
lodashSet(commentJSON, 'customUnit.customUnitRateID', customUnitRateID);
540-
lodashSet(commentJSON, 'customUnit.name', existingTransaction?.comment?.customUnit?.name ?? CONST.CUSTOM_UNITS.NAME_DISTANCE);
541-
}
516+
// Set the distance unit, which comes from the policy distance unit or the P2P rate data
517+
lodashSet(commentJSON, 'customUnit.distanceUnit', DistanceRequestUtils.getUpdatedDistanceUnit({transaction: existingTransaction, policy}));
518+
lodashSet(commentJSON, 'customUnit.quantity', distance);
542519
}
543520

544521
const isPerDiemTransaction = !!pendingFields?.subRates;
@@ -583,9 +560,6 @@ function buildOptimisticTransaction(params: BuildOptimisticTransactionParams): T
583560
cardID: existingTransaction?.cardID,
584561
cardName: existingTransaction?.cardName,
585562
cardNumber: existingTransaction?.cardNumber,
586-
// Use conditional spread to avoid creating the key if it's undefined, which would break lodashHas checks.
587-
...(existingTransaction?.iouRequestType ? {iouRequestType: existingTransaction.iouRequestType} : {}),
588-
routes,
589563
};
590564
}
591565

@@ -692,14 +666,12 @@ function getUpdatedTransaction({
692666
isFromExpenseReport,
693667
shouldUpdateReceiptState = true,
694668
policy = undefined,
695-
isDraftSplitTransaction = false,
696669
}: {
697670
transaction: Transaction;
698671
transactionChanges: TransactionChanges;
699672
isFromExpenseReport: boolean;
700673
shouldUpdateReceiptState?: boolean;
701674
policy?: OnyxEntry<Policy>;
702-
isDraftSplitTransaction?: boolean;
703675
}): Transaction {
704676
const isUnReportedExpense = transaction?.reportID === CONST.REPORT.UNREPORTED_REPORT_ID;
705677

@@ -734,10 +706,7 @@ function getUpdatedTransaction({
734706

735707
if (Object.hasOwn(transactionChanges, 'waypoints')) {
736708
updatedTransaction.modifiedWaypoints = transactionChanges.waypoints;
737-
// For draft split transactions, we don't want to set isLoading to true as all the split transactions are in draft state
738-
if (!isDraftSplitTransaction) {
739-
updatedTransaction.isLoading = true;
740-
}
709+
updatedTransaction.isLoading = true;
741710
shouldStopSmartscan = true;
742711

743712
if (!transactionChanges.routes?.route0?.geometry?.coordinates) {
@@ -772,10 +741,6 @@ function getUpdatedTransaction({
772741
}
773742
}
774743

775-
if (Object.hasOwn(transactionChanges, 'routes')) {
776-
updatedTransaction.routes = transactionChanges.routes;
777-
}
778-
779744
if (Object.hasOwn(transactionChanges, 'customUnitRateID')) {
780745
lodashSet(updatedTransaction, 'comment.customUnit.customUnitRateID', transactionChanges.customUnitRateID);
781746
lodashSet(updatedTransaction, 'comment.customUnit.defaultP2PRate', null);

0 commit comments

Comments
 (0)