1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\InventoryShippingAdminUi\Block\Adminhtml\Shipment;
use Magento\Backend\Block\Template;
use Magento\Backend\Block\Template\Context;
use Magento\Framework\Registry;
use Magento\InventoryApi\Api\SourceRepositoryInterface;
use Magento\Sales\Model\Order\Shipment;
/**
* Display selected source on shipment creation page
*
* @api
*/
class Inventory extends Template
{
/**
* @var Registry
*/
private $registry;
/**
* @var SourceRepositoryInterface
*/
private $sourceRepository;
/**
* Inventory constructor.
* @param Context $context
* @param Registry $registry
* @param SourceRepositoryInterface $sourceRepository
* @param array $data
*/
public function __construct(
Context $context,
Registry $registry,
SourceRepositoryInterface $sourceRepository,
array $data = []
) {
parent::__construct($context, $data);
$this->registry = $registry;
$this->sourceRepository = $sourceRepository;
}
/**
* Retrieve shipment model instance
*
* @return Shipment
*/
public function getShipment()
{
return $this->registry->registry('current_shipment');
}
/**
* Retrieve source code from shipment
*
* @return null|string
*/
public function getSourceCode()
{
$shipment = $this->getShipment();
$extensionAttributes = $shipment->getExtensionAttributes();
if ($sourceCode = $extensionAttributes->getSourceCode()) {
return $sourceCode;
}
return null;
}
/**
* Get source name by code
*
* @param $sourceCode
* @return mixed
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function getSourceName(string $sourceCode): string
{
return $this->sourceRepository->get($sourceCode)->getName();
}
}