![]() 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/Model/Stock/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogInventory\Model\Stock; use Magento\CatalogInventory\Api\Data\StockCollectionInterfaceFactory; use Magento\CatalogInventory\Api\Data\StockInterface; use Magento\CatalogInventory\Api\StockRepositoryInterface; use Magento\CatalogInventory\Model\ResourceModel\Stock as StockResource; use Magento\CatalogInventory\Model\StockFactory; use Magento\CatalogInventory\Model\StockRegistryStorage; use Magento\Framework\DB\MapperFactory; use Magento\Framework\DB\QueryBuilderFactory; use Magento\Framework\Exception\CouldNotDeleteException; use Magento\Framework\Exception\CouldNotSaveException; use Magento\Framework\Exception\NoSuchEntityException; /** * Class StockRepository * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class StockRepository implements StockRepositoryInterface { /** * @var StockResource */ protected $resource; /** * @var StockFactory */ protected $stockFactory; /** * @var StockCollectionInterfaceFactory */ protected $stockCollectionFactory; /** * @var QueryBuilderFactory */ protected $queryBuilderFactory; /** * @var MapperFactory */ protected $mapperFactory; /** * @var StockRegistryStorage */ protected $stockRegistryStorage; /** * @param StockResource $resource * @param StockFactory $stockFactory * @param StockCollectionInterfaceFactory $collectionFactory * @param QueryBuilderFactory $queryBuilderFactory * @param MapperFactory $mapperFactory */ public function __construct( StockResource $resource, StockFactory $stockFactory, StockCollectionInterfaceFactory $collectionFactory, QueryBuilderFactory $queryBuilderFactory, MapperFactory $mapperFactory ) { $this->resource = $resource; $this->stockFactory = $stockFactory; $this->stockCollectionFactory = $collectionFactory; $this->queryBuilderFactory = $queryBuilderFactory; $this->mapperFactory = $mapperFactory; } /** * @param StockInterface $stock * @return StockInterface * @throws CouldNotSaveException */ public function save(StockInterface $stock) { try { $this->resource->save($stock); } catch (\Exception $exception) { throw new CouldNotSaveException(__('The stock was unable to be saved. Please try again.'), $exception); } return $stock; } /** * @param int $stockId * @return StockInterface * @throws NoSuchEntityException */ public function get($stockId) { $stock = $this->stockFactory->create(); $this->resource->load($stock, $stockId); if (!$stock->getId()) { throw new NoSuchEntityException( __('The stock with the "%1" ID wasn\'t found. Verify the ID and try again.', $stockId) ); } return $stock; } /** * @param \Magento\CatalogInventory\Api\StockCriteriaInterface $criteria * @return \Magento\CatalogInventory\Api\Data\StockCollectionInterface */ public function getList(\Magento\CatalogInventory\Api\StockCriteriaInterface $criteria) { $queryBuilder = $this->queryBuilderFactory->create(); $queryBuilder->setCriteria($criteria); $queryBuilder->setResource($this->resource); $query = $queryBuilder->create(); $collection = $this->stockCollectionFactory->create(['query' => $query]); return $collection; } /** * @param StockInterface $stock * @return bool|true * @throws CouldNotDeleteException */ public function delete(StockInterface $stock) { try { $this->resource->delete($stock); $this->getStockRegistryStorage()->removeStock(); } catch (\Exception $exception) { throw new CouldNotDeleteException( __('Unable to remove Stock with id "%1"', $stock->getStockId()), $exception ); } return true; } /** * @param int $id * @return bool * @throws CouldNotDeleteException */ public function deleteById($id) { try { $stock = $this->get($id); $this->delete($stock); } catch (\Exception $exception) { throw new CouldNotDeleteException( __('Unable to remove Stock with id "%1"', $id), $exception ); } return true; } /** * @return StockRegistryStorage */ private function getStockRegistryStorage() { if (null === $this->stockRegistryStorage) { $this->stockRegistryStorage = \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\CatalogInventory\Model\StockRegistryStorage::class); } return $this->stockRegistryStorage; } }