/** * Retrieve points delta for action * * @param int $websiteId * @return int */ public function getPoints($websiteId) { $pointsDelta = 0; if ($this->_quote) { // known issue: no support for multishipping quote // copied comment, not checked if ($this->_quote->getAppliedRuleIds()) { $ruleIds = explode(',', $this->_quote->getAppliedRuleIds()); $ruleIds = array_unique($ruleIds); $data = Mage::getResourceModel('enterprise_reward/reward')->getRewardSalesrule($ruleIds); foreach ($data as $rule) { $pointsDelta += (int) $rule['points_delta']; } } } return $pointsDelta; }
/** * Convert quote model to order model * * @param Mage_Sales_Model_Quote $quote * @return Mage_Sales_Model_Order */ public function toOrder(Mage_Sales_Model_Quote $quote, $order = null) { if (!$order instanceof Mage_Sales_Model_Order) { $order = Mage::getModel('sales/order'); } /* @var $order Mage_Sales_Model_Order */ $order->setStoreId($quote->getStoreId())->setQuoteId($quote->getId())->setRemoteIp($quote->getRemoteIp())->setCustomerId($quote->getCustomerId())->setCustomerEmail($quote->getCustomerEmail())->setCustomerFirstname($quote->getCustomerFirstname())->setCustomerLastname($quote->getCustomerLastname())->setCustomerGroupId($quote->getCustomerGroupId())->setCustomerTaxClassId($quote->getCustomerTaxClassId())->setCustomerNote($quote->getCustomerNote())->setCustomerNoteNotify($quote->getCustomerNoteNotify())->setCustomerIsGuest($quote->getCustomerIsGuest())->setBaseCurrencyCode($quote->getBaseCurrencyCode())->setStoreCurrencyCode($quote->getStoreCurrencyCode())->setOrderCurrencyCode($quote->getQuoteCurrencyCode())->setStoreToBaseRate($quote->getStoreToBaseRate())->setStoreToOrderRate($quote->getStoreToQuoteRate())->setCouponCode($quote->getCouponCode())->setGiftcertCode($quote->getGiftcertCode())->setIsVirtual($quote->getIsVirtual())->setIsMultiPayment($quote->getIsMultiPayment())->setAppliedRuleIds($quote->getAppliedRuleIds()); Mage::dispatchEvent('sales_convert_quote_to_order', array('order' => $order, 'quote' => $quote)); return $order; }
/** * * @param Mage_Sales_Model_Quote $quote */ protected function _getQuoteRewardsRuleIds($quote) { $all_rule_ids = explode(',', $quote->getAppliedRuleIds()); $all_rr_ids = array(); foreach ($all_rule_ids as $rule_id) { $salesrule = $this->getRule($rule_id); if ($salesrule->isPointsRule()) { $all_rr_ids[] = $rule_id; } } return $all_rr_ids; }