/** * Performed before data is saved * * @param \Magento\Framework\Object $object * @return $this */ public function beforeSave($object) { if ($object->getShipment()) { $object->setParentId($object->getShipment()->getId()); } return parent::beforeSave($object); }
/** * 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; } }
/** * @param \Magento\Framework\Object $subject * @param bool $result * @return bool */ public function afterCanDisplayCustomValue(\Magento\Framework\Object $subject, $result) { $carrierCode = $subject->getShipment()->getCarrierCode(); if (!$carrierCode) { return (bool) $result || false; } return (bool) $result || (bool) $carrierCode == \Magento\Fedex\Model\Carrier::CODE; }