public function testAddQuoteProductRequest()
 {
     $quoteProduct = new QuoteProduct();
     $quoteProductRequest = new QuoteProductRequest();
     $this->assertNull($quoteProductRequest->getQuoteProduct());
     $quoteProduct->addQuoteProductRequest($quoteProductRequest);
     $this->assertEquals($quoteProduct, $quoteProductRequest->getQuoteProduct());
 }
Esempio n. 2
0
 /**
  * @param int $productId
  * @param int $type
  * @param string $comment
  * @param string $commentCustomer
  * @param QuoteProductRequest[] $requests
  * @param QuoteProductOffer[] $offers
  * @return QuoteProduct
  */
 protected function getQuoteProduct($productId = null, $type = null, $comment = null, $commentCustomer = null, array $requests = [], array $offers = [])
 {
     $product = null;
     if ($productId) {
         $product = $this->getEntity('OroB2B\\Bundle\\ProductBundle\\Entity\\Product', $productId);
         foreach ($this->getProductUnitPrecisions() as $precision) {
             $product->addUnitPrecision($precision);
         }
     }
     $quoteProduct = new QuoteProduct();
     $quoteProduct->setQuote($this->getEntity('OroB2B\\Bundle\\SaleBundle\\Entity\\Quote', $productId))->setProduct($product)->setType($type)->setComment($comment)->setCommentCustomer($commentCustomer);
     foreach ($requests as $request) {
         $quoteProduct->addQuoteProductRequest($request);
     }
     foreach ($offers as $offer) {
         $quoteProduct->addQuoteProductOffer($offer);
     }
     return $quoteProduct;
 }
 /**
  * "Success" form handler
  *
  * @param RFPRequest $entity
  * @return bool
  */
 protected function onSuccess(RFPRequest $entity)
 {
     $quote = new Quote();
     $quote->setRequest($entity)->setOwner($this->user)->setAccount($entity->getAccount())->setAccountUser($entity->getAccountUser())->setOrganization($this->user->getOrganization());
     foreach ($entity->getRequestProducts() as $requestProduct) {
         $quoteProduct = new QuoteProduct();
         $quoteProduct->setProduct($requestProduct->getProduct())->setType(QuoteProduct::TYPE_REQUESTED)->setCommentAccount($requestProduct->getComment());
         foreach ($requestProduct->getRequestProductItems() as $requestProductItem) {
             $quoteProductRequest = new QuoteProductRequest();
             $quoteProductRequest->setQuantity($requestProductItem->getQuantity())->setPrice($requestProductItem->getPrice())->setProductUnit($requestProductItem->getProductUnit())->setRequestProductItem($requestProductItem);
             $quoteProduct->addQuoteProductRequest($quoteProductRequest);
             $quoteProductOffer = new QuoteProductOffer();
             $quoteProductOffer->setQuantity($requestProductItem->getQuantity())->setProductUnit($requestProductItem->getProductUnit())->setPriceType(QuoteProductOffer::PRICE_TYPE_UNIT)->setAllowIncrements(true);
             $quoteProduct->addQuoteProductOffer($quoteProductOffer);
         }
         $quote->addQuoteProduct($quoteProduct);
     }
     try {
         $this->manager->persist($quote);
         $this->manager->flush();
         $this->quote = $quote;
     } catch (DBALException $e) {
         $this->exception = $e;
         return false;
     }
     return true;
 }
 /**
  * @param QuoteProduct $quoteProduct
  * @param RFPRequestProduct $requestProduct
  */
 protected function processRequestProductItems(QuoteProduct $quoteProduct, RFPRequestProduct $requestProduct)
 {
     foreach ($requestProduct->getRequestProductItems() as $requestProductItem) {
         $quoteProductRequest = new QuoteProductRequest();
         $quoteProductRequest->setPrice($requestProductItem->getPrice())->setQuantity($requestProductItem->getQuantity())->setProductUnit($requestProductItem->getProductUnit());
         $quoteProduct->addQuoteProductRequest($quoteProductRequest);
     }
 }