Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * Get amount
  *
  * @param \XLite\Model\Order $order Order
  *
  * @return float
  */
 public function getAmount(\XLite\Model\Order $order)
 {
     return $this->isFreeShipping() ? 0 : parent::getAmount($order);
 }
Ejemplo n.º 4
0
 /**
  * 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) . '%';
 }
Ejemplo n.º 5
0
 /**
  * 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());
 }
Ejemplo n.º 6
0
 /**
  * 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);
 }
Ejemplo n.º 7
0
 /**
  * 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);
 }