/** * 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; }
/** * 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 getId() { if ($this->__isInitialized__ === false) { return (int) parent::getId(); } $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', array()); return parent::getId(); }