/**
  * Get resulting state when given action is performed on the given timesheet
  * 
  * @param Timesheet $timesheet
  * @param int $action Action
  * @param bool $self true if operating on own timesheet
  * @return string
  */
 protected function getResultingState($timesheet, $action, $self)
 {
     $resultingState = $timesheet->getState();
     $excludeRoles = array();
     $includeRoles = array();
     $entities = array('Employee' => $timesheet->getEmployeeId());
     if ($self) {
         $includeRoles[] = 'ESS';
     }
     $userRoleManager = $this->getContext()->getUserRoleManager();
     $allowedActions = $userRoleManager->getAllowedActions(PluginWorkflowStateMachine::FLOW_TIME_TIMESHEET, $timesheet->getState(), $excludeRoles, $includeRoles, $entities);
     if (isset($allowedActions[$action])) {
         $resultingState = $allowedActions[$action]->getResultingState();
     }
     return $resultingState;
 }