/** * Checks if item is configurable * * @param Mage_Sales_Model_Quote_Address_Item|Mage_Sales_Model_Quote_Item|Mage_Sales_Model_Order_Creditmemo_Item|Mage_Sales_Model_Order_Invoice_Item $item * @return bool */ protected function _isConfigurable($item) { if ($item instanceof Mage_Sales_Model_Quote_Item) { return $item->getProductType() === Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE; } if ($item instanceof Mage_Sales_Model_Quote_Address_Item) { return $item->getProduct()->getTypeId() === Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE; } if ($item instanceof Mage_Sales_Model_Order_Invoice_Item || $item instanceof Mage_Sales_Model_Order_Creditmemo_Item) { return $item->getOrderItem()->getProductType() === Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE; } return false; }
public function addItem(Mage_Sales_Model_Order_Creditmemo_Item $item) { $item->setCreditmemo($this)->setParentId($this->getId())->setStoreId($this->getStoreId()); if (!$item->getId()) { $this->getItemsCollection()->addItem($item); } return $this; }
/** * Returns OCL ReturnOrderLineData record * * @param Mage_Sales_Model_Order_Creditmemo_Item $item * @return array */ protected function _createReturnOrderLineData(Mage_Sales_Model_Order_Creditmemo_Item $item) { /** @var $orderItem Mage_Sales_Model_Order_Item */ $orderItem = $item->getOrderItem(); /** @var $product Mage_Catalog_Model_Product */ $product = Mage::getModel('catalog/product')->setStoreId($orderItem->getStoreId())->load($orderItem->getProductId()); $data = array('orderLineId' => null, 'itemId' => (string) $item->getOrderItemId(), 'quantity' => (double) $item->getQty(), 'productSku' => $item->getSku(), 'itemDescription' => (string) ($product->getShortDescription() ? $product->getShortDescription() : $product->getDescription()), 'totalTaxAmount' => $this->_createCurrencyAmount($item->getTaxAmount()), 'dateReturned' => date('c'), 'price' => $this->_createOrderLinePrice($item, (double) $item->getQty(), self::LINE_ITEM_TYPE_REFUNDED), 'shipmentId' => null); return $data; }
/** * Retrieve store id from item * * @param Mage_Sales_Model_Order_Invoice_Item|Mage_Sales_Model_Order_Creditmemo_Item $item * @return int */ protected function _retrieveStoreIdFromItem($item) { $storeId = null; if ($item instanceof Mage_Sales_Model_Order_Invoice_Item) { $storeId = $item->getInvoice()->getStoreId(); } else { $storeId = $item->getCreditmemo()->getStoreId(); } return $storeId; }
/** * Get item code * * @param Mage_Catalog_Model_Product $product * @param Mage_Sales_Model_Order_Invoice_Item|Mage_Sales_Model_Order_Creditmemo_Item $item * @param int|Mage_Core_Model_Store $storeId * @return string */ protected function _getItemCode($product, $item, $storeId) { $itemCode = $this->_getUpcCode($product, $storeId); if (empty($itemCode)) { $itemCode = $item->getSku(); } return substr($itemCode, 0, 50); }
/** * Makes a Line object from a product item object * * @param Mage_Sales_Model_Order_Invoice_Item|Mage_Sales_Model_Order_Creditmemo_Item $item * @param bool $credit * @return null */ protected function _newLine($item, $credit = false) { if ($this->isProductCalculated($item->getOrderItem())) { return false; } if ($item->getQty() == 0) { return false; } $product = $this->_getProductByProductId($item->getProductId()); $taxClass = $this->_getTaxClassByProduct($product); $price = $item->getBaseRowTotal() - $item->getBaseDiscountAmount(); if ($credit) { //@startSkipCommitHooks $price *= -1; //@finishSkipCommitHooks } $line = new Line(); $line->setNo(count($this->_lines)); $line->setItemCode(substr($item->getSku(), 0, 50)); $line->setDescription($item->getName()); $line->setQty($item->getQty()); $line->setAmount($price); $line->setDiscounted($item->getBaseDiscountAmount() ? true : false); if ($taxClass) { $line->setTaxCode($taxClass); } $ref1Value = $this->_getRefValueByProductAndNumber($product, 1); if ($ref1Value) { $line->setRef1($ref1Value); } $ref2Value = $this->_getRefValueByProductAndNumber($product, 2); if ($ref2Value) { $line->setRef2($ref2Value); } $this->_lineToItemId[count($this->_lines)] = $item->getOrderItemId(); $this->_lines[] = $line; }
/** * Get item code * * @param Mage_Catalog_Model_Product $product * @param int|Mage_Core_Model_Store $storeId * @param Mage_Sales_Model_Order_Invoice_Item|Mage_Sales_Model_Order_Creditmemo_Item $item * @return string */ public function getItemCode($product, $storeId, $item = null) { $itemCode = ''; if (null !== $product) { $itemCode = $this->_getUpcCode($product, $storeId); } if (empty($itemCode)) { $itemCode = null !== $item ? $item->getSku() : $product->getSku(); } return substr($itemCode, 0, 50); }
/** * Retrieve simple product id from order item * * @param Mage_Sales_Model_Order_Invoice_Item|Mage_Sales_Model_Order_Creditmemo_Item $item * * @return int */ protected function _retrieveProductIdFromOrderItem($item) { $productId = $item->getProductId(); if ($item->getOrderItem()->getChildrenItems()) { $items = $item->getOrderItem()->getChildrenItems(); $productId = $items[0]->getProductId(); } return $productId; }
/** * Get line product data * * Return a Varien_Object with the following possible methods: getTaxCode, getRef1, getRef2 * * @param Mage_Sales_Model_Order_Invoice_Item|Mage_Sales_Model_Order_Creditmemo_Item $item * @param int $storeId * @return \Varien_Object */ protected function _getLineProductData($item, $storeId) { $lineProductData = new Varien_Object(); $product = $this->_getProductByProductId($item->getProductId()); if (null === $product) { return $lineProductData; } $lineProductData->setTaxCode($this->_getTaxClassCodeByProduct($product)); $lineProductData->setRef1($this->_getRefValueByProductAndNumber($product, 1, $storeId)); $lineProductData->setRef2($this->_getRefValueByProductAndNumber($product, 2, $storeId)); return $lineProductData; }