Example #1
0
 /**
  * Method is invoked before save
  *
  * @param \Magento\Framework\DataObject $object
  * @return \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
  */
 public function beforeSave($object)
 {
     if ($object->getCreditmemo()) {
         $object->setParentId($object->getCreditmemo()->getId());
     }
     return parent::beforeSave($object);
 }
Example #2
0
 /**
  * Getting all available children for Invoice, Shipment or CreditMemo item
  *
  * @param \Magento\Framework\DataObject $item
  * @return array|null
  */
 public function getChildren($item)
 {
     $itemsArray = [];
     $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;
     }
 }