/** * Calculates and returns the grand total of an item including tax and excluding * discount. * * @param Mage_Sales_Model_Order_Item $item The item to return info from * @return Float The grand total */ function getItemTotal($item) { return $item->getRowTotal() - $item->getDiscountAmount() + $item->getTaxAmount() + $item->getWeeeTaxAppliedRowAmount(); }
/** * Add Weee taxes child to the XML. Api version 23 * * @param Mage_Core_Block_Template $renderer Product renderer * @param Mage_Sales_Model_Order_Item $item * @param Mage_XmlConnect_Model_Simplexml_Element $parentXml * @param array $params Params for Weee taxes: 'include' - Price including tax, 'is_subtotal' - Flag of subtotal * @param string $idPrefix * @param bool $isIncludeTax * @return null */ public function addWeeeTaxesToPriceXmlApi23(Mage_Core_Block_Template $renderer, Mage_Sales_Model_Order_Item $item, Mage_XmlConnect_Model_Simplexml_Element $parentXml, $params = array(), $idPrefix, $isIncludeTax) { $weeTaxes = $renderer->getWeeeTaxes(); if (empty($weeTaxes)) { return; } $typesOfDisplay = $renderer->getTypesOfDisplay(); $row = isset($params['is_subtotal']) && $params['is_subtotal'] ? 'row_' : ''; if ($isIncludeTax) { $weeeXml = $parentXml->addCustomChild('price', null, array('id' => 'weee')); /** @var $weeeXml Mage_XmlConnect_Model_Simplexml_Element */ if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_1]) { foreach ($weeTaxes as $tax) { $taxAmount = Mage::helper('xmlconnect')->formatPriceForXml($tax[$row . 'amount']); $weeeXml->addCustomChild('item', $taxAmount, array('label' => $tax['title'], 'formatted_price' => $this->formatPrice($renderer, $tax[$row . 'amount']))); } } elseif ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_2] || $typesOfDisplay[self::PRICE_DISPLAY_TYPE_4]) { foreach ($weeTaxes as $tax) { $taxAmount = Mage::helper('xmlconnect')->formatPriceForXml($tax[$row . 'amount_incl_tax']); $weeeXml->addCustomChild('item', $taxAmount, array('label' => $tax['title'], 'formatted_price' => $this->formatPrice($renderer, $tax[$row . 'amount_incl_tax']))); } } } if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_2]) { if (!empty($params['include'])) { // including tax if (isset($params['is_subtotal'])) { $total = $params['include'] + $item->getWeeeTaxAppliedRowAmount(); } else { $total = $params['include'] + $renderer->getWeeeTaxAppliedAmount(); } } else { // excluding tax if (isset($params['is_subtotal'])) { $total = $item->getRowTotal() + $item->getWeeeTaxAppliedRowAmount() + $item->getWeeeTaxRowDisposition(); } else { $total = $item->getPrice() + $renderer->getWeeeTaxAppliedAmount() + $renderer->getWeeeTaxDisposition(); } } $totalNodeId = $idPrefix . 'fpt_total_' . ($isIncludeTax ? self::INCLUDING_TAX_ID : self::EXCLUDING_TAX_ID); $parentXml->addCustomChild('price', Mage::helper('xmlconnect')->formatPriceForXml($total), array('id' => $totalNodeId, 'label' => $isIncludeTax ? $renderer->helper('weee')->__('Total incl. tax') : $renderer->helper('weee')->__('Total excl. tax'), 'formatted_price' => $this->formatPrice($renderer, $total))); } }
/** * Add Weee taxes child to the XML * * @param Mage_Core_Block_Template $renderer Product renderer * @param Mage_Sales_Model_Order_Item $item * @param Mage_XmlConnect_Model_Simplexml_Element $parentXml * @param array $params Params for Weee taxes: 'include' - Price including tax, 'is_subtotal' - Flag of subtotal * @return null */ public function addWeeeTaxesToPriceXml(Mage_Core_Block_Template $renderer, Mage_Sales_Model_Order_Item $item, Mage_XmlConnect_Model_Simplexml_Element $parentXml, $params = array()) { $weeTaxes = $renderer->getWeeeTaxes(); if (empty($weeTaxes)) { return; } $typesOfDisplay = $renderer->getTypesOfDisplay(); $row = isset($params['is_subtotal']) && $params['is_subtotal'] ? 'row_' : ''; /** @var $weeeXml Mage_XmlConnect_Model_Simplexml_Element */ if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_1]) { $weeeXml = $parentXml->addChild('weee'); foreach ($weeTaxes as $tax) { $weeeXml->addCustomChild('tax', $this->formatPrice($renderer, $tax[$row . 'amount']), array('label' => $tax['title'])); } } elseif ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_2] || $typesOfDisplay[self::PRICE_DISPLAY_TYPE_4]) { $weeeXml = $parentXml->addChild('weee'); foreach ($weeTaxes as $tax) { $weeeXml->addCustomChild('tax', $this->formatPrice($renderer, $tax[$row . 'amount_incl_tax']), array('label' => $tax['title'])); } } if ($typesOfDisplay[self::PRICE_DISPLAY_TYPE_2]) { if (!is_null($params['include'])) { // including tax if (isset($params['is_subtotal'])) { $total = $params['include'] + $item->getWeeeTaxAppliedRowAmount(); } else { $total = $params['include'] + $renderer->getWeeeTaxAppliedAmount(); } } else { // excluding tax if ($params['is_subtotal']) { $total = $item->getRowTotal() + $item->getWeeeTaxAppliedRowAmount() + $item->getWeeeTaxRowDisposition(); } else { $total = $item->getPrice() + $renderer->getWeeeTaxAppliedAmount() + $renderer->getWeeeTaxDisposition(); } } if (!isset($weeeXml)) { $weeeXml = $parentXml->addChild('weee'); } $weeeXml->addCustomChild('total', $this->formatPrice($renderer, $total), array('label' => $renderer->helper('weee')->__('Total'))); } }
/** * 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; }
/** * fillout the merchandise price group payload for the order item * @param Mage_Sales_Model_Order_Item * @param IPriceGroup * @return self */ protected function prepareMerchandisePricing(Mage_Sales_Model_Order_Item $item, IPriceGroup $merch) { $merch->setAmount($item->getRowTotal())->setUnitPrice($item->getPrice()); $this->discountHelper->transferDiscounts($item, $merch); return $this; }
/** * Calculates and returns the grand total of an item including tax and excluding * discount. * * @param Mage_Sales_Model_Order_Item $item The item to return info from * @return Float The grand total */ protected function getItemTotal($item) { //return $item->getRowTotal() - $item->getDiscountAmount() + $item->getTaxAmount() + $item->getWeeeTaxAppliedRowAmount(); return $item->getRowTotal() + $item->getTaxAmount() + $item->getHiddenTaxAmount() + $item->getWeeeTaxAppliedRowAmount() - $item->getDiscountAmount(); }
/** * 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; }