Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AssignDefaultSourceToShipments.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
14 
16 {
20  const SHIPMENT_ID = 'shipment_id';
21  const SOURCE_CODE = 'source_code';
22 
26  private $resourceConnection;
27 
31  private $defaultSourceProvider;
32 
37  public function __construct(
38  ResourceConnection $resourceConnection,
39  DefaultSourceProviderInterface $defaultSourceProvider
40  ) {
41  $this->resourceConnection = $resourceConnection;
42  $this->defaultSourceProvider = $defaultSourceProvider;
43  }
44 
50  {
51  $defaultSourceCode = $this->defaultSourceProvider->getCode();
52  $sourceShipmentTable = $setup->getTable('inventory_shipment_source');
53  $salesShipmentTable = $setup->getTable('sales_shipment');
54 
55  $selectForInsert = $this->resourceConnection->getConnection()
56  ->select()
57  ->from(
58  $salesShipmentTable,
59  [
60  'entity_id',
61  'source_code' => new \Zend_Db_Expr('\'' .$defaultSourceCode . '\'')
62  ]
63  );
64 
65  $sql = $this->resourceConnection->getConnection()->insertFromSelect(
66  $selectForInsert,
67  $sourceShipmentTable,
68  [
69  self::SHIPMENT_ID,
70  self::SOURCE_CODE,
71  ],
73  );
74  $this->resourceConnection->getConnection()->query($sql);
75  }
76 }
$setup
Definition: trigger.php:12
__construct(ResourceConnection $resourceConnection, DefaultSourceProviderInterface $defaultSourceProvider)