DiscountCouponTable::checkFields()
Сигнатура
public static checkFields(Result $result, mixed $primary, array<string|int, mixed> $data) : mixed
Описание
Проверяет поля данных перед сохранением в БД. Результат хранится в объекте $result
Параметры
$result
Result
$primary
mixed
$data
array<string|int, mixed>
Возвращаемое значение
mixed
Как применяется в DiscountCouponTable
DiscountCouponTable::checkFields() — метод класса \Bitrix\Sale\Internals\DiscountCouponTable модуля «Интернет-магазин». Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_DiscountCoupon, наборы — как EO_DiscountCoupon_Collection. Метод достаётся DiscountCouponTable от DataManager::checkFields: поведение общее для всех сущностей, а данные, поля и классы — свои.
Проверяет данные перед записью в DiscountCouponTable: обязательные поля, длину, валидаторы из карты. Вызывается внутри add() и update(), ошибки попадают в их результат.
use Bitrix\Main\Loader;
use Bitrix\Sale\Internals\DiscountCouponTable;
Loader::includeModule('sale');
$result = DiscountCouponTable::add([
'DISCOUNT_ID' => 1,
'ACTIVE' => 'Y',
'ACTIVE_FROM' => new \Bitrix\Main\Type\DateTime(),
]);
foreach ($result->getErrors() as $error) {
echo $error->getMessage(), PHP_EOL; // в том числе ошибки checkFields()
}Поля сущности DiscountCouponTable
| Поле | Тип | Свойства |
|---|---|---|
ID | int | обязательное |
DISCOUNT_ID | int | обязательное |
ACTIVE | bool | необязательное, по умолчанию 'Y' |
ACTIVE_FROM | datetime | необязательное |
ACTIVE_TO | datetime | необязательное |
COUPON | string(32) | обязательное |
TYPE | int | обязательное |
MAX_USE | int | обязательное |
USE_COUNT | int | обязательное |
USER_ID | int | обязательное |
DATE_APPLY | datetime | необязательное |
TIMESTAMP_X | datetime | необязательное |
MODIFIED_BY | int | необязательное |
DATE_CREATE | datetime | необязательное |
CREATED_BY | int | необязательное |
DESCRIPTION | text | необязательное |
CREATED_BY_USER | reference | |
MODIFIED_BY_USER | reference | |
DISCOUNT | reference |
Список — из описания класса в исходном коде; точный состав в вашей версии вернёт DiscountCouponTable::getEntity()->getFields().
Собственные методы DiscountCouponTable
addPacket()Создаёт один или несколько купонов для скидки.checkCoupon()Проверяет купон — уникальность и существование.checkDiscountId()Проверить id скидки.checkPacket()Проверяет данные для создания одного или нескольких купонов.checkType()Проверяет тип купона.clearDiscountCheckList()Очищает список скидок для обновления флага использования купонов.deleteByDiscount()Удалить все купоны для скидки.disableCheckCouponsUse()Отключает проверку использования купонов для скидки перед множественным добавлением/обновлением/удалением.enableCheckCouponsUse()Включает проверку использования купонов для скидки после множественного добавления/обновления/удаления.generateCoupon()Создаёт код купона.getCouponTypes()Возвращает список типов купонов.isCheckedCouponsUse()Возвращает текущий режим проверки использования купонов.
checkFields() есть и у других классов модуля «Интернет-магазин»: CashboxRestHandlerTable, DeliveryRestHandlerTable, DiscountEntitiesTable, DiscountGroupTable, DiscountModuleTable, DiscountTable, EntityLabelTable, PayableItemTable.
Исходный файл: source/sale/lib/internals/discountcoupon.php:686

