public function testGetUnitPrecisionByUnitCode() { $unit = new ProductUnit(); $unit->setCode('kg')->setDefaultPrecision(3); $unitPrecision = new ProductUnitPrecision(); $unitPrecision->setUnit($unit)->setPrecision($unit->getDefaultPrecision()); $product = new Product(); $product->addUnitPrecision($unitPrecision); $this->assertNull($product->getUnitPrecision('item')); $this->assertEquals($unitPrecision, $product->getUnitPrecision('kg')); }
/** * @param Product $product * @param string $unitCode * @param float|int $quantity * * @return float|int Rounded quantity */ public function roundProductQuantity(Product $product, $unitCode, $quantity) { $unitPrecision = $product->getUnitPrecision($unitCode); if ($unitPrecision) { $quantity = $this->roundingService->round($quantity, $unitPrecision->getPrecision()); } return $quantity; }