예제 #1
0
 /**
  * @return static
  */
 public function withCartPriceRules()
 {
     foreach ($this->entity->getCartPriceRules() as $cartPriceRule) {
         $this->entityDTO->cartPriceRules[] = $this->dtoBuilderFactory->getCartPriceRuleDTOBuilder($cartPriceRule)->build();
     }
     return $this;
 }
예제 #2
0
 public function testCreate()
 {
     $coupon = $this->dummyData->getCoupon();
     $cartPriceRule = $this->dummyData->getCartPriceRule();
     $taxRate = $this->dummyData->getTaxRate();
     $cartTotal = new CartTotal();
     $cartTotal->origSubtotal = 1;
     $cartTotal->subtotal = 2;
     $cartTotal->taxSubtotal = 3;
     $cartTotal->discount = 4;
     $cartTotal->shipping = 5;
     $cartTotal->shippingDiscount = 6;
     $cartTotal->tax = 7;
     $cartTotal->total = 8;
     $cartTotal->savings = 9;
     $cartTotal->coupons = [$coupon];
     $cartTotal->addCartPriceRule($cartPriceRule);
     $cartTotal->taxRate = $taxRate;
     $this->assertTrue($cartTotal instanceof CartTotal);
     $this->assertSame(1, $cartTotal->origSubtotal);
     $this->assertSame(2, $cartTotal->subtotal);
     $this->assertSame(3, $cartTotal->taxSubtotal);
     $this->assertSame(4, $cartTotal->discount);
     $this->assertSame(5, $cartTotal->shipping);
     $this->assertSame(6, $cartTotal->shippingDiscount);
     $this->assertSame(7, $cartTotal->tax);
     $this->assertSame(8, $cartTotal->total);
     $this->assertSame(9, $cartTotal->savings);
     $this->assertSame($taxRate, $cartTotal->taxRate);
     $this->assertSame($coupon, $cartTotal->coupons[0]);
     $this->assertSame($cartPriceRule, $cartTotal->getCartPriceRules()[0]);
 }
예제 #3
0
 private function setDiscountNames()
 {
     $discountNames = [];
     foreach ($this->total->getCartPriceRules() as $cartPriceRule) {
         $this->cartPriceRules[] = $cartPriceRule;
         $discountNames[] = $cartPriceRule->getName();
     }
     foreach ($this->getCoupons() as $coupon) {
         $discountNames[] = $coupon->getName();
     }
     $this->discountNames = implode(', ', $discountNames);
 }