diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 4baf05773878..2c6b05ead1d1 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -2809,6 +2809,11 @@ function canEditMoneyRequest(reportAction: OnyxInputOrEntry return false; } - if ((fieldToEdit === CONST.EDIT_REQUEST_FIELD.AMOUNT || fieldToEdit === CONST.EDIT_REQUEST_FIELD.CURRENCY) && TransactionUtils.isDistanceRequest(transaction)) { - const policy = getPolicy(moneyRequestReport?.reportID ?? '-1'); - const isAdmin = isExpenseReport(moneyRequestReport) && policy?.role === CONST.POLICY.ROLE.ADMIN; - const isManager = isExpenseReport(moneyRequestReport) && currentUserAccountID === moneyRequestReport?.managerID; + const policy = getPolicy(moneyRequestReport?.reportID ?? '-1'); + const isAdmin = isExpenseReport(moneyRequestReport) && policy?.role === CONST.POLICY.ROLE.ADMIN; + const isManager = isExpenseReport(moneyRequestReport) && currentUserAccountID === moneyRequestReport?.managerID; + if ((fieldToEdit === CONST.EDIT_REQUEST_FIELD.AMOUNT || fieldToEdit === CONST.EDIT_REQUEST_FIELD.CURRENCY) && TransactionUtils.isDistanceRequest(transaction)) { return isAdmin || isManager; } if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.RECEIPT) { const isRequestor = currentUserAccountID === reportAction?.actorAccountID; - return !isInvoiceReport(moneyRequestReport) && !TransactionUtils.isReceiptBeingScanned(transaction) && !TransactionUtils.isDistanceRequest(transaction) && isRequestor; + return ( + !isInvoiceReport(moneyRequestReport) && + !TransactionUtils.isReceiptBeingScanned(transaction) && + !TransactionUtils.isDistanceRequest(transaction) && + (isAdmin || isManager || isRequestor) + ); } if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.DISTANCE_RATE) {