Skip to content

Commit f9ec4fa

Browse files
Merge pull request #52221 from ChavdaSachin/refactor-50368/IOU.categorizeTrackedExpense
Refactor IOU.categorizeTrackedExpense function
2 parents 1a95147 + 0f13fb3 commit f9ec4fa

File tree

1 file changed

+72
-64
lines changed

1 file changed

+72
-64
lines changed

src/libs/actions/IOU.ts

Lines changed: 72 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,41 @@ type TrackExpenseInformation = {
112112
actionableWhisperReportActionIDParam?: string;
113113
onyxData: OnyxData;
114114
};
115-
115+
type CategorizeTrackedExpenseTransactionParams = {
116+
transactionID: string;
117+
amount: number;
118+
currency: string;
119+
comment: string;
120+
merchant: string;
121+
created: string;
122+
taxCode: string;
123+
taxAmount: number;
124+
category?: string;
125+
tag?: string;
126+
billable?: boolean;
127+
receipt?: Receipt;
128+
};
129+
type CategorizeTrackedExpensePolicyParams = {
130+
policyID: string;
131+
isDraftPolicy: boolean;
132+
};
133+
type CategorizeTrackedExpenseReportInformation = {
134+
moneyRequestPreviewReportActionID: string;
135+
moneyRequestReportID: string;
136+
moneyRequestCreatedReportActionID: string;
137+
actionableWhisperReportActionID: string;
138+
linkedTrackedExpenseReportAction: OnyxTypes.ReportAction;
139+
linkedTrackedExpenseReportID: string;
140+
transactionThreadReportID: string;
141+
reportPreviewReportActionID: string;
142+
};
143+
type CategorizeTrackedExpenseParams = {
144+
onyxData: OnyxData | undefined;
145+
reportInformation: CategorizeTrackedExpenseReportInformation;
146+
transactionParams: CategorizeTrackedExpenseTransactionParams;
147+
policyParams: CategorizeTrackedExpensePolicyParams;
148+
createdWorkspaceParams?: CreateWorkspaceParams;
149+
};
116150
type SendInvoiceInformation = {
117151
senderWorkspaceID: string;
118152
receiver: Partial<OnyxTypes.PersonalDetails>;
@@ -3528,34 +3562,12 @@ function convertTrackedExpenseToRequest(
35283562
API.write(WRITE_COMMANDS.CONVERT_TRACKED_EXPENSE_TO_REQUEST, parameters, {optimisticData, successData, failureData});
35293563
}
35303564

3531-
function categorizeTrackedExpense(
3532-
policyID: string,
3533-
transactionID: string,
3534-
moneyRequestPreviewReportActionID: string,
3535-
moneyRequestReportID: string,
3536-
moneyRequestCreatedReportActionID: string,
3537-
actionableWhisperReportActionID: string,
3538-
linkedTrackedExpenseReportAction: OnyxTypes.ReportAction,
3539-
linkedTrackedExpenseReportID: string,
3540-
transactionThreadReportID: string,
3541-
reportPreviewReportActionID: string,
3542-
onyxData: OnyxData | undefined,
3543-
amount: number,
3544-
currency: string,
3545-
comment: string,
3546-
merchant: string,
3547-
created: string,
3548-
isDraftPolicy: boolean,
3549-
category?: string,
3550-
tag?: string,
3551-
taxCode = '',
3552-
taxAmount = 0,
3553-
billable?: boolean,
3554-
receipt?: Receipt,
3555-
createdWorkspaceParams?: CreateWorkspaceParams,
3556-
) {
3565+
function categorizeTrackedExpense(trackedExpenseParams: CategorizeTrackedExpenseParams) {
3566+
const {onyxData, reportInformation, transactionParams, policyParams, createdWorkspaceParams} = trackedExpenseParams;
35573567
const {optimisticData, successData, failureData} = onyxData ?? {};
3558-
3568+
const {transactionID} = transactionParams;
3569+
const {isDraftPolicy} = policyParams;
3570+
const {actionableWhisperReportActionID, moneyRequestReportID, linkedTrackedExpenseReportAction, linkedTrackedExpenseReportID, transactionThreadReportID} = reportInformation;
35593571
const {
35603572
optimisticData: moveTransactionOptimisticData,
35613573
successData: moveTransactionSuccessData,
@@ -3574,27 +3586,12 @@ function categorizeTrackedExpense(
35743586
optimisticData?.push(...moveTransactionOptimisticData);
35753587
successData?.push(...moveTransactionSuccessData);
35763588
failureData?.push(...moveTransactionFailureData);
3577-
35783589
const parameters = {
3579-
policyID,
3580-
transactionID,
3581-
moneyRequestPreviewReportActionID,
3582-
moneyRequestReportID,
3583-
moneyRequestCreatedReportActionID,
3584-
actionableWhisperReportActionID,
3590+
onyxData,
3591+
...reportInformation,
3592+
...policyParams,
3593+
...transactionParams,
35853594
modifiedExpenseReportActionID,
3586-
reportPreviewReportActionID,
3587-
amount,
3588-
currency,
3589-
comment,
3590-
merchant,
3591-
category,
3592-
tag,
3593-
taxCode,
3594-
taxAmount,
3595-
billable,
3596-
created,
3597-
receipt,
35983595
policyExpenseChatReportID: createdWorkspaceParams?.expenseChatReportID,
35993596
policyExpenseCreatedReportActionID: createdWorkspaceParams?.expenseCreatedReportActionID,
36003597
adminsChatReportID: createdWorkspaceParams?.adminsChatReportID,
@@ -3967,32 +3964,43 @@ function trackExpense(
39673964
if (!linkedTrackedExpenseReportAction || !actionableWhisperReportActionID || !linkedTrackedExpenseReportID) {
39683965
return;
39693966
}
3970-
categorizeTrackedExpense(
3971-
chatReport?.policyID ?? '-1',
3972-
transaction?.transactionID ?? '-1',
3973-
iouAction?.reportActionID ?? '-1',
3974-
iouReport?.reportID ?? '-1',
3975-
createdIOUReportActionID ?? '-1',
3976-
actionableWhisperReportActionID,
3977-
linkedTrackedExpenseReportAction,
3978-
linkedTrackedExpenseReportID,
3979-
transactionThreadReportID ?? '-1',
3980-
reportPreviewAction?.reportActionID ?? '-1',
3981-
onyxData,
3967+
const transactionParams = {
3968+
transactionID: transaction?.transactionID ?? '-1',
39823969
amount,
39833970
currency,
39843971
comment,
39853972
merchant,
39863973
created,
3987-
isDraftPolicy,
3988-
category,
3989-
tag,
39903974
taxCode,
39913975
taxAmount,
3976+
category,
3977+
tag,
39923978
billable,
3993-
trackedReceipt,
3979+
receipt: trackedReceipt,
3980+
};
3981+
const policyParams = {
3982+
policyID: chatReport?.policyID ?? '-1',
3983+
isDraftPolicy,
3984+
};
3985+
const reportInformation = {
3986+
moneyRequestPreviewReportActionID: iouAction?.reportActionID ?? '-1',
3987+
moneyRequestReportID: iouReport?.reportID ?? '-1',
3988+
moneyRequestCreatedReportActionID: createdIOUReportActionID ?? '-1',
3989+
actionableWhisperReportActionID,
3990+
linkedTrackedExpenseReportAction,
3991+
linkedTrackedExpenseReportID,
3992+
transactionThreadReportID: transactionThreadReportID ?? '-1',
3993+
reportPreviewReportActionID: reportPreviewAction?.reportActionID ?? '-1',
3994+
};
3995+
const trackedExpenseParams = {
3996+
onyxData,
3997+
reportInformation,
3998+
transactionParams,
3999+
policyParams,
39944000
createdWorkspaceParams,
3995-
);
4001+
};
4002+
4003+
categorizeTrackedExpense(trackedExpenseParams);
39964004
break;
39974005
}
39984006
case CONST.IOU.ACTION.SHARE: {

0 commit comments

Comments
 (0)