DiscountCouponTable::onBeforeAdd()
Сигнатура
public static onBeforeAdd(Event $event) : EventResult
Описание
Обработчик onBeforeAdd по умолчанию. Абсолютно необходим.
Параметры
$event
Event
Возвращаемое значение
EventResult
Как применяется в DiscountCouponTable
DiscountCouponTable::onBeforeAdd() — метод класса \Bitrix\Catalog\DiscountCouponTable модуля «Торговый каталог». Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_DiscountCoupon, наборы — как EO_DiscountCoupon_Collection. Метод достаётся DiscountCouponTable от DataManager::onBeforeAdd: поведение общее для всех сущностей, а данные, поля и классы — свои.
Событие OnBeforeAdd сущности DiscountCouponTable. Статический метод в классе — обработчик по умолчанию; чтобы вмешаться в запись из своего кода, подпишитесь на событие через ORM-менеджер событий \Bitrix\Main\ORM\EventManager: он принимает класс сущности и код события из константы.
use Bitrix\Main\Loader;
use Bitrix\Main\ORM\EventManager;
use Bitrix\Main\ORM\Event;
use Bitrix\Main\ORM\EventResult;
use Bitrix\Main\ORM\EntityError;
use Bitrix\Catalog\DiscountCouponTable;
Loader::includeModule('catalog');
EventManager::getInstance()->addEventHandler(
DiscountCouponTable::class,
DiscountCouponTable::EVENT_ON_BEFORE_ADD,
function (Event $event) {
$fields = $event->getParameter('fields');
$result = new EventResult();
// $result->addError(new EntityError('Причина отказа'));
return $result;
}
);Собственные методы DiscountCouponTable
checkCoupon()Проверить купон.checkDiscountId()Проверить id скидки.couponManager()Вернуть методы для менеджера купонов.deleteByDiscount()Удалить все купоны для скидки.getCouponTypes()Возвращает список типов купонов.getData()Вернуть описание купона.isExist()Проверить существующий купон.saveApplied()Сохранить применённые купоны.validateCoupon()Возвращает валидаторы для поля COUPON.validateDiscountId()Возвращает валидаторы для поля DISCOUNT_ID.
onBeforeAdd() есть и у других классов модуля «Торговый каталог»: CatalogIblockTable, CatalogViewedProductTable, DiscountModuleTable, DiscountRestrictionTable, DiscountTable, ExtraTable, GroupAccessTable, GroupLangTable.
Исходный файл: source/catalog/lib/discountcoupon.php:240

