/**
  * "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);
     }
 }