• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/archive/process/orderarchivecollection.php
  • Класс: BitrixSaleArchiveProcessOrderArchiveCollection
  • Вызов: OrderArchiveCollection::collectDiscountData
private function collectDiscountData(array $orderIds)
{
	$sortedDataDiscount = [];
	$discountList = [];

	$couponList = $this->collectCoupons($orderIds);
	$sortedDiscountRules = $this->collectRules($orderIds);

	$dataIterator = InternalsOrderDiscountDataTable::getList(
		array(
			'select' => array('*'),
			'filter' => array('=ORDER_ID' => $orderIds)
		)
	);

	while ($dataDiscount = $dataIterator->fetch())
	{
		$discountList[$dataDiscount['ORDER_ID']][$dataDiscount['ID']] = $dataDiscount;
	}

	foreach ($orderIds as $orderId)
	{
		$sortedDataDiscount[$orderId] = [
			'ORDER_DATA' => isset($discountList[$orderId]) ? $discountList[$orderId] : [],
			'COUPON_LIST' => isset($couponList[$orderId]) ? $couponList[$orderId] : [],
			'RULES_DATA' => isset($sortedDiscountRules[$orderId]) ? $sortedDiscountRules[$orderId] : []
		];
	}

	return $sortedDataDiscount;
}