@@ -79,7 +79,6 @@ import {
7979 getSubmitToAccountID,
8080 hasDependentTags,
8181 hasDynamicExternalWorkflow,
82- isControlPolicy,
8382 isDelayedSubmissionEnabled,
8483 isPaidGroupPolicy,
8584 isPolicyAdmin,
@@ -1776,39 +1775,6 @@ function getReceiptError(
17761775 );
17771776}
17781777
1779- /** Helper function to get optimistic fields violations onyx data */
1780- function getFieldViolationsOnyxData(iouReport: OnyxTypes.Report): OnyxData<typeof ONYXKEYS.COLLECTION.REPORT_VIOLATIONS> {
1781- const missingFields: OnyxTypes.ReportFieldsViolations = {};
1782- const excludedFields = Object.values(CONST.REPORT_VIOLATIONS_EXCLUDED_FIELDS) as string[];
1783-
1784- for (const field of Object.values(iouReport.fieldList ?? {})) {
1785- if (excludedFields.includes(field.fieldID) || !!field.value || !!field.defaultValue) {
1786- continue;
1787- }
1788- // in case of missing field violation the empty object is indicator.
1789- missingFields[field.fieldID] = {};
1790- }
1791-
1792- return {
1793- optimisticData: [
1794- {
1795- onyxMethod: Onyx.METHOD.SET,
1796- key: `${ONYXKEYS.COLLECTION.REPORT_VIOLATIONS}${iouReport.reportID}`,
1797- value: {
1798- fieldRequired: missingFields,
1799- },
1800- },
1801- ],
1802- failureData: [
1803- {
1804- onyxMethod: Onyx.METHOD.SET,
1805- key: `${ONYXKEYS.COLLECTION.REPORT_VIOLATIONS}${iouReport.reportID}`,
1806- value: null,
1807- },
1808- ],
1809- };
1810- }
1811-
18121778type BuildOnyxDataForTestDriveIOUParams = {
18131779 transaction: OnyxTypes.Transaction;
18141780 iouOptimisticParams: MoneyRequestOptimisticParams['iou'];
@@ -2579,7 +2545,6 @@ type BuildOnyxDataForTrackExpenseParams = {
25792545 chat: {report: OnyxInputValue<OnyxTypes.Report>; previewAction: OnyxInputValue<ReportAction>};
25802546 iou: {report: OnyxInputValue<OnyxTypes.Report>; createdAction: OptimisticCreatedReportAction; action: OptimisticIOUReportAction};
25812547 transactionParams: {transaction: OnyxTypes.Transaction; threadReport: OptimisticChatReport | null; threadCreatedReportAction: OptimisticCreatedReportAction | null};
2582- policyParams: {policy?: OnyxInputValue<OnyxTypes.Policy>; tagList?: OnyxInputValue<OnyxTypes.PolicyTagLists>; categories?: OnyxInputValue<OnyxTypes.PolicyCategories>};
25832548 shouldCreateNewMoneyRequestReport: boolean;
25842549 existingTransactionThreadReportID?: string;
25852550 actionableTrackExpenseWhisper?: OnyxInputValue<OnyxTypes.ReportAction>;
@@ -2596,15 +2561,13 @@ type BuildOnyxDataForTrackExpenseKeys =
25962561 | typeof ONYXKEYS.COLLECTION.TRANSACTION
25972562 | typeof ONYXKEYS.NVP_QUICK_ACTION_GLOBAL_CREATE
25982563 | typeof ONYXKEYS.COLLECTION.SNAPSHOT
2599- | typeof ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS
2600- | typeof ONYXKEYS.COLLECTION.REPORT_VIOLATIONS;
2564+ | typeof ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS;
26012565
26022566/** Builds the Onyx data for track expense */
26032567function buildOnyxDataForTrackExpense({
26042568 chat,
26052569 iou,
26062570 transactionParams,
2607- policyParams = {},
26082571 shouldCreateNewMoneyRequestReport,
26092572 existingTransactionThreadReportID,
26102573 actionableTrackExpenseWhisper,
@@ -2616,8 +2579,6 @@ function buildOnyxDataForTrackExpense({
26162579 const {report: chatReport, previewAction: reportPreviewAction} = chat;
26172580 const {report: iouReport, createdAction: iouCreatedAction, action: iouAction} = iou;
26182581 const {transaction, threadReport: transactionThreadReport, threadCreatedReportAction: transactionThreadCreatedReportAction} = transactionParams;
2619- const {policy, tagList: policyTagList, categories: policyCategories} = policyParams;
2620-
26212582 const isScanRequest = isScanRequestTransactionUtils(transaction);
26222583 const isDistanceRequest = isDistanceRequestTransactionUtils(transaction);
26232584 const clearedPendingFields = Object.fromEntries(Object.keys(transaction.pendingFields ?? {}).map((key) => [key, null]));
@@ -2993,38 +2954,6 @@ function buildOnyxDataForTrackExpense({
29932954 onyxData.successData?.push(...searchUpdate.successData);
29942955 }
29952956 }
2996-
2997- // We don't need to compute violations unless we're on a paid policy
2998- if (!policy || !isPaidGroupPolicy(policy) || transaction.reportID === CONST.REPORT.UNREPORTED_REPORT_ID) {
2999- return onyxData;
3000- }
3001-
3002- const violationsOnyxData = ViolationsUtils.getViolationsOnyxData(
3003- transaction,
3004- [],
3005- policy,
3006- policyTagList ?? {},
3007- policyCategories ?? {},
3008- hasDependentTags(policy, policyTagList ?? {}),
3009- false,
3010- );
3011-
3012- if (violationsOnyxData) {
3013- onyxData.optimisticData?.push(violationsOnyxData);
3014- onyxData.failureData?.push({
3015- onyxMethod: Onyx.METHOD.SET,
3016- key: `${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${transaction.transactionID}`,
3017- value: [],
3018- });
3019- }
3020-
3021- // Show field violations only for control policies
3022- if (isControlPolicy(policy) && iouReport) {
3023- const {optimisticData: fieldViolationsOptimisticData, failureData: fieldViolationsFailureData} = getFieldViolationsOnyxData(iouReport);
3024- onyxData.optimisticData?.push(...(fieldViolationsOptimisticData ?? []));
3025- onyxData.failureData?.push(...(fieldViolationsFailureData ?? []));
3026- }
3027-
30282957 return onyxData;
30292958}
30302959
@@ -3717,7 +3646,7 @@ function getTrackExpenseInformation(params: GetTrackExpenseInformationParams): T
37173646 isSelfTourViewed,
37183647 } = params;
37193648 const {payeeAccountID = userAccountID, payeeEmail = currentUserEmail, participant} = participantParams;
3720- const {policy, policyCategories, policyTagList } = policyParams;
3649+ const {policy} = policyParams;
37213650 const {
37223651 comment,
37233652 amount,
@@ -4012,7 +3941,6 @@ function getTrackExpenseInformation(params: GetTrackExpenseInformationParams): T
40123941 threadCreatedReportAction: optimisticCreatedActionForTransactionThread,
40133942 threadReport: optimisticTransactionThread ?? {},
40143943 },
4015- policyParams: {policy, tagList: policyTagList, categories: policyCategories},
40163944 shouldCreateNewMoneyRequestReport,
40173945 actionableTrackExpenseWhisper,
40183946 retryParams,
0 commit comments