Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
 /**
  * Cancel specific qty of order item
  *
  * @param Mage_Sales_Model_Order_Item $orderItem
  * @param null                        $qtyToCancel
  * @return Mage_Sales_Model_Order_Item
  */
 public function cancelOrderItem(Mage_Sales_Model_Order_Item $orderItem, $qtyToCancel = null)
 {
     if ($orderItem->getStatusId() !== Mage_Sales_Model_Order_Item::STATUS_CANCELED) {
         if (is_null($qtyToCancel)) {
             $qtyToCancel = $orderItem->getQtyToCancel();
         }
         Mage::dispatchEvent('sales_order_item_cancel', array('item' => $orderItem));
         $orderItem->setQtyCanceled($orderItem->getQtyCanceled() + $qtyToCancel);
         $orderItem->setTaxCanceled($orderItem->getTaxCanceled() + $orderItem->getBaseTaxAmount() * $orderItem->getQtyCanceled() / $orderItem->getQtyOrdered());
         $orderItem->setHiddenTaxCanceled($orderItem->getHiddenTaxCanceled() + $orderItem->getHiddenTaxAmount() * $orderItem->getQtyCanceled() / $orderItem->getQtyOrdered());
     }
     return $orderItem;
 }
Beispiel #4
0
 /**
  * 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();
 }