public function testPrePersist() { $entity = new OrderLineItem(); $entity->setPrice(Price::create(42, 'USD')); $this->assertEquals(42, $entity->getValue()); $this->assertEquals('USD', $entity->getCurrency()); $entity->getPrice()->setValue(84); $entity->getPrice()->setCurrency('EUR'); $this->assertEmpty($entity->getProductSku()); $this->assertEmpty($entity->getProductUnitCode()); $entity->setProduct((new Product())->setSku('SKU')); $entity->setProductUnit((new ProductUnit())->setCode('kg')); $entity->preSave(); $this->assertEquals(84, $entity->getValue()); $this->assertEquals('EUR', $entity->getCurrency()); $this->assertEquals('SKU', $entity->getProductSku()); $this->assertEquals('kg', $entity->getProductUnitCode()); }
/** * @param OrderLineItem $lineItem * @return bool */ protected function isValidForPriceUpdate(OrderLineItem $lineItem) { return $lineItem->getProduct() && $lineItem->getProductUnit() && $lineItem->getQuantity() && !$lineItem->getPrice() && !$lineItem->isFromExternalSource() && $lineItem->isRequirePriceRecalculation(); }