public function testAddQuoteProductRequest() { $quoteProduct = new QuoteProduct(); $quoteProductRequest = new QuoteProductRequest(); $this->assertNull($quoteProductRequest->getQuoteProduct()); $quoteProduct->addQuoteProductRequest($quoteProductRequest); $this->assertEquals($quoteProduct, $quoteProductRequest->getQuoteProduct()); }
/** * @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); } }