/** * Sets all variations of price on final totals for use with standard items. Not the parent bundle/configurable. * * @param Mage_Sales_Model_Quote_Item $item * @param Webshopapps_Wsacommon_Model_Totals $finalTotals */ protected function setStandardPrices($item, &$finalTotals) { $finalTotals->setBasePrice($finalTotals->getBasePrice() + $item->getBaseRowTotal()); $finalTotals->setPrice($finalTotals->getPrice() + $item->getRowTotal()); $finalTotals->setPriceInclTax($finalTotals->getPriceInclTax() + $item->getRowTotalInclTax()); $finalTotals->setBasePriceInclTax($finalTotals->getBasePriceInclTax() + $item->getBaseRowTotalInclTax()); $finalTotals->setDiscountedPrice($finalTotals->getDiscountedPrice() + ($item->getRowTotal() - $item->getDiscountAmount())); $finalTotals->setBaseDiscountedPrice($finalTotals->getBaseDiscountedPrice() + ($item->getBaseRowTotal() - $item->getBaseDiscountAmount())); $finalTotals->setDiscountedPriceInclTax($finalTotals->getDiscountedPriceInclTax() + ($item->getRowTotalInclTax() - $item->getDiscountAmount())); $finalTotals->setBaseDiscountedPriceInclTax($finalTotals->getBaseDiscountedPriceInclTax() + ($item->getBaseRowTotalInclTax() - $item->getBaseDiscountAmount())); }
/** * Add row total item amount to subtotal * * @param Mage_Sales_Model_Quote_Address $address * @param Mage_Sales_Model_Quote_Item $item * @return $this */ protected function _addSubtotalAmount(Mage_Sales_Model_Quote_Address $address, $item) { if ($this->_getTaxDataHelper()->priceIncludesTax($item->getStoreId())) { $subTotal = $item->getRowTotalInclTax() - $item->getRowTax(); $baseSubTotal = $item->getBaseRowTotalInclTax() - $item->getBaseRowTax(); $address->setTotalAmount('subtotal', $address->getTotalAmount('subtotal') + $subTotal); $address->setBaseTotalAmount('subtotal', $address->getBaseTotalAmount('subtotal') + $baseSubTotal); } else { $address->setTotalAmount('subtotal', $address->getTotalAmount('subtotal') + $item->getRowTotal()); $address->setBaseTotalAmount('subtotal', $address->getBaseTotalAmount('subtotal') + $item->getBaseRowTotal()); } $address->setSubtotalInclTax($address->getSubtotalInclTax() + $item->getRowTotalInclTax()); $address->setBaseSubtotalInclTax($address->getBaseSubtotalInclTax() + $item->getBaseRowTotalInclTax()); 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 } 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; }