Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 
  * @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;
 }
Esempio n. 3
0
 /**
  * 
  * @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;
 }