/** * Define query for findDuplicates() * * @param string $code Code * @param \XLite\Module\CDev\Coupons\Model\Coupon $currentCoupon Current coupon OPTIONAL * * @return \XLite\Model\QueryBuilder\AQueryBuilder */ protected function defineFindDuplicatesQuery($code, \XLite\Module\CDev\Coupons\Model\Coupon $currentCoupon = null) { $queryBuilder = $this->createQueryBuilder('c')->andWhere('COLLATE(c.code, utf8_bin) = :code')->setParameter('code', $code); if ($currentCoupon) { $queryBuilder->andWhere('c.id != :cid')->setParameter('cid', $currentCoupon->getId()); } return $queryBuilder; }
/** * @param \XLite\Module\CDev\Coupons\Model\Coupon $coupon Coupon * @param \XLite\Model\Order $cart Cart * * @return string */ protected function checkCompatibility($coupon, $cart) { $error = ''; try { $coupon->checkCompatibility($cart) && $coupon->checkUnique($cart); } catch (\XLite\Module\CDev\Coupons\Core\CompatibilityException $exception) { $error = static::t($exception->getMessage(), $exception->getParams()); } return $error; }
/** * Get amount * * @param \XLite\Model\Order $order Order * * @return float */ public function getAmount(\XLite\Model\Order $order) { return $this->isFreeShipping() ? 0 : parent::getAmount($order); }
/** * Preprocess value for Discount column * * @param mixed $value Value * @param array $column Column data * @param \XLite\Module\CDev\Coupons\Model\Coupon $coupon Entity * * @return string */ protected function preprocessValue($value, array $column, \XLite\Module\CDev\Coupons\Model\Coupon $coupon) { return $coupon->isAbsolute() ? $this->formatPrice($value) : round($value, 2) . '%'; }
/** * setCoupon * * @param \XLite\Module\CDev\Coupons\Model\Coupon $coupon ____param_comment____ * * @return void */ public function setCoupon(\XLite\Module\CDev\Coupons\Model\Coupon $coupon) { $this->coupon = $coupon; $this->setCode($coupon->getCode()); }
/** * Preprocess value for Discount column * * @param mixed $value Value * @param array $column Column data * @param \XLite\Module\CDev\Coupons\Model\Coupon $coupon Entity * * @return string */ protected function preprocessValue($value, array $column, \XLite\Module\CDev\Coupons\Model\Coupon $coupon) { return $coupon->isFreeShipping() ? static::t('Free shipping') : parent::preprocessValue($value, $column, $coupon); }
/** * Check if coupon already present * * @param \XLite\Module\CDev\Coupons\Model\Coupon $coupon * * @return boolean */ public function containsCoupon(\XLite\Module\CDev\Coupons\Model\Coupon $coupon) { return array_reduce($this->getUsedCoupons()->toArray(), function ($carry, $item) use($coupon) { return $carry || $item->getCoupon()->getId() === $coupon->getId(); }, false); }
/** * {@inheritDoc} */ public function prepareEntityBeforeCommit($type) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'prepareEntityBeforeCommit', array($type)); return parent::prepareEntityBeforeCommit($type); }