@@ -2850,6 +2850,11 @@ function canEditMoneyRequest(reportAction: OnyxInputOrEntry<ReportAction<typeof
2850
2850
return true ;
2851
2851
}
2852
2852
2853
+ if ( policy ?. type === CONST . POLICY . TYPE . CORPORATE && moneyRequestReport && isCurrentUserSubmitter ( moneyRequestReport . reportID ) ) {
2854
+ const isForwarded = PolicyUtils . getSubmitToAccountID ( policy , moneyRequestReport . ownerAccountID ?? 0 ) !== moneyRequestReport . managerID ;
2855
+ return ! isForwarded ;
2856
+ }
2857
+
2853
2858
return ! isReportApproved ( moneyRequestReport ) && ! isSettled ( moneyRequestReport ?. reportID ) && isRequestor ;
2854
2859
}
2855
2860
@@ -2893,17 +2898,22 @@ function canEditFieldOfMoneyRequest(reportAction: OnyxInputOrEntry<ReportAction>
2893
2898
return false ;
2894
2899
}
2895
2900
2896
- if ( ( fieldToEdit === CONST . EDIT_REQUEST_FIELD . AMOUNT || fieldToEdit === CONST . EDIT_REQUEST_FIELD . CURRENCY ) && TransactionUtils . isDistanceRequest ( transaction ) ) {
2897
- const policy = getPolicy ( moneyRequestReport ?. reportID ?? '-1' ) ;
2898
- const isAdmin = isExpenseReport ( moneyRequestReport ) && policy ?. role === CONST . POLICY . ROLE . ADMIN ;
2899
- const isManager = isExpenseReport ( moneyRequestReport ) && currentUserAccountID === moneyRequestReport ?. managerID ;
2901
+ const policy = getPolicy ( moneyRequestReport ?. reportID ?? '-1' ) ;
2902
+ const isAdmin = isExpenseReport ( moneyRequestReport ) && policy ?. role === CONST . POLICY . ROLE . ADMIN ;
2903
+ const isManager = isExpenseReport ( moneyRequestReport ) && currentUserAccountID === moneyRequestReport ?. managerID ;
2900
2904
2905
+ if ( ( fieldToEdit === CONST . EDIT_REQUEST_FIELD . AMOUNT || fieldToEdit === CONST . EDIT_REQUEST_FIELD . CURRENCY ) && TransactionUtils . isDistanceRequest ( transaction ) ) {
2901
2906
return isAdmin || isManager ;
2902
2907
}
2903
2908
2904
2909
if ( fieldToEdit === CONST . EDIT_REQUEST_FIELD . RECEIPT ) {
2905
2910
const isRequestor = currentUserAccountID === reportAction ?. actorAccountID ;
2906
- return ! isInvoiceReport ( moneyRequestReport ) && ! TransactionUtils . isReceiptBeingScanned ( transaction ) && ! TransactionUtils . isDistanceRequest ( transaction ) && isRequestor ;
2911
+ return (
2912
+ ! isInvoiceReport ( moneyRequestReport ) &&
2913
+ ! TransactionUtils . isReceiptBeingScanned ( transaction ) &&
2914
+ ! TransactionUtils . isDistanceRequest ( transaction ) &&
2915
+ ( isAdmin || isManager || isRequestor )
2916
+ ) ;
2907
2917
}
2908
2918
2909
2919
if ( fieldToEdit === CONST . EDIT_REQUEST_FIELD . DISTANCE_RATE ) {
0 commit comments