/**
  * "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;
 }
Ejemplo n.º 2
0
 /**
  * @param int $productId
  * @param int $quantity
  * @param string $unitCode
  * @param OptionalPrice $price
  * @return RequestProductItem
  */
 protected function getRequestProductItem($productId, $quantity = null, $unitCode = null, OptionalPrice $price = null)
 {
     $requestProductItem = new RequestProductItem();
     $requestProductItem->setRequestProduct($this->getRequestProduct($productId));
     if (null !== $quantity) {
         $requestProductItem->setQuantity($quantity);
     }
     if (null !== $unitCode) {
         $requestProductItem->setProductUnit($this->getEntity('OroB2B\\Bundle\\ProductBundle\\Entity\\ProductUnit', $unitCode, 'code'));
     }
     if (null !== $price) {
         $requestProductItem->setPrice($price);
     }
     return $requestProductItem;
 }