/** * Get the final price in base currency for an ordered item including * taxes as discounts. * * @param Mage_Sales_Model_Order_Item $item the item model. * * @return float */ public function getItemFinalPriceInclTax(Mage_Sales_Model_Order_Item $item) { $quantity = (double) $item->getQtyOrdered(); $basePrice = $item->getBaseRowTotal() + $item->getBaseTaxAmount() + $item->getBaseHiddenTaxAmount() - $item->getBaseDiscountAmount(); $orderCurrencyCode = $item->getOrder()->getOrderCurrencyCode(); $baseCurrencyCode = $item->getOrder()->getBaseCurrencyCode(); if ($orderCurrencyCode != $baseCurrencyCode) { $priceInOrderCurrency = Mage::helper('directory')->currencyConvert($basePrice, $baseCurrencyCode, $orderCurrencyCode); } else { $priceInOrderCurrency = $basePrice; } if ($quantity > 1) { $priceInOrderCurrency = round($priceInOrderCurrency / $quantity, 2); } return $priceInOrderCurrency; }
/** * Retrieve * * @param Mage_Sales_Model_Order_Item $item * @return unknown */ public function itemToQuoteItem(Mage_Sales_Model_Order_Item $item) { $quoteItem = Mage::getModel('sales/quote_item')->setStoreId($item->getStoreId())->setQuoteItemId($item->getId())->setProductId($item->getProductId())->setSuperProductId($item->getSuperProductId())->setParentProductId($item->getParentProductId())->setSku($item->getSku())->setName($item->getName())->setDescription($item->getDescription())->setWeight($item->getWeight())->setCustomPrice($item->getPrice())->setDiscountPercent($item->getDiscountPercent())->setDiscountAmount($item->getDiscountAmount())->setTaxPercent($item->getTaxPercent())->setTaxAmount($item->getTaxAmount())->setRowWeight($item->getRowWeight())->setRowTotal($item->getRowTotal())->setAppliedRuleIds($item->getAppliedRuleIds())->setBaseDiscountAmount($item->getBaseDiscountAmount())->setBaseTaxAmount($item->getBaseTaxAmount())->setBaseRowTotal($item->getBaseRowTotal()); return $quoteItem; }
/** * Calculates the Row Total Price the same way the UI does. * @param Mage_Sales_Model_Order_Item $item * @return float */ public function calculateRowTotalPrice($item) { return $item->getBaseRowTotal() + $item->getBaseTaxAmount() + $item->getBaseHiddenTaxAmount() + $item->getBaseWeeeTaxAppliedRowAmount() - $item->getBaseDiscountAmount(); }