/** * * Enter description here ... * @param TBT_Rewards_Model_Salesrule_Rule $rule * @param Mage_Sales_Model_Quote $quote * @param Mage_Sales_Model_Quote_Address_Item $item */ public function isValidRedemption(TBT_Rewards_Model_Salesrule_Rule $rule, $quote, $item) { $rule_id = $rule->getId(); //@nelkaake -a 11/03/11: Firstly, only deal with points rules. if (!$rule->isPointsRule()) { return false; } if (!$rule->isRedemptionRule()) { return false; } if (!$rule->getActions()->validate($item)) { return false; } return true; }
/** * Safe method of checking if a rule is a points rule. * @param TBT_Rewards_Model_Salesrule_Rule|TBT_Rewards_Model_Catalogrule_Rule|Mage_CatalogRule_Model_Rule|Mage_SalesRule_Model_Rule $rule */ public function isPointsRule($rule) { if ($rule instanceof TBT_Rewards_Model_Salesrule_Rule || $rule instanceof TBT_Rewards_Model_Catalogrule_Rule) { return $rule->isPointsRule(); } if ($rule instanceof Mage_CatalogRule_Model_Rule) { $rule = Mage::helper('rewards/rule')->getCatalogrule($rule->getId()); return $rule->isPointsRule(); } if ($rule instanceof Mage_SalesRule_Model_Rule) { $rule = Mage::helper('rewards/rule')->getSalesRule($rule->getId()); return $rule->isPointsRule(); } Mage::logException(new Exception("Reached Helper_Rule::isPointsRule() with parameter that is not a catalog rule or cart or catalog rule.")); }