Example #1
0
 /**
  * Get Options of items
  * @param Mage_Sales_Model_Order_Invoice_Item $item
  * @return array:
  */
 public function getItemOptions($item)
 {
     $result = array();
     if ($options = $item->getProductOptions()) {
         if (isset($options['attributes_info'])) {
             $result = array_merge($result, $options['attributes_info']);
         }
         if (isset($options['options'])) {
             $result = array_merge($result, $options['options']);
         }
         if (isset($options['additional_options'])) {
             $result = array_merge($result, $options['additional_options']);
         }
     }
     return $result;
 }
Example #2
0
 public function getOrderItem()
 {
     if ($this->getInvoice()) {
         $item = $this->getInvoice()->getOrder()->getItemById($this->getOrderItemId());
         if (is_object($item)) {
             return $item;
         }
     }
     return parent::getOrderItem();
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
 public function addItem(Mage_Sales_Model_Order_Invoice_Item $item)
 {
     $item->setInvoice($this)->setParentId($this->getId())->setStoreId($this->getStoreId());
     if (!$item->getId()) {
         $this->getItemsCollection()->addItem($item);
     }
     return $this;
 }
Example #6
0
 /**
  * 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);
 }
Example #7
0
 /**
  * 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;
 }
Example #8
0
 /**
  * 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);
 }
Example #9
0
 /**
  * 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;
 }
Example #10
0
 /**
  * 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;
 }