public function getInvoiceItems($order, $storeId, $useBaseCurrency = false) { $resultItems = array(); $orderItems = $order->getItemsCollection(); foreach ($orderItems as $item) { if ($item->getParentItemId() != null && $item->getParentItem()->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) { continue; } if ($item->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_BUNDLE && $item->getParentItemId() == null) { continue; } $productItem = $this->getProductItem($item, $useBaseCurrency); if ($productItem) { $resultItems[] = $productItem; } $discountItem = $this->getDiscountItem($item, $useBaseCurrency); if ($discountItem) { $resultItems[] = $discountItem; } } $surchargeItem = $this->getFoomanSurchargeItem($order, $useBaseCurrency); if ($surchargeItem) { $resultItems[] = $surchargeItem; } $shippingItem = $this->getOrderShippingItem($order, $useBaseCurrency); if ($shippingItem) { $resultItems[] = $shippingItem; } $resultItems = Customweb_Util_Invoice::ensureUniqueSku($resultItems); $event = new StdClass(); $event->items = array(); if ($order instanceof Mage_Sales_Model_Order) { Mage::dispatchEvent('customweb_collect_order_items', array('order' => $order, 'useBaseCurrency' => $useBaseCurrency, 'result' => $event)); } elseif ($order instanceof Mage_Sales_Model_Quote) { Mage::dispatchEvent('customweb_collect_quote_items', array('quote' => $order, 'useBaseCurrency' => $useBaseCurrency, 'result' => $event)); } foreach ($event->items as $item) { $resultItems[] = new Customweb_Payment_Authorization_DefaultInvoiceItem($item['sku'], $item['name'], $item['taxRate'], $item['amountIncludingTax'], $item['quantity'], $item['type']); } if ($useBaseCurrency) { $orderAmountInDecimals = $order->getBaseGrandTotal(); $currency = Mage::app()->getStore($storeId)->getBaseCurrencyCode(); } else { $orderAmountInDecimals = $order->getGrandTotal(); $currency = Mage::app()->getStore($storeId)->getCurrentCurrencyCode(); } $adjustmentItem = $this->getAdjustmentItem($resultItems, $orderAmountInDecimals, $currency); if ($adjustmentItem) { $resultItems[] = $adjustmentItem; } return $resultItems; }
protected function getInvoiceItems($invoice) { /* @var $invoice Mage_Sales_Model_Order_Invoice */ $resultItems = array(); $items = $invoice->getAllItems(); $invoiceItems = Mage::getModel('saferpaycw/invoiceItems'); foreach ($items as $item) { $orderItem = $item->getOrderItem(); if ($orderItem->getParentItemId() != null && $orderItem->getParentItem()->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) { continue; } if ($orderItem->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_BUNDLE && $orderItem->getParentItemId() == null) { continue; } $productItem = $invoiceItems->getProductItem($item); if ($productItem) { $resultItems[] = $productItem; } $discountItem = $invoiceItems->getDiscountItem($item); if ($discountItem) { $resultItems[] = $discountItem; } } $surchargeItem = $invoiceItems->getFoomanSurchargeItem($invoice->getOrder()); if ($surchargeItem) { $resultItems[] = $surchargeItem; } $shippingItem = $invoiceItems->getShippingItem($invoice); if ($shippingItem) { $resultItems[] = $shippingItem; } $resultItems = Customweb_Util_Invoice::ensureUniqueSku($resultItems); $event = new StdClass(); $event->items = array(); Mage::dispatchEvent('customweb_collect_invoice_items', array('invoice' => $invoice, 'result' => $event)); foreach ($event->items as $item) { $resultItems[] = new Customweb_Payment_Authorization_DefaultInvoiceItem($item['sku'], $item['name'], $item['taxRate'], $item['amountIncludingTax'], $item['quantity'], $item['type']); } $currencyCode = $invoice->getOrder()->getOrderCurrency()->getCode(); $adjustmentItem = $invoiceItems->getAdjustmentItem($resultItems, $invoice->getGrandTotal(), $currencyCode); if ($adjustmentItem) { $resultItems[] = $adjustmentItem; } return $resultItems; }