![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-sales/Model/ResourceModel/Order/Item/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Model\ResourceModel\Order\Item; use \Magento\Sales\Model\ResourceModel\Order\Collection\AbstractCollection; /** * Flat sales order payment collection * * @api * @author Magento Core Team <[email protected]> * @since 100.0.2 */ class Collection extends AbstractCollection implements \Magento\Sales\Api\Data\OrderItemSearchResultInterface { /** * Event prefix * * @var string */ protected $_eventPrefix = 'sales_order_item_collection'; /** * Event object * * @var string */ protected $_eventObject = 'order_item_collection'; /** * Order field for setOrderFilter * * @var string */ protected $_orderField = 'order_id'; /** * Model initialization * * @return void */ protected function _construct() { $this->_init(\Magento\Sales\Model\Order\Item::class, \Magento\Sales\Model\ResourceModel\Order\Item::class); } /** * Assign parent items on after collection load * * @return $this */ protected function _afterLoad() { parent::_afterLoad(); /** * Assign parent items */ foreach ($this as $item) { $this->_resource->unserializeFields($item); if ($item->getParentItemId()) { $item->setParentItem($this->getItemById($item->getParentItemId())); } } return $this; } /** * Set random items order * * @return $this */ public function setRandomOrder() { $this->getConnection()->orderRand($this->getSelect()); return $this; } /** * Set filter by item id * * @param mixed $item * @return $this */ public function addIdFilter($item) { if (is_array($item)) { $this->addFieldToFilter('item_id', ['in' => $item]); } elseif ($item instanceof \Magento\Sales\Model\Order\Item) { $this->addFieldToFilter('item_id', $item->getId()); } else { $this->addFieldToFilter('item_id', $item); } return $this; } /** * Filter collection by specified product types * * @param array $typeIds * @return $this */ public function filterByTypes($typeIds) { $this->addFieldToFilter('product_type', ['in' => $typeIds]); return $this; } /** * Filter collection by parent_item_id * * @param int $parentId * @return $this */ public function filterByParent($parentId = null) { if (empty($parentId)) { $this->addFieldToFilter('parent_item_id', ['null' => true]); } else { $this->addFieldToFilter('parent_item_id', $parentId); } return $this; } }