public function testUpdatePrice() { $item = new RequestProductItem(); $item->setPrice(Price::create(11, 'EUR')); $item->updatePrice(); $this->assertEquals(11, $this->getProperty($item, 'value')); $this->assertEquals('EUR', $this->getProperty($item, 'currency')); }
/** * @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); } }
/** * @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; }