/** * Check if rate is applied by specified zones and membership * * @param array $zones Zone id list * @param \XLite\Model\Membership $membership Membership OPTIONAL * @param \Doctrine\Common\Collections\Collection $productClasses Product classes OPTIONAL * * @return boolean */ public function isApplied(array $zones, \XLite\Model\Membership $membership = null, \Doctrine\Common\Collections\Collection $productClasses = null) { $result = !$this->getZone() || in_array($this->getZone()->getZoneId(), $zones); if ($result && $this->getMembership()) { $result = $membership && $this->getMembership()->getMembershipId() == $membership->getMembershipId(); } if ($result && 2 < func_num_args()) { $result = !$this->getProductClass() || $productClasses && $productClasses->contains($this->getProductClass()); } return $result; }
/** * Check if rate is applied by specified zones and membership * * @param array $zones Zone id list * @param \XLite\Model\Membership $membership Membership OPTIONAL * @param \XLite\Model\TaxClass $taxClass Tax class OPTIONAL * * @return boolean */ public function isApplied(array $zones, \XLite\Model\Membership $membership = null, \XLite\Model\TaxClass $taxClass = null) { $result = $this->getZone() && in_array($this->getZone()->getZoneId(), $zones); if ($result && !\XLite\Core\Config::getInstance()->CDev->SalesTax->ignore_memberships && $this->getMembership()) { $result = $membership && $this->getMembership()->getMembershipId() == $membership->getMembershipId(); } return $result; }
/** * Get next discount suitable for specified subtotal * * @param float $subtotal Subtotal * @param \XLite\Model\Membership $membership Membership object * * @return \XLite\Module\CDev\VolumeDiscounts\Model\VolumeDiscount */ public function getNextDiscount($subtotal, $membership) { $cnd = new \XLite\Core\CommonCell(); $cnd->{self::P_SUBTOTAL_ADV} = $subtotal; $cnd->{self::P_MIN_VALUE} = 0; $cnd->{self::P_MEMBERSHIP} = $membership ? $membership->getMembershipId() : null; $cnd->{self::P_ORDER_BY_SUBTOTAL} = array('v.subtotalRangeBegin', 'ASC'); $cnd->{self::P_ORDER_BY_MEMBERSHIP} = array('membership.membership_id', 'DESC'); $discounts = $this->search($cnd); if ($discounts) { $discounts = array_shift($discounts); } else { $discounts = null; } return $discounts; }
/** * Check membership item id equal * * @param \XLite\Model\Membership $item * @param type $membershipId * * @return boolean */ public function checkMembershipId(\XLite\Model\Membership $item, $membershipId) { return $item->getMembershipId() === $membershipId; }
/** * Format membership model * * @param \XLite\Model\Membership $membership Membership * * @return string */ protected function formatMembershipModel(\XLite\Model\Membership $membership = null) { return $membership ? $membership->getName() : ''; }
/** * Check - specified memerbship is selected or not * * @param \XLite\Model\Membership $current Membership * * @return boolean */ protected function isSelectedMembership(\XLite\Model\Membership $current) { return $this->getParam(self::PARAM_VALUE) && $current->getMembershipId() == $this->getParam(self::PARAM_VALUE)->getMembershipId(); }
/** * {@inheritDoc} */ public function prepareEntityBeforeCommit($type) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'prepareEntityBeforeCommit', array($type)); return parent::prepareEntityBeforeCommit($type); }
/** * Check if rate is applied for specified zones and membership * * @param array $zones Zone id list * @param \XLite\Model\Membership $membership Membership OPTIONAL * * @return boolean */ public function isApplied(array $zones, \XLite\Model\Membership $membership = null) { return (!$this->getZone() || in_array($this->getZone()->getZoneId(), $zones)) && (!$this->getMembership() || $membership && $this->getMembership()->getMembershipId() == $membership->getMembershipId()); }
/** * Get first discount suitable for specified subtotal * @deprecated * * @param float $subtotal Subtotal * @param \XLite\Model\Membership $membership Membership object * * @return \XLite\Module\CDev\VolumeDiscounts\Model\VolumeDiscount */ public function getFirstDiscountBySubtotal($subtotal, $membership) { $cnd = new \XLite\Core\CommonCell(); $cnd->{self::P_SUBTOTAL} = $subtotal; $cnd->{self::P_MEMBERSHIP} = $membership ? $membership->getMembershipId() : null; if ($membership) { $cnd->{self::P_ORDER_BY_MEMBERSHIP} = array('membership.membership_id', 'DESC'); } $cnd->{self::P_ORDER_BY_SUBTOTAL} = array('v.subtotalRangeBegin', 'ASC'); $discounts = $this->search($cnd); return $discounts ? array_shift($discounts) : null; }