/** * "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(); }
/** * Test toString */ public function testToString() { $id = 42; $firstName = 'Grzegorz'; $lastName = 'Brzeczyszczykiewicz'; $request = new Request(); $request->setFirstName($firstName)->setLastName($lastName); $reflectionProperty = new \ReflectionProperty(get_class($request), 'id'); $reflectionProperty->setAccessible(true); $reflectionProperty->setValue($request, $id); $this->assertEquals(sprintf('%s: %s %s', $id, $firstName, $lastName), (string) $request); }
/** * {@inheritdoc} */ public function load(ObjectManager $om) { $deletedRequestStatus = $om->getRepository('OroB2BRFPBundle:RequestStatus')->findOneBy(['name' => LoadRequestStatusData::NAME_DELETED]); if (!$deletedRequestStatus instanceof RequestStatus) { throw new \LogicException('$deletedRequestStatus must be instance of RequestStatus'); } foreach ($this->requests as $rawRequest) { $request = new Request(); $request->setFirstName($rawRequest['first_name'])->setLastName($rawRequest['last_name'])->setEmail($rawRequest['email'])->setPhone($rawRequest['phone'])->setCompany($rawRequest['company'])->setRole($rawRequest['role'])->setBody($rawRequest['body'])->setStatus($deletedRequestStatus); $om->persist($request); } $om->flush(); }
/** * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $status = $manager->getRepository('OroB2BRFPBundle:RequestStatus')->findOneBy([], ['id' => 'ASC']); if (!$status) { return; } foreach ($this->requests as $rawRequest) { $request = new Request(); $request->setFirstName($rawRequest['first_name'])->setLastName($rawRequest['last_name'])->setEmail($rawRequest['email'])->setPhone($rawRequest['phone'])->setCompany($rawRequest['company'])->setRole($rawRequest['role'])->setBody($rawRequest['body'])->setStatus($status); $manager->persist($request); } $manager->flush(); }
/** * @param ShoppingList $inputData * @param Request $expectedData * * @dataProvider processValidDataProvider */ public function testProcessValidShoppingList(ShoppingList $inputData, Request $expectedData) { $this->form->expects(static::once())->method('setData')->with($inputData); $this->request->setMethod('POST'); $this->form->expects(static::once())->method('submit')->with($this->request); $this->form->expects(static::once())->method('isValid')->willReturn(true); $this->manager->expects(static::once())->method('flush'); static::assertNull($this->handler->getRfpRequest()); static::assertTrue($this->handler->process($inputData)); $rfpRequest = $this->handler->getRfpRequest(); if ($rfpRequest) { $rfpRequest->setCreatedAt($expectedData->getCreatedAt())->setUpdatedAt($expectedData->getUpdatedAt()); } static::assertEquals($expectedData, $rfpRequest); }
public function testBuildWithoutUnit() { $sku = 'TEST'; $qty = 3; $data = [ProductDataStorage::ENTITY_ITEMS_DATA_KEY => [[ProductDataStorage::PRODUCT_SKU_KEY => $sku, ProductDataStorage::PRODUCT_QUANTITY_KEY => $qty]]]; $request = new RFPRequest(); $product = $this->getProductEntity($sku); $this->assertMetadataCalled(); $this->assertRequestGetCalled(); $this->assertStorageCalled($data); $this->assertProductRepositoryCalled($product); /** @var \PHPUnit_Framework_MockObject_MockObject|FormBuilderInterface $builder */ $builder = $this->getMock('Symfony\\Component\\Form\\FormBuilderInterface'); $this->extension->buildForm($builder, ['data' => $request]); $this->assertEmpty($request->getRequestProducts()); }
/** * @param ObjectManager $manager */ public function load(ObjectManager $manager) { /** @var RequestStatus $status */ $status = $manager->getRepository('OroB2BRFPBundle:RequestStatus')->findOneBy([], ['id' => 'ASC']); if (!$status) { return; } /** @var Organization $organization */ $organization = $this->getUser($manager)->getOrganization(); foreach ($this->requests as $key => $rawRequest) { $request = new Request(); $request->setFirstName($rawRequest['first_name'])->setLastName($rawRequest['last_name'])->setEmail($rawRequest['email'])->setPhone($rawRequest['phone'])->setCompany($rawRequest['company'])->setRole($rawRequest['role'])->setBody($rawRequest['body'])->setStatus($status)->setOrganization($organization); if (!empty($rawRequest['account'])) { $request->setAccount($this->getReference($rawRequest['account'])); } if (!empty($rawRequest['accountUser'])) { $request->setAccountUser($this->getReference($rawRequest['accountUser'])); } $manager->persist($request); $this->addReference($key, $request); } $manager->flush(); }
/** * "Success" form handler * * @param ShoppingList $entity * @return bool */ protected function onSuccess(ShoppingList $entity) { $rfpRequest = new RFPRequest(); $rfpRequest->setFirstName($this->user->getFirstName())->setLastName($this->user->getLastName())->setEmail($this->user->getEmail())->setPhone('')->setRole('')->setBody('')->setCompany($this->user->getOrganization() ? $this->user->getOrganization()->getName() : '')->setAccountUser($this->user)->setAccount($this->user->getAccount())->setStatus($this->requestStatus); foreach ($entity->getLineItems() as $shoppingListLineItem) { $requestProduct = new RequestProduct(); $requestProduct->setProduct($shoppingListLineItem->getProduct()); $requestProductItem = new RequestProductItem(); $requestProductItem->setQuantity($shoppingListLineItem->getQuantity())->setProductUnit($shoppingListLineItem->getUnit()); $requestProduct->addRequestProductItem($requestProductItem); $rfpRequest->addRequestProduct($requestProduct); } try { $this->manager->persist($rfpRequest); $this->manager->flush(); $this->rfpRequest = $rfpRequest; } catch (DBALException $e) { $this->exception = $e; return false; } return true; }
/** * @param Request $request * @param ObjectManager $manager */ protected function processRequestProducts(Request $request, ObjectManager $manager) { $products = $this->getProducts($manager); $currencies = $this->getCurrencies(); for ($i = 0; $i < rand(1, 10); $i++) { $product = $products[rand(0, count($products) - 1)]; $unitPrecisions = $product->getUnitPrecisions(); if (!count($unitPrecisions)) { continue; } $requestProduct = new RequestProduct(); $requestProduct->setProduct($product); $requestProduct->setComment(sprintf('Notes %s', $i)); for ($j = 0; $j < rand(1, 10); $j++) { $productUnit = $unitPrecisions[rand(0, count($unitPrecisions) - 1)]->getUnit(); $currency = $currencies[rand(0, count($currencies) - 1)]; $requestProductItem = new RequestProductItem(); $requestProductItem->setPrice(Price::create(rand(1, 100), $currency))->setQuantity(rand(1, 100))->setProductUnit($productUnit); $requestProduct->addRequestProductItem($requestProductItem); } $request->addRequestProduct($requestProduct); } }
/** * @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]; }
/** * @param string $firstName * @param string $lastName * @param string $email * @param string $body * @param string $company * @param string $role * @return Request */ protected function getRequest($firstName = null, $lastName = null, $email = null, $body = null, $company = null, $role = null) { $request = new Request(); $request->setFirstName($firstName)->setLastName($lastName)->setEmail($email)->setBody($body)->setCompany($company)->setRole($role); return $request; }