Пример #1
0
 public function testCreate()
 {
     $productQuantityDiscount = $this->dummyData->getProductQuantityDiscount();
     $catalogPromotion = $this->dummyData->getCatalogPromotion();
     $this->pricing->setProductQuantityDiscounts([$productQuantityDiscount]);
     $this->pricing->setCatalogPromotions([$catalogPromotion]);
     $this->assertTrue($this->pricing->getPrice(new Product(), 1) instanceof Price);
     $this->assertTrue($this->pricing->getDate() instanceof DateTime);
     $this->assertTrue($this->pricing->getProductQuantityDiscounts()[0] instanceof ProductQuantityDiscount);
     $this->assertTrue($this->pricing->getCatalogPromotions()[0] instanceof CatalogPromotion);
 }
Пример #2
0
 private function calculateProductQuantityDiscounts()
 {
     foreach ($this->pricing->getProductQuantityDiscounts() as $productQuantityDiscount) {
         if ($productQuantityDiscount->isValid($this->pricing->getDate(), $this->quantity)) {
             $this->price->unitPrice = $productQuantityDiscount->getUnitPrice($this->price->unitPrice);
             $this->price->addProductQuantityDiscount($productQuantityDiscount);
             break;
         }
     }
     // No prices below zero!
     $this->price->unitPrice = max(0, $this->price->unitPrice);
 }