/**
  * @return static
  */
 public function withProductQuantityDiscounts()
 {
     $productQuantityDiscounts = $this->entity->getProductQuantityDiscounts();
     if ($productQuantityDiscounts !== null) {
         foreach ($productQuantityDiscounts as $productQuantityDiscount) {
             $this->entityDTO->productQuantityDiscounts[] = $this->dtoBuilderFactory->getProductQuantityDiscountDTOBuilder($productQuantityDiscount)->build();
         }
     }
     return $this;
 }
Example #2
0
 public function testCreateDefaults()
 {
     $price = new Price();
     $this->assertSame(null, $price->origQuantityPrice);
     $this->assertSame(null, $price->unitPrice);
     $this->assertSame(null, $price->origQuantityPrice);
     $this->assertSame(null, $price->quantityPrice);
     $this->assertSame(0, count($price->getCatalogPromotions()));
     $this->assertSame(0, count($price->getProductQuantityDiscounts()));
 }
Example #3
0
 private function setDiscountNames()
 {
     $discountNames = [];
     foreach ($this->price->getCatalogPromotions() as $catalogPromotion) {
         $this->addCatalogPromotion($catalogPromotion);
         $discountNames[] = $catalogPromotion->getName();
     }
     foreach ($this->price->getProductQuantityDiscounts() as $productQuantityDiscount) {
         $this->addProductQuantityDiscount($productQuantityDiscount);
         $discountNames[] = $productQuantityDiscount->getName();
     }
     $this->discountNames = implode(', ', $discountNames);
 }
Example #4
0
 public static function add(Price $a, Price $b)
 {
     $price = clone $a;
     $price->unitPrice += $b->unitPrice;
     $price->origUnitPrice += $b->origUnitPrice;
     $price->quantityPrice += $b->quantityPrice;
     $price->origQuantityPrice += $b->origQuantityPrice;
     foreach ($b->getCatalogPromotions() as $catalogPromotion) {
         $price->addCatalogPromotion($catalogPromotion);
     }
     foreach ($b->getProductQuantityDiscounts() as $productQuantityDiscount) {
         $price->addProductQuantityDiscount($productQuantityDiscount);
     }
     return $price;
 }