/** * @param string $type * @param string $ruleField * * @return array|string[] */ protected function transformComparators($type, $ruleField) { $comparators = $this->discountFacade->getQueryStringFieldExpressionsForField($type, $ruleField); foreach ($comparators as $key => $comparator) { $comparators[$key] = preg_replace('/\\s/i', '_', $comparator); if (isset($this->queryOperatorMapping[$comparator])) { $comparators[$key] = $this->queryOperatorMapping[$comparator]; } } return $comparators; }
/** * @return void */ public function testDistributeShouldNotDistributeDiscountsForObjectsWithZeroGrossPrices() { $items = $this->getItems([self::ITEM_GROSS_PRICE_ZERO, self::ITEM_GROSS_PRICE_ZERO, self::ITEM_GROSS_PRICE_ZERO]); $discountTransfer = new DiscountTransfer(); $discountTransfer->setAmount(self::DISCOUNT_AMOUNT_100); $collectedDiscountTransfer = new CollectedDiscountTransfer(); $collectedDiscountTransfer->setDiscount($discountTransfer); $collectedDiscountTransfer->setDiscountableItems($items); $this->discountFacade->distributeAmount($collectedDiscountTransfer); $this->assertEquals(0, $items[0]->getOriginalItemCalculatedDiscounts()->count()); $this->assertEquals(0, $items[1]->getOriginalItemCalculatedDiscounts()->count()); $this->assertEquals(0, $items[2]->getOriginalItemCalculatedDiscounts()->count()); }
/** * @param array $codes * * @return bool */ public function releaseUsedVoucherCodes(array $codes) { return $this->discountFacade->releaseUsedVoucherCodes($codes); }
/** * @return void */ public function testWhenMultipleVouchersFromSamePoolUsedShouldUseOnlyOnce() { $discountEntity = $this->createDiscountFixtures('', 'sku = "*"', DiscountConstants::TYPE_VOUCHER); $code1 = 'code1'; $code2 = 'code2'; $code3 = 'code3'; $this->createVoucherCode($code1, $discountEntity); $this->createVoucherCode($code2, $discountEntity); $this->createVoucherCode($code3, $discountEntity); $quoteTransfer = $this->createQuoteTransfer(); $discountTransfer = new DiscountTransfer(); $discountTransfer->setVoucherCode($code1); $quoteTransfer->addVoucherDiscount($discountTransfer); $discountTransfer = new DiscountTransfer(); $discountTransfer->setVoucherCode($code2); $quoteTransfer->addVoucherDiscount($discountTransfer); $discountFacade = new DiscountFacade(); $quoteTransfer = $discountFacade->calculateDiscounts($quoteTransfer); $discountTransfer = $quoteTransfer->getVoucherDiscounts()[0]; $this->assertCount(1, $quoteTransfer->getVoucherDiscounts()); $this->assertEquals($code1, $discountTransfer->getVoucherCode()); }