![]() 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/Model/ResourceModel/Order/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Ecombricks\InventorySales\Model\ResourceModel\Order; /** * Get source codes resource */ class GetSourceCodes { /** * Connection provider * * @var \Ecombricks\Framework\Model\ResourceModel\Db\ConnectionProvider */ protected $connectionProvider; /** * Constructor * * @param \Ecombricks\Framework\Model\ResourceModel\Db\ConnectionProvider $connectionProvider * @return void */ public function __construct( \Ecombricks\Framework\Model\ResourceModel\Db\ConnectionProvider $connectionProvider ) { $this->connectionProvider = $connectionProvider; } /** * Execute * * @param array $orderIds * @return array */ public function execute(array $orderIds): array { $sourceCodes = []; if (empty($orderIds)) { return $sourceCodes; } $orderItemTableAlias = 'order_item'; $orderItemSourceTableAlias = 'order_item_source'; $select = $this->connectionProvider->getSelect() ->from( [$orderItemTableAlias => $this->connectionProvider->getTable('sales_order_item')], [] ) ->join( [$orderItemSourceTableAlias => $this->connectionProvider->getTable('ecombricks_sales_order_item_source')], $orderItemSourceTableAlias.'.item_id = '.$orderItemTableAlias.'.item_id', [] ) ->columns([ 'order_id' => $orderItemTableAlias.'.order_id', 'source_code' => $orderItemSourceTableAlias.'.source_code', ]) ->where($orderItemTableAlias.'.order_id IN (?)', $orderIds); $rows = $this->connectionProvider->getConnection()->fetchAll($select); if (empty($rows)) { return $sourceCodes; } foreach ($rows as $row) { $sourceCodes[$row['order_id']][] = $row['source_code']; } return $sourceCodes; } }