![]() 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/InventoryInventorySales/Model/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See LICENSE.txt for license details. */ declare(strict_types=1); namespace Ecombricks\InventoryInventorySales\Model; /** * Check items quantity model */ class CheckItemsQuantity { /** * Is product salable for requested qty * * @var \Ecombricks\InventoryInventorySales\Api\IsProductSalableForRequestedQtyInterface */ protected $isProductSalableForRequestedQty; /** * Constructor * * @param \Ecombricks\InventoryInventorySales\Api\IsProductSalableForRequestedQtyInterface $isProductSalableForRequestedQty * @return void */ public function __construct( \Ecombricks\InventoryInventorySales\Api\IsProductSalableForRequestedQtyInterface $isProductSalableForRequestedQty ) { $this->isProductSalableForRequestedQty = $isProductSalableForRequestedQty; } /** * Execute * * @param array $items * @return void * @throws \Magento\Framework\Exception\LocalizedException */ public function execute(array $items): void { foreach ($items as $sku => $sourceQtys) { foreach ($sourceQtys as $sourceCode => $qty) { $isSalable = $this->isProductSalableForRequestedQty->execute((string) $sku, (string) $sourceCode, (float) $qty); if (false === $isSalable->isSalable()) { $errors = $isSalable->getErrors(); $errorMessage = array_pop($errors); throw new \Magento\Framework\Exception\LocalizedException(__($errorMessage->getMessage())); } } } } }