![]() 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/Ecombricks/InventorySales/Plugin/Model/ResourceModel/Order/Grid/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See COPYING.txt for license details. */ namespace Ecombricks\InventorySales\Plugin\Model\ResourceModel\Order\Grid; /** * Order grid collection resource plugin */ class Collection extends \Ecombricks\Framework\Plugin\AbstractPlugin { /** * Add source code filter * * @param null|string|array $condition * @return $this */ protected function addSourceCodeFilter($condition) { $subject = $this->getSubject(); $connection = $subject->getConnection(); $subject->getSelect() ->join( ['order_item' => $subject->getTable('sales_order_item')], 'order_item.order_id = main_table.entity_id', [] ) ->join( ['order_item_source' => $subject->getTable('ecombricks_sales_order_item_source')], 'order_item_source.item_id = order_item.item_id', [] ) ->where($connection->prepareSqlCondition('order_item_source.source_code', $condition)); return $this; } /** * Around add field to filter * * @param \Magento\Sales\Model\ResourceModel\Order\Grid\Collection $subject * @param \Closure $proceed * @param string|array $field * @param null|string|array $condition * @return \Magento\Sales\Model\ResourceModel\Order\Grid\Collection */ public function aroundAddFieldToFilter( \Magento\Sales\Model\ResourceModel\Order\Grid\Collection $subject, \Closure $proceed, $field, $condition = null ) { $this->setSubject($subject); if (is_array($field) && in_array('source_codes', $field)) { $this->addSourceCodeFilter($condition['source_codes']); unset($field['source_codes']); unset($condition['source_codes']); } else if (is_string($field) && $field === 'source_codes') { $this->addSourceCodeFilter($condition); return $subject; } return $proceed($field, $condition); } }