@@ -90,6 +90,7 @@ import type {
9090 PersonalDetailsList ,
9191 Policy ,
9292 PolicyCategory ,
93+ PolicyEmployee ,
9394 ReimbursementAccount ,
9495 Report ,
9596 ReportAction ,
@@ -582,6 +583,17 @@ function setWorkspaceAutoReportingMonthlyOffset(policyID: string, autoReportingO
582583
583584function setWorkspaceApprovalMode ( policyID : string , approver : string , approvalMode : ValueOf < typeof CONST . POLICY . APPROVAL_MODE > ) {
584585 const policy = getPolicy ( policyID ) ;
586+ const updatedEmployeeList : Record < string , PolicyEmployee > = { } ;
587+
588+ if ( approvalMode === CONST . POLICY . APPROVAL_MODE . OPTIONAL ) {
589+ Object . keys ( policy ?. employeeList ?? { } ) . forEach ( ( employee ) => {
590+ updatedEmployeeList ! [ employee ] = {
591+ ...policy ?. employeeList ?. [ employee ] ,
592+ submitsTo : approver ,
593+ forwardsTo : '' ,
594+ } ;
595+ } ) ;
596+ }
585597
586598 const value = {
587599 approver,
@@ -595,6 +607,7 @@ function setWorkspaceApprovalMode(policyID: string, approver: string, approvalMo
595607 value : {
596608 ...value ,
597609 pendingFields : { approvalMode : CONST . RED_BRICK_ROAD_PENDING_ACTION . UPDATE } ,
610+ employeeList : approvalMode === CONST . POLICY . APPROVAL_MODE . OPTIONAL ? updatedEmployeeList : policy ?. employeeList ,
598611 } ,
599612 } ,
600613 ] ;
@@ -608,6 +621,7 @@ function setWorkspaceApprovalMode(policyID: string, approver: string, approvalMo
608621 approvalMode : policy ?. approvalMode ,
609622 pendingFields : { approvalMode : null } ,
610623 errorFields : { approvalMode : ErrorUtils . getMicroSecondOnyxErrorWithTranslationKey ( 'workflowsApproverPage.genericErrorMessage' ) } ,
624+ employeeList : policy ?. employeeList ,
611625 } ,
612626 } ,
613627 ] ;
0 commit comments