/** * Getting all available children for Invoice, Shipment or CreditMemo item * * @param \Magento\Framework\Object $item * @return array|null */ public function getChilds($item) { $itemsArray = array(); $items = null; if ($item instanceof \Magento\Sales\Model\Order\Invoice\Item) { $items = $item->getInvoice()->getAllItems(); } elseif ($item instanceof \Magento\Sales\Model\Order\Shipment\Item) { $items = $item->getShipment()->getAllItems(); } elseif ($item instanceof \Magento\Sales\Model\Order\Creditmemo\Item) { $items = $item->getCreditmemo()->getAllItems(); } if ($items) { foreach ($items as $value) { $parentItem = $value->getOrderItem()->getParentItem(); if ($parentItem) { $itemsArray[$parentItem->getId()][$value->getOrderItemId()] = $value; } else { $itemsArray[$value->getOrderItem()->getId()][$value->getOrderItemId()] = $value; } } } if (isset($itemsArray[$item->getOrderItem()->getId()])) { return $itemsArray[$item->getOrderItem()->getId()]; } else { return null; } }
/** * Method is invoked after save * * @param \Magento\Framework\Object $object * @return \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend */ public function afterSave($object) { if ($object->getOrderItem()) { $object->getOrderItem()->save(); } return parent::beforeSave($object); }
/** * Return product type for quote/order item * * @param \Magento\Framework\Object $item * @return string */ protected function _getItemType(\Magento\Framework\Object $item) { if ($item->getOrderItem()) { $type = $item->getOrderItem()->getProductType(); } elseif ($item instanceof \Magento\Sales\Model\Quote\Address\Item) { $type = $item->getQuoteItem()->getProductType(); } else { $type = $item->getProductType(); } return $type; }
/** * Retrieve rendered column html content * * @param \Magento\Framework\Object $item * @param string $column the column key * @param string $field the custom item field * @return string */ public function getColumnHtml(\Magento\Framework\Object $item, $column, $field = null) { if ($item->getOrderItem()) { $block = $this->getColumnRenderer($column, $item->getOrderItem()->getProductType()); } else { $block = $this->getColumnRenderer($column, $item->getProductType()); } if ($block) { $block->setItem($item); if (!is_null($field)) { $block->setField($field); } return $block->toHtml(); } return ' '; }
/** * Draw Item process * * @param \Magento\Framework\Object $item * @param \Zend_Pdf_Page $page * @param \Magento\Sales\Model\Order $order * @return \Zend_Pdf_Page */ protected function _drawItem(\Magento\Framework\Object $item, \Zend_Pdf_Page $page, \Magento\Sales\Model\Order $order) { $type = $item->getOrderItem()->getProductType(); $renderer = $this->_getRenderer($type); $renderer->setOrder($order); $renderer->setItem($item); $renderer->setPdf($this); $renderer->setPage($page); $renderer->setRenderedModel($this); $renderer->draw(); return $renderer->getPage(); }
/** * Retrieve Selection attributes * * @param \Magento\Framework\Object $item * @return mixed */ public function getSelectionAttributes($item) { if ($item instanceof \Magento\Sales\Model\Order\Item) { $options = $item->getProductOptions(); } else { $options = $item->getOrderItem()->getProductOptions(); } if (isset($options['bundle_selection_attributes'])) { return unserialize($options['bundle_selection_attributes']); } return null; }