/** * Assemble recalculate order event * * @param \XLite\Model\Order $order Order * * @return array */ protected function assembleRecalculateOrderEvent(\XLite\Model\Order $order) { $result = array('subtotal' => $order->getSubtotal(), 'total' => $order->getTotal(), 'modifiers' => array()); foreach ($this->getSurchargeTotals(true) as $surcharge) { $result['modifiers'][$surcharge['code']] = abs($surcharge['cost']); } if ($this->isForbiddenOrderChanges($order)) { $result['forbidden'] = true; } return $result; }
/** * Get discount amount * * @param \XLite\Model\Order $order Order * * @return float */ public function getAmount(\XLite\Model\Order $order) { $discount = $this->isAbsolute() ? $this->getValue() : $order->getSubtotal() * $this->getValue() / 100; return min($discount, $order->getSubtotal()); }
/** * {@inheritDoc} */ public function getSubtotal() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSubtotal', array()); return parent::getSubtotal(); }