/** * Returns the total accumulated catalog discounts on an item * @param Mage_Sales_Model_Quote_Item|Mage_Sales_Model_Order_Item $item * @return int negative discount amount */ protected function _getTotalItemCatalogDiscount($item) { if (!$item->getQuoteId() || !$item->getId()) { return 0; } $row_total_before_disc = $item->getRowTotalBeforeRedemptions(); $row_total = $item->getRowTotal(); if ($item->getRewardsCatalogDiscount()) { $total_discount = $item->getRewardsCatalogDiscount(); } else { if (empty($row_total_before_disc)) { $item->setRowTotal($item->getRowTotalBeforeRedemptions()); $item->setRowTotalInclTax($item->getRowTotalBeforeRedemptionsInclTax()); $total_discount = $this->_getRedeemer()->getTotalCatalogDiscount($item); } else { $total_discount = $item->getRowTotalBeforeRedemptions() - $item->getRowTotal(); } } return $total_discount; }
/** * * @param Mage_Sales_Model_Quote_Item $item */ public function resetItemDiscounts($item) { if (!$item) { return $this; } if ($item->getRowTotalBeforeRedemptions() == 0) { $item->setRowTotalBeforeRedemptions($item->getRowTotal()); $item->setRowTotalBeforeRedemptionsInclTax($item->getRowTotalInclTax()); } elseif ($item->getRowTotalBeforeRedemptions() < $item->getRowTotal()) { $item->setRowTotal($item->getRowTotalBeforeRedemptions()); $item->setRowTotalInclTax($item->getRowTotalBeforeRedemptionsInclTax()); } else { // do nothing } return $this; }
/** * * @param Mage_Sales_Model_Quote_Item $item */ public function resetItemDiscounts($item) { if (!$item) { return $this; } if ($item->getRowTotalBeforeRedemptions() == 0) { $item->setRowTotalBeforeRedemptions($item->getRowTotal()); $item->setRowTotalBeforeRedemptionsInclTax($item->getRowTotalInclTax()); } elseif ($item->getRowTotalBeforeRedemptions() < $item->getRowTotal()) { $item->setRowTotal($item->getRowTotalBeforeRedemptions()); $item->setRowTotalInclTax($item->getRowTotalBeforeRedemptionsInclTax()); } else { // do nothing } if (!Mage::helper('rewards')->isBaseMageVersionAtLeast('1.4')) { // only happens in Magento 1.3 $rowTotalInclTax = $item->getRowTotalBeforeRedemptions() * (1 + $item->getTaxPercent() / 100); $item->setRowTotalBeforeRedemptionsInclTax($rowTotalInclTax); } return $this; }