diff --git a/src/CONST.ts b/src/CONST.ts
index b351acc77769..602a2b11ca91 100755
--- a/src/CONST.ts
+++ b/src/CONST.ts
@@ -2181,7 +2181,7 @@ const CONST = {
AUTO_REIMBURSEMENT_MAX_LIMIT_CENTS: 2000000,
AUTO_REIMBURSEMENT_DEFAULT_LIMIT_CENTS: 10000,
AUTO_APPROVE_REPORTS_UNDER_DEFAULT_CENTS: 10000,
- RANDOM_AUDIT_DEFAULT_PERCENTAGE: 5,
+ RANDOM_AUDIT_DEFAULT_PERCENTAGE: 0.05,
AUTO_REPORTING_FREQUENCIES: {
INSTANT: 'instant',
diff --git a/src/libs/API/parameters/SetPolicyAutoReimbursementLimit.ts b/src/libs/API/parameters/SetPolicyAutoReimbursementLimit.ts
index 7c6a721e03b0..b743369db926 100644
--- a/src/libs/API/parameters/SetPolicyAutoReimbursementLimit.ts
+++ b/src/libs/API/parameters/SetPolicyAutoReimbursementLimit.ts
@@ -1,6 +1,6 @@
type SetPolicyAutoReimbursementLimitParams = {
policyID: string;
- autoReimbursement: {limit: number};
+ limit: number;
};
export default SetPolicyAutoReimbursementLimitParams;
diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts
index b8c9014ecdcc..179e9fcb018b 100644
--- a/src/libs/actions/Policy/Policy.ts
+++ b/src/libs/actions/Policy/Policy.ts
@@ -4292,9 +4292,10 @@ function setPolicyAutomaticApprovalLimit(policyID: string, limit: string) {
function setPolicyAutomaticApprovalRate(policyID: string, auditRate: string) {
const policy = getPolicy(policyID);
const fallbackAuditRate = auditRate === '' ? '0' : auditRate;
- const parsedAuditRate = parseInt(fallbackAuditRate, 10);
+ const parsedAuditRate = parseInt(fallbackAuditRate, 10) / 100;
- if (parsedAuditRate === policy?.autoApproval?.auditRate ?? CONST.POLICY.RANDOM_AUDIT_DEFAULT_PERCENTAGE) {
+ // The auditRate arrives as an int to this method so we will convert it to a float before sending it to the API.
+ if (parsedAuditRate === (policy?.autoApproval?.auditRate ?? CONST.POLICY.RANDOM_AUDIT_DEFAULT_PERCENTAGE)) {
return;
}
@@ -4370,17 +4371,8 @@ function enableAutoApprovalOptions(policyID: string, enabled: boolean) {
return;
}
- const autoApprovalCleanupValues = !enabled
- ? {
- pendingFields: {
- limit: null,
- auditRate: null,
- },
- }
- : {};
- const autoApprovalValues = !enabled ? {auditRate: CONST.POLICY.RANDOM_AUDIT_DEFAULT_PERCENTAGE, limit: CONST.POLICY.AUTO_APPROVE_REPORTS_UNDER_DEFAULT_CENTS} : {};
- const autoApprovalFailureValues = !enabled ? {autoApproval: {limit: policy?.autoApproval?.limit, auditRate: policy?.autoApproval?.auditRate, ...autoApprovalCleanupValues}} : {};
-
+ const autoApprovalValues = {auditRate: CONST.POLICY.RANDOM_AUDIT_DEFAULT_PERCENTAGE, limit: CONST.POLICY.AUTO_APPROVE_REPORTS_UNDER_DEFAULT_CENTS};
+ const autoApprovalFailureValues = {autoApproval: {limit: policy?.autoApproval?.limit, auditRate: policy?.autoApproval?.auditRate, pendingFields: null}};
const optimisticData: OnyxUpdate[] = [
{
onyxMethod: Onyx.METHOD.MERGE,
@@ -4406,7 +4398,7 @@ function enableAutoApprovalOptions(policyID: string, enabled: boolean) {
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
value: {
- autoApproval: {...autoApprovalCleanupValues},
+ autoApproval: {pendingFields: null},
pendingFields: {
shouldShowAutoApprovalOptions: null,
},
@@ -4499,7 +4491,7 @@ function setPolicyAutoReimbursementLimit(policyID: string, limit: string) {
];
const parameters: SetPolicyAutoReimbursementLimitParams = {
- autoReimbursement: {limit: parsedLimit},
+ limit: parsedLimit,
policyID,
};
@@ -4512,6 +4504,7 @@ function setPolicyAutoReimbursementLimit(policyID: string, limit: string) {
/**
* Call the API to enable auto-payment for the reports in the given policy
+ *
* @param policyID - id of the policy to apply the limit to
* @param enabled - whether auto-payment for the reports is enabled in the given policy
*/
@@ -4522,16 +4515,8 @@ function enablePolicyAutoReimbursementLimit(policyID: string, enabled: boolean)
return;
}
- const autoReimbursementCleanupValues = !enabled
- ? {
- pendingFields: {
- limit: null,
- },
- }
- : {};
- const autoReimbursementFailureValues = !enabled ? {autoReimbursement: {limit: policy?.autoReimbursement?.limit, ...autoReimbursementCleanupValues}} : {};
- const autoReimbursementValues = !enabled ? {limit: CONST.POLICY.AUTO_REIMBURSEMENT_DEFAULT_LIMIT_CENTS} : {};
-
+ const autoReimbursementFailureValues = {autoReimbursement: {limit: policy?.autoReimbursement?.limit, pendingFields: null}};
+ const autoReimbursementValues = {limit: CONST.POLICY.AUTO_REIMBURSEMENT_DEFAULT_LIMIT_CENTS};
const optimisticData: OnyxUpdate[] = [
{
onyxMethod: Onyx.METHOD.MERGE,
@@ -4556,7 +4541,7 @@ function enablePolicyAutoReimbursementLimit(policyID: string, enabled: boolean)
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
value: {
- autoReimbursement: {...autoReimbursementCleanupValues},
+ autoReimbursement: {pendingFields: null},
pendingFields: {
shouldShowAutoReimbursementLimitOption: null,
},
diff --git a/src/pages/workspace/rules/ExpenseReportRulesSection.tsx b/src/pages/workspace/rules/ExpenseReportRulesSection.tsx
index 87bf62cbf7b3..88b5b71cecfd 100644
--- a/src/pages/workspace/rules/ExpenseReportRulesSection.tsx
+++ b/src/pages/workspace/rules/ExpenseReportRulesSection.tsx
@@ -48,6 +48,7 @@ function ExpenseReportRulesSection({policyID}: ExpenseReportRulesSectionProps) {
);
};
+ const reportTitlePendingFields = policy?.fieldList?.[CONST.POLICY.FIELDS.FIELD_LIST_TITLE]?.pendingFields ?? {};
const optionItems = [
{
title: translate('workspace.rules.expenseReportRules.customReportNamesTitle'),
@@ -62,11 +63,7 @@ function ExpenseReportRulesSection({policyID}: ExpenseReportRulesSectionProps) {
onToggle: (isEnabled: boolean) => PolicyActions.enablePolicyDefaultReportTitle(policyID, isEnabled),
subMenuItems: [
,
Navigation.navigate(ROUTES.RULES_RANDOM_REPORT_AUDIT.getRoute(policyID))}
diff --git a/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx b/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx
index b127063251d3..ad5e24191ce9 100644
--- a/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx
+++ b/src/pages/workspace/rules/RulesRandomReportAuditPage.tsx
@@ -32,8 +32,7 @@ function RulesRandomReportAuditPage({route}: RulesRandomReportAuditPageProps) {
const styles = useThemeStyles();
const workflowApprovalsUnavailable = PolicyUtils.getWorkflowApprovalsUnavailable(policy);
- const defaultValue = policy?.autoApproval?.auditRate ?? CONST.POLICY.RANDOM_AUDIT_DEFAULT_PERCENTAGE;
-
+ const defaultValue = Math.round((policy?.autoApproval?.auditRate ?? CONST.POLICY.RANDOM_AUDIT_DEFAULT_PERCENTAGE) * 100);
return (