/**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     $statuses = $manager->getRepository('OroB2BRFPBundle:RequestStatus')->findAll();
     $organization = $manager->getRepository('OroOrganizationBundle:Organization')->getFirst();
     $locator = $this->container->get('file_locator');
     $filePath = $locator->locate('@OroB2BRFPBundle/Migrations/Data/Demo/ORM/data/requests.csv');
     if (is_array($filePath)) {
         $filePath = current($filePath);
     }
     $handler = fopen($filePath, 'r');
     $headers = fgetcsv($handler, 5000, ',');
     while (($data = fgetcsv($handler, 5000, ',')) !== false) {
         $row = array_combine($headers, array_values($data));
         $request = new Request();
         $request->setFirstName($row['first_name']);
         $request->setLastName($row['last_name']);
         $request->setEmail($row['email']);
         $request->setPhone($row['phone']);
         $request->setCompany($row['company']);
         $request->setRole($row['role']);
         $request->setBody($row['body']);
         $status = $statuses[rand(0, count($statuses) - 1)];
         $request->setStatus($status);
         $request->setOrganization($organization);
         $this->processRequestProducts($request, $manager);
         $manager->persist($request);
     }
     fclose($handler);
     $manager->flush();
 }
 /**
  * "Success" form handler
  *
  * @param RFPRequest $rfpRequest
  */
 protected function onSuccess(RFPRequest $rfpRequest)
 {
     $status = $this->form->get('status')->getData();
     $noteMessage = trim($this->form->get('note')->getData());
     $rfpRequest->setStatus($status);
     if (!empty($noteMessage)) {
         $note = new Note();
         $note->setTarget($rfpRequest)->setMessage(htmlspecialchars_decode($this->templating->render('OroB2BRFPBundle:Request:note.html.twig', ['status' => $status->getLabel(), 'note' => $noteMessage])));
         $this->manager->persist($note);
     }
     $this->manager->flush();
 }
 /**
  * @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'));
 }