• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/ProductGrid/StoreDataProvider.php
  • Класс: BitrixCrmMobileProductGridStoreDataProvider
  • Вызов: StoreDataProvider::loadProductToStores
static function loadProductToStores(array $productIds): void
{
	self::$productToStores = [];

	if (empty($productIds))
	{
		return;
	}

	$filter = ['=PRODUCT_ID' => $productIds];
	$accessFilter = AccessController::getCurrent()->getEntityFilter(
		ActionDictionary::ACTION_STORE_VIEW,
		StoreProductTable::class
	);
	if ($accessFilter)
	{
		$filter = [
			$accessFilter,
			$filter,
		];
	}

	$storeProductList = StoreProductTable::getList([
		'filter' => $filter,
		'select' => [
			'AMOUNT',
			'QUANTITY_RESERVED',
			'STORE_ID',
			'PRODUCT_ID',
		],
	]);
	while ($storeProduct = $storeProductList->fetch())
	{
		$productId = $storeProduct['PRODUCT_ID'];

		self::$productToStores[$productId] ??= [];
		self::$productToStores[$productId][$storeProduct['STORE_ID']] = [
			'AMOUNT' => (float)$storeProduct['AMOUNT'],
			'QUANTITY_RESERVED' => (float)$storeProduct['QUANTITY_RESERVED'],
			'STORE_ID' => (int)$storeProduct['STORE_ID'],
		];
	}
}