![]() 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/old/vendor/magento/module-catalog-inventory/Block/Stockqty/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogInventory\Block\Stockqty; use Magento\Catalog\Model\Product; /** * Product stock qty abstract block */ abstract class AbstractStockqty extends \Magento\Framework\View\Element\Template { /** * Threshold qty config path * @deprecated * @see \Magento\CatalogInventory\Model\Configuration::XML_PATH_STOCK_THRESHOLD_QTY */ const XML_PATH_STOCK_THRESHOLD_QTY = 'cataloginventory/options/stock_threshold_qty'; /** * Core registry * * @var \Magento\Framework\Registry */ protected $_coreRegistry; /** * @var \Magento\CatalogInventory\Api\StockStateInterface */ protected $stockState; /** * @var \Magento\CatalogInventory\Api\StockRegistryInterface */ protected $stockRegistry; /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\CatalogInventory\Api\StockStateInterface $stockState * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Framework\Registry $registry, \Magento\CatalogInventory\Api\StockStateInterface $stockState, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, array $data = [] ) { $this->_coreRegistry = $registry; $this->stockState = $stockState; $this->stockRegistry = $stockRegistry; parent::__construct($context, $data); } /** * Retrieve current product object * * @return \Magento\Catalog\Model\Product */ public function getProduct() { return $this->_coreRegistry->registry('current_product'); } /** * Retrieve current product stock qty * * @return float */ public function getStockQty() { if (!$this->hasData('product_stock_qty')) { $qty = 0; $productId = $this->getProduct()->getId(); if ($productId) { $qty = $this->getProductStockQty($this->getProduct()); } $this->setData('product_stock_qty', $qty); } return $this->getData('product_stock_qty'); } /** * Retrieve product stock qty * * @param Product $product * @return float */ public function getProductStockQty($product) { return $this->stockRegistry->getStockStatus($product->getId(), $product->getStore()->getWebsiteId())->getQty(); } /** * Retrieve threshold of qty to display stock qty message * * @return string */ public function getThresholdQty() { if (!$this->hasData('threshold_qty')) { $qty = (float)$this->_scopeConfig->getValue( self::XML_PATH_STOCK_THRESHOLD_QTY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); $this->setData('threshold_qty', $qty); } return $this->getData('threshold_qty'); } /** * Retrieve id of message placeholder in template * * @return string */ public function getPlaceholderId() { return 'stock-qty-' . $this->getProduct()->getId(); } /** * Retrieve visibility of stock qty message * * @return bool */ public function isMsgVisible() { return $this->getStockQty() > 0 && $this->getStockQtyLeft() > 0 && $this->getStockQtyLeft() <= $this->getThresholdQty(); } /** * Retrieve current product qty left in stock * * @return float */ public function getStockQtyLeft() { $stockItem = $this->stockRegistry->getStockItem($this->getProduct()->getId()); $minStockQty = $stockItem->getMinQty(); return $this->getStockQty() - $minStockQty; } }