/**
  * @param RFPRequest $rfpRequest
  * @return array|RedirectResponse
  */
 protected function update(RFPRequest $rfpRequest)
 {
     /* @var $handler UpdateHandler */
     $handler = $this->get('oro_form.model.update_handler');
     // set default status after edit
     if ($rfpRequest->getId()) {
         $rfpRequest->setStatus($this->getDefaultRequestStatus());
     }
     $securityFacade = $this->getSecurityFacade();
     return $handler->handleUpdate($rfpRequest, $this->createForm(RequestType::NAME, $rfpRequest), function (RFPRequest $rfpRequest) use($securityFacade) {
         if ($securityFacade->isGranted('ACCOUNT_VIEW', $rfpRequest)) {
             $route = $securityFacade->isGranted('ACCOUNT_EDIT', $rfpRequest) ? 'orob2b_rfp_frontend_request_update' : 'orob2b_rfp_frontend_request_view';
             return ['route' => $route, 'parameters' => ['id' => $rfpRequest->getId()]];
         }
         return ['route' => 'orob2b_rfp_frontend_request_create', 'parameters' => []];
     }, function (RFPRequest $rfpRequest) use($securityFacade) {
         if ($securityFacade->isGranted('ACCOUNT_VIEW', $rfpRequest)) {
             return ['route' => 'orob2b_rfp_frontend_request_view', 'parameters' => ['id' => $rfpRequest->getId()]];
         }
         return ['route' => 'orob2b_rfp_frontend_request_create', 'parameters' => []];
     }, $this->get('translator')->trans('orob2b.rfp.controller.request.saved.message'));
 }
 /**
  * @Route("/change_status/{id}", name="orob2b_rfp_request_change_status", requirements={"id"="\d+"})
  * @Template
  * @Acl(
  *      id="orob2b_rfp_request_update",
  *      type="entity",
  *      class="OroB2BRFPBundle:Request",
  *      permission="EDIT"
  * )
  *
  * @param RFPRequest $rfpRequest
  * @param Request $request
  * @throws NotFoundHttpException
  * @return array
  */
 public function changeStatusAction(RFPRequest $rfpRequest, Request $request)
 {
     if (!$request->get('_widgetContainer')) {
         throw $this->createNotFoundException();
     }
     $form = $this->createForm(RequestChangeStatusType::NAME, ['status' => $rfpRequest->getStatus()]);
     $handler = new RequestChangeStatusHandler($form, $request, $this->getDoctrine()->getManagerForClass($this->container->getParameter('orob2b_rfp.entity.request.class')), $this->container->get('templating'));
     $formAction = $this->get('router')->generate('orob2b_rfp_request_change_status', ['id' => $rfpRequest->getId()]);
     return ['entity' => $rfpRequest, 'saved' => $handler->process($rfpRequest), 'form' => $form->createView(), 'formAction' => $formAction];
 }