Skip to content

Commit 059368f

Browse files
Merge pull request #54650 from ChavdaSachin/refactor/IOU.shareTrackedExpense
refactor shareTrackedExpense function
2 parents e10c3c9 + e9de5d8 commit 059368f

File tree

2 files changed

+62
-69
lines changed

2 files changed

+62
-69
lines changed

src/libs/API/parameters/ShareTrackedExpenseParams.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ type ShareTrackedExpenseParams = {
2020
taxCode: string;
2121
taxAmount: number;
2222
billable?: boolean;
23+
policyExpenseChatReportID?: string;
24+
policyExpenseCreatedReportActionID?: string;
25+
adminsChatReportID?: string;
26+
adminsCreatedReportActionID?: string;
2327
};
2428

2529
export default ShareTrackedExpenseParams;

src/libs/actions/IOU.ts

Lines changed: 58 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import type {
2222
SendInvoiceParams,
2323
SendMoneyParams,
2424
SetNameValuePairParams,
25+
ShareTrackedExpenseParams,
2526
SplitBillParams,
2627
StartSplitBillParams,
2728
SubmitReportParams,
@@ -208,7 +209,7 @@ type TrackExpenseInformation = {
208209
actionableWhisperReportActionIDParam?: string;
209210
onyxData: OnyxData;
210211
};
211-
type CategorizeTrackedExpenseTransactionParams = {
212+
type TrackedExpenseTransactionParams = {
212213
transactionID: string;
213214
amount: number;
214215
currency: string;
@@ -222,11 +223,11 @@ type CategorizeTrackedExpenseTransactionParams = {
222223
billable?: boolean;
223224
receipt?: Receipt;
224225
};
225-
type CategorizeTrackedExpensePolicyParams = {
226+
type TrackedExpensePolicyParams = {
226227
policyID: string;
227-
isDraftPolicy: boolean;
228+
isDraftPolicy?: boolean;
228229
};
229-
type CategorizeTrackedExpenseReportInformation = {
230+
type TrackedExpenseReportInformation = {
230231
moneyRequestPreviewReportActionID: string;
231232
moneyRequestReportID: string;
232233
moneyRequestCreatedReportActionID: string;
@@ -236,13 +237,14 @@ type CategorizeTrackedExpenseReportInformation = {
236237
transactionThreadReportID: string;
237238
reportPreviewReportActionID: string;
238239
};
239-
type CategorizeTrackedExpenseParams = {
240-
onyxData: OnyxData | undefined;
241-
reportInformation: CategorizeTrackedExpenseReportInformation;
242-
transactionParams: CategorizeTrackedExpenseTransactionParams;
243-
policyParams: CategorizeTrackedExpensePolicyParams;
240+
type TrackedExpenseParams = {
241+
onyxData?: OnyxData;
242+
reportInformation: TrackedExpenseReportInformation;
243+
transactionParams: TrackedExpenseTransactionParams;
244+
policyParams: TrackedExpensePolicyParams;
244245
createdWorkspaceParams?: CreateWorkspaceParams;
245246
};
247+
246248
type SendInvoiceInformation = {
247249
senderWorkspaceID: string;
248250
receiver: Partial<OnyxTypes.PersonalDetails>;
@@ -4118,7 +4120,7 @@ function convertTrackedExpenseToRequest(
41184120
API.write(WRITE_COMMANDS.CONVERT_TRACKED_EXPENSE_TO_REQUEST, parameters, {optimisticData, successData, failureData});
41194121
}
41204122

4121-
function categorizeTrackedExpense(trackedExpenseParams: CategorizeTrackedExpenseParams) {
4123+
function categorizeTrackedExpense(trackedExpenseParams: TrackedExpenseParams) {
41224124
const {onyxData, reportInformation, transactionParams, policyParams, createdWorkspaceParams} = trackedExpenseParams;
41234125
const {optimisticData, successData, failureData} = onyxData ?? {};
41244126
const {transactionID} = transactionParams;
@@ -4163,32 +4165,20 @@ function categorizeTrackedExpense(trackedExpenseParams: CategorizeTrackedExpense
41634165
}
41644166
}
41654167

4166-
function shareTrackedExpense(
4167-
policyID: string,
4168-
transactionID: string,
4169-
moneyRequestPreviewReportActionID: string,
4170-
moneyRequestReportID: string,
4171-
moneyRequestCreatedReportActionID: string,
4172-
actionableWhisperReportActionID: string,
4173-
linkedTrackedExpenseReportAction: OnyxTypes.ReportAction,
4174-
linkedTrackedExpenseReportID: string,
4175-
transactionThreadReportID: string,
4176-
reportPreviewReportActionID: string,
4177-
onyxData: OnyxData | undefined,
4178-
amount: number,
4179-
currency: string,
4180-
comment: string,
4181-
merchant: string,
4182-
created: string,
4183-
category?: string,
4184-
tag?: string,
4185-
taxCode = '',
4186-
taxAmount = 0,
4187-
billable?: boolean,
4188-
receipt?: Receipt,
4189-
createdWorkspaceParams?: CreateWorkspaceParams,
4190-
) {
4168+
function shareTrackedExpense(trackedExpenseParams: TrackedExpenseParams) {
4169+
const {onyxData, reportInformation, transactionParams, policyParams, createdWorkspaceParams} = trackedExpenseParams;
41914170
const {optimisticData, successData, failureData} = onyxData ?? {};
4171+
const {transactionID} = transactionParams;
4172+
const {
4173+
actionableWhisperReportActionID,
4174+
moneyRequestPreviewReportActionID,
4175+
moneyRequestCreatedReportActionID,
4176+
reportPreviewReportActionID,
4177+
moneyRequestReportID,
4178+
linkedTrackedExpenseReportAction,
4179+
linkedTrackedExpenseReportID,
4180+
transactionThreadReportID,
4181+
} = reportInformation;
41924182

41934183
const {
41944184
optimisticData: moveTransactionOptimisticData,
@@ -4209,26 +4199,15 @@ function shareTrackedExpense(
42094199
successData?.push(...moveTransactionSuccessData);
42104200
failureData?.push(...moveTransactionFailureData);
42114201

4212-
const parameters = {
4213-
policyID,
4214-
transactionID,
4202+
const parameters: ShareTrackedExpenseParams = {
4203+
...transactionParams,
4204+
policyID: policyParams?.policyID,
42154205
moneyRequestPreviewReportActionID,
42164206
moneyRequestReportID,
42174207
moneyRequestCreatedReportActionID,
42184208
actionableWhisperReportActionID,
42194209
modifiedExpenseReportActionID,
42204210
reportPreviewReportActionID,
4221-
amount,
4222-
currency,
4223-
comment,
4224-
merchant,
4225-
created,
4226-
category,
4227-
tag,
4228-
taxCode,
4229-
taxAmount,
4230-
billable,
4231-
receipt: receipt instanceof Blob ? receipt : undefined,
42324211
policyExpenseChatReportID: createdWorkspaceParams?.expenseChatReportID,
42334212
policyExpenseCreatedReportActionID: createdWorkspaceParams?.expenseCreatedReportActionID,
42344213
adminsChatReportID: createdWorkspaceParams?.adminsChatReportID,
@@ -4595,7 +4574,7 @@ function trackExpense(
45954574
if (!linkedTrackedExpenseReportAction || !actionableWhisperReportActionID || !linkedTrackedExpenseReportID) {
45964575
return;
45974576
}
4598-
const transactionParams: CategorizeTrackedExpenseTransactionParams = {
4577+
const transactionParams: TrackedExpenseTransactionParams = {
45994578
transactionID: transaction?.transactionID ?? '-1',
46004579
amount,
46014580
currency,
@@ -4609,11 +4588,11 @@ function trackExpense(
46094588
billable,
46104589
receipt: trackedReceipt instanceof Blob ? trackedReceipt : undefined,
46114590
};
4612-
const policyParams: CategorizeTrackedExpensePolicyParams = {
4591+
const policyParams: TrackedExpensePolicyParams = {
46134592
policyID: chatReport?.policyID ?? '-1',
46144593
isDraftPolicy,
46154594
};
4616-
const reportInformation: CategorizeTrackedExpenseReportInformation = {
4595+
const reportInformation: TrackedExpenseReportInformation = {
46174596
moneyRequestPreviewReportActionID: iouAction?.reportActionID ?? '-1',
46184597
moneyRequestReportID: iouReport?.reportID ?? '-1',
46194598
moneyRequestCreatedReportActionID: createdIOUReportActionID ?? '-1',
@@ -4623,7 +4602,7 @@ function trackExpense(
46234602
transactionThreadReportID: transactionThreadReportID ?? '-1',
46244603
reportPreviewReportActionID: reportPreviewAction?.reportActionID ?? '-1',
46254604
};
4626-
const trackedExpenseParams: CategorizeTrackedExpenseParams = {
4605+
const trackedExpenseParams: TrackedExpenseParams = {
46274606
onyxData,
46284607
reportInformation,
46294608
transactionParams,
@@ -4638,31 +4617,41 @@ function trackExpense(
46384617
if (!linkedTrackedExpenseReportAction || !actionableWhisperReportActionID || !linkedTrackedExpenseReportID) {
46394618
return;
46404619
}
4641-
shareTrackedExpense(
4642-
chatReport?.policyID ?? '-1',
4643-
transaction?.transactionID ?? '-1',
4644-
iouAction?.reportActionID ?? '-1',
4645-
iouReport?.reportID ?? '-1',
4646-
createdIOUReportActionID ?? '-1',
4647-
actionableWhisperReportActionID,
4648-
linkedTrackedExpenseReportAction,
4649-
linkedTrackedExpenseReportID,
4650-
transactionThreadReportID ?? '-1',
4651-
reportPreviewAction?.reportActionID ?? '-1',
4652-
onyxData,
4620+
const transactionParams = {
4621+
transactionID: transaction?.transactionID ?? '-1',
46534622
amount,
46544623
currency,
46554624
comment,
46564625
merchant,
46574626
created,
4627+
taxCode: taxCode ?? '',
4628+
taxAmount: taxAmount ?? 0,
46584629
category,
46594630
tag,
4660-
taxCode,
4661-
taxAmount,
46624631
billable,
4663-
trackedReceipt,
4632+
receipt: trackedReceipt instanceof Blob ? trackedReceipt : undefined,
4633+
};
4634+
const policyParams = {
4635+
policyID: chatReport?.policyID ?? '-1',
4636+
};
4637+
const reportInformation = {
4638+
moneyRequestPreviewReportActionID: iouAction?.reportActionID ?? '-1',
4639+
moneyRequestReportID: iouReport?.reportID ?? '-1',
4640+
moneyRequestCreatedReportActionID: createdIOUReportActionID ?? '-1',
4641+
actionableWhisperReportActionID,
4642+
linkedTrackedExpenseReportAction,
4643+
linkedTrackedExpenseReportID,
4644+
transactionThreadReportID: transactionThreadReportID ?? '-1',
4645+
reportPreviewReportActionID: reportPreviewAction?.reportActionID ?? '-1',
4646+
};
4647+
const trackedExpenseParams = {
4648+
onyxData,
4649+
reportInformation,
4650+
transactionParams,
4651+
policyParams,
46644652
createdWorkspaceParams,
4665-
);
4653+
};
4654+
shareTrackedExpense(trackedExpenseParams);
46664655
break;
46674656
}
46684657
default: {

0 commit comments

Comments
 (0)