/** * {@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')); }