public function testSetProductUnit() { $item = new QuoteProductRequest(); $this->assertNull($item->getProductUnitCode()); $item->setProductUnit((new ProductUnit())->setCode('kg')); $this->assertEquals('kg', $item->getProductUnitCode()); }
public function testAddQuoteProductRequest() { $quoteProduct = new QuoteProduct(); $quoteProductRequest = new QuoteProductRequest(); $this->assertNull($quoteProductRequest->getQuoteProduct()); $quoteProduct->addQuoteProductRequest($quoteProductRequest); $this->assertEquals($quoteProduct, $quoteProductRequest->getQuoteProduct()); }
/** * @param QuoteProductRequest $item * @return string */ public function formatRequest(QuoteProductRequest $item) { $default = $this->translator->trans('N/A'); if (!$item->getQuantity() && !$item->getPrice()) { return $default; } return $this->translator->trans('orob2b.sale.quoteproductrequest.item', ['{units}' => $this->formatProductUnit($item, $default), '{price}' => $this->formatPrice($item, $default), '{unit}' => $this->formatUnitCode($item)]); }
/** * @param QuoteProductRequest $inputData * @param array $expectedData * * @dataProvider preSetDataProvider */ public function testPreSetData(QuoteProductRequest $inputData = null, array $expectedData = []) { $form = $this->factory->create($this->formType); $unitCode = $inputData ? $inputData->getProductUnitCode() : ''; $this->translator->expects($expectedData['empty_value'] ? $this->once() : $this->never())->method('trans')->with($expectedData['empty_value'], ['{title}' => $unitCode])->will($this->returnValue($expectedData['empty_value'])); $this->formType->preSetData(new FormEvent($form, $inputData)); $this->assertTrue($form->has('productUnit')); $config = $form->get('productUnit')->getConfig(); $this->assertEquals(ProductUnitSelectionType::NAME, $config->getType()->getName()); $options = $form->get('productUnit')->getConfig()->getOptions(); foreach ($expectedData as $key => $value) { $this->assertEquals($value, $options[$key], $key); } }
/** * @param int $productId * @param float $quantity * @param string $unitCode * @param OptionalPrice $price * @return QuoteProductOffer */ protected function getQuoteProductRequest($productId = null, $quantity = null, $unitCode = null, OptionalPrice $price = null) { $quoteProductRequest = new QuoteProductRequest(); $quoteProductRequest->setQuoteProduct($this->getQuoteProduct($productId)); if (null !== $quantity) { $quoteProductRequest->setQuantity($quantity); } if (null !== $unitCode) { $quoteProductRequest->setProductUnit($this->getEntity('OroB2B\\Bundle\\ProductBundle\\Entity\\ProductUnit', $unitCode, 'code')); } if (null !== $price) { $quoteProductRequest->setPrice($price); } return $quoteProductRequest; }
/** * "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); } }