• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/discountcoupon.php
  • Класс: BitrixSaleInternalsDiscountCouponTable
  • Вызов: DiscountCouponTable::updateUseCoupons
static function updateUseCoupons()
{
	if (!self::isCheckedCouponsUse() || empty(self::$discountCheckList))
		return;

	MainTypeCollection::normalizeArrayValuesByInt(self::$discountCheckList);
	if (empty(self::$discountCheckList))
		return;

	$withoutCoupons = array_fill_keys(self::$discountCheckList, true);
	$withCoupons = array();
	$couponIterator = DiscountCouponTable::getList(array(
		'select' => array('DISCOUNT_ID', new MainEntityExpressionField('CNT', 'COUNT(*)')),
		'filter' => array('@DISCOUNT_ID' => self::$discountCheckList),
		'group' => array('DISCOUNT_ID')
	));
	while ($coupon = $couponIterator->fetch())
	{
		$coupon['CNT'] = (int)$coupon['CNT'];
		if ($coupon['CNT'] > 0)
		{
			$coupon['DISCOUNT_ID'] = (int)$coupon['DISCOUNT_ID'];
			unset($withoutCoupons[$coupon['DISCOUNT_ID']]);
			$withCoupons[$coupon['DISCOUNT_ID']] = true;
		}
	}
	unset($coupon, $couponIterator);
	if (!empty($withoutCoupons))
	{
		$withoutCoupons = array_keys($withoutCoupons);
		DiscountTable::setUseCoupons($withoutCoupons, 'N');
	}
	if (!empty($withCoupons))
	{
		$withCoupons = array_keys($withCoupons);
		DiscountTable::setUseCoupons($withCoupons, 'Y');
	}
	unset($withCoupons, $withoutCoupons);

	static::clearDiscountCheckList();
}