/**
  * Get Stock Data
  *
  * @param StockItemInterface $stockItem
  * @return array
  */
 private function getData(StockItemInterface $stockItem)
 {
     $result = $stockItem->getData();
     $result[StockItemInterface::MANAGE_STOCK] = (int) $stockItem->getManageStock();
     $result[StockItemInterface::QTY] = (double) $stockItem->getQty();
     $result[StockItemInterface::MIN_QTY] = (double) $stockItem->getMinQty();
     $result[StockItemInterface::MIN_SALE_QTY] = (double) $stockItem->getMinSaleQty();
     $result[StockItemInterface::MAX_SALE_QTY] = (double) $stockItem->getMaxSaleQty();
     $result[StockItemInterface::IS_QTY_DECIMAL] = (int) $stockItem->getIsQtyDecimal();
     $result[StockItemInterface::IS_DECIMAL_DIVIDED] = (int) $stockItem->getIsDecimalDivided();
     $result[StockItemInterface::BACKORDERS] = (int) $stockItem->getBackorders();
     $result[StockItemInterface::NOTIFY_STOCK_QTY] = (double) $stockItem->getNotifyStockQty();
     $result[StockItemInterface::ENABLE_QTY_INCREMENTS] = (int) $stockItem->getEnableQtyIncrements();
     $result[StockItemInterface::QTY_INCREMENTS] = (double) $stockItem->getQtyIncrements();
     $result[StockItemInterface::IS_IN_STOCK] = (int) $stockItem->getIsInStock();
     return $result;
 }
 /**
  * Check quantity
  *
  * @param StockItemInterface $stockItem
  * @param int|float $qty
  * @exception \Magento\Framework\Exception\LocalizedException
  * @return bool
  */
 public function checkQty(StockItemInterface $stockItem, $qty)
 {
     if (!$this->qtyCheckApplicable) {
         return true;
     }
     if (!$stockItem->getManageStock()) {
         return true;
     }
     if ($stockItem->getQty() - $stockItem->getMinQty() - $qty < 0) {
         switch ($stockItem->getBackorders()) {
             case \Magento\CatalogInventory\Model\Stock::BACKORDERS_YES_NONOTIFY:
             case \Magento\CatalogInventory\Model\Stock::BACKORDERS_YES_NOTIFY:
                 break;
             default:
                 return false;
         }
     }
     return true;
 }