![]() 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/InventoryCatalog/Block/Product/View/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See LICENSE.txt for license details. */ namespace Ecombricks\InventoryCatalog\Block\Product\View; /** * Product source block */ class Source extends \Magento\Catalog\Block\Product\View { /** * Source management * * @var \Ecombricks\Inventory\Model\SourceManagement */ protected $sourceManagement; /** * Source item management * * @var \Ecombricks\InventoryInventorySales\Model\SourceItemManagement */ protected $sourceItemManagement; /** * Sources * * @var \Magento\InventoryApi\Api\Data\SourceInterface[] */ protected $sources; /** * Constructor * * @param \Magento\Catalog\Block\Product\Context $context * @param \Magento\Framework\Url\EncoderInterface $urlEncoder * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder * @param \Magento\Framework\Stdlib\StringUtils $string * @param \Magento\Catalog\Helper\Product $productHelper * @param \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig * @param \Magento\Framework\Locale\FormatInterface $localeFormat * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency * @param \Ecombricks\Inventory\Model\SourceManagement $sourceManagement * @param \Ecombricks\InventoryInventorySales\Model\SourceItemManagement $sourceItemManagement * @param array $data * @return void */ public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Url\EncoderInterface $urlEncoder, \Magento\Framework\Json\EncoderInterface $jsonEncoder, \Magento\Framework\Stdlib\StringUtils $string, \Magento\Catalog\Helper\Product $productHelper, \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig, \Magento\Framework\Locale\FormatInterface $localeFormat, \Magento\Customer\Model\Session $customerSession, \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency, \Ecombricks\Inventory\Model\SourceManagement $sourceManagement, \Ecombricks\InventoryInventorySales\Model\SourceItemManagement $sourceItemManagement, array $data = [] ) { $this->sourceManagement = $sourceManagement; $this->sourceItemManagement = $sourceItemManagement; parent::__construct( $context, $urlEncoder, $jsonEncoder, $string, $productHelper, $productTypeConfig, $localeFormat, $customerSession, $productRepository, $priceCurrency, $data ); } /** * Get sources * * @return array */ public function getSources() { if ($this->sources !== null) { return $this->sources; } $this->sources = []; $product = $this->getProduct(); foreach ($this->sourceItemManagement->getProductCurrentStockSalableSourceCodes($product) as $sourceCode) { $this->sources[$sourceCode] = $this->sourceManagement->getSource($sourceCode); } return $this->sources; } /** * Get default source code * * @return string */ protected function getDefaultSourceCode() { $sourceCodes = array_keys($this->getSources()); return !empty($sourceCodes) ? current($sourceCodes) : null; } /** * Get current source code * * @return string */ public function getCurrentSourceCode() { $sourceCode = $this->getProduct()->getPreconfiguredValues()->getSource(); return $sourceCode ? $sourceCode : $this->getDefaultSourceCode(); } /** * Get source validators * * @return array */ public function getSourceValidators() { $validators = []; $validators['required-number'] = true; return $validators; } }