- Модуль: 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();
}