Файловый менеджер - Редактировать - /var/www/axolotl/data/www/axolotls.ru/www/bitrix/modules/catalog/lib/discountentity.php
Назад
<?php namespace Bitrix\Catalog; use Bitrix\Main, Bitrix\Main\Localization\Loc, Bitrix\Main\ORM, Bitrix\Main\Type; Loc::loadMessages(__FILE__); /** * Class DiscountEntityTable * * Fields: * <ul> * <li> ID int mandatory * <li> DISCOUNT_ID int mandatory * <li> MODULE_ID string(50) mandatory * <li> ENTITY string(255) mandatory * <li> ENTITY_ID int optional * <li> ENTITY_VALUE string(255) optional * <li> FIELD_ENTITY string(255) mandatory * <li> FIELD_TABLE string(255) mandatory * </ul> * * @package Bitrix\Catalog **/ class DiscountEntityTable extends ORM\Data\DataManager { const ENTITY_ELEMENT = 'ELEMENT'; const ENTITY_ELEMENT_PROPERTY = 'ELEMENT_PROPERTY'; const ENTITY_PRODUCT = 'PRODUCT'; /** * Returns DB table name for entity. * * @return string */ public static function getTableName() { return 'b_catalog_discount_entity'; } /** * Returns entity map definition. * * @return array */ public static function getMap() { return [ 'ID' => new ORM\Fields\IntegerField('ID', [ 'primary' => true, 'autocomplete' => true, 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_ID_FIELD') ]), 'DISCOUNT_ID' => new ORM\Fields\IntegerField('DISCOUNT_ID', [ 'required' => true, 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_DISCOUNT_ID_FIELD') ]), 'MODULE_ID' => new ORM\Fields\StringField('MODULE_ID', [ 'required' => true, 'validation' => [__CLASS__, 'validateModuleId'], 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_MODULE_ID_FIELD') ]), 'ENTITY' => new ORM\Fields\StringField('ENTITY', [ 'required' => true, 'validation' => [__CLASS__, 'validateEntity'], 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_ENTITY_FIELD') ]), 'ENTITY_ID' => new ORM\Fields\IntegerField('ENTITY_ID', [ 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_ENTITY_ID_FIELD') ]), 'ENTITY_VALUE' => new ORM\Fields\StringField('ENTITY_VALUE', [ 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_ENTITY_VALUE_FIELD') ]), 'FIELD_ENTITY' => new ORM\Fields\StringField('FIELD_ENTITY', [ 'required' => true, 'validation' => [__CLASS__, 'validateFieldEntity'], 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_FIELD_ENTITY_FIELD') ]), 'FIELD_TABLE' => new ORM\Fields\StringField('FIELD_TABLE', [ 'required' => true, 'validation' => [__CLASS__, 'validateFieldTable'], 'title' => Loc::getMessage('DISCOUNT_ENTITY_ENTITY_FIELD_TABLE_FIELD') ]), 'DISCOUNT' => new ORM\Fields\Relations\Reference( 'DISCOUNT', '\Bitrix\Catalog\Discount', ['=this.DISCOUNT_ID' => 'ref.ID'] ) ]; } /** * Returns validators for MODULE_ID field. * * @return array */ public static function validateModuleId() { return [ new ORM\Fields\Validators\LengthValidator(null, 50) ]; } /** * Returns validators for ENTITY field. * * @return array */ public static function validateEntity() { return [ new ORM\Fields\Validators\LengthValidator(null, 255) ]; } /** * Returns validators for FIELD_ENTITY field. * * @return array */ public static function validateFieldEntity() { return [ new ORM\Fields\Validators\LengthValidator(null, 255) ]; } /** * Returns validators for FIELD_TABLE field. * * @return array */ public static function validateFieldTable() { return [ new ORM\Fields\Validators\LengthValidator(null, 255) ]; } /** * Delete entity list by discount. * * @param int $discount Discount id. * @return void */ public static function deleteByDiscount($discount) { $discount = (int)$discount; if ($discount <= 0) return; $conn = Main\Application::getConnection(); $helper = $conn->getSqlHelper(); $conn->queryExecute( 'delete from '.$helper->quote(self::getTableName()).' where '.$helper->quote('DISCOUNT_ID').' = '.$discount ); unset($helper, $conn); } /** * Return entity by discount list. * * @param array $discountList Discount id list. * @param array $filter Additional filter. * @param bool $groupModule Group by modules. * @return array */ public static function getByDiscount(array $discountList, $filter = [], $groupModule = true) { $groupModule = ($groupModule === true); $result = []; if (!empty($discountList)) { Type\Collection::normalizeArrayValuesByInt($discountList); if (!empty($discountList)) { if (!is_array($filter)) $filter = []; $discountRows = array_chunk($discountList, 500); foreach ($discountRows as &$row) { $filter['@DISCOUNT_ID'] = $row; $entityIterator = self::getList([ 'select' => [ 'DISCOUNT_ID', 'MODULE_ID', 'ENTITY', 'ENTITY_ID', 'ENTITY_VALUE', 'FIELD_ENTITY', 'FIELD_TABLE' ], 'filter' => $filter ]); if ($groupModule) { while ($entity = $entityIterator->fetch()) { unset($entity['DISCOUNT_ID']); $module = $entity['MODULE_ID']; $entityCode = $entity['ENTITY']; if (!isset($result[$module])) $result[$module] = []; if (!isset($result[$module][$entityCode])) $result[$module][$entityCode] = []; $result[$module][$entityCode][$entity['FIELD_ENTITY']] = $entity; } unset($entityCode, $module); } else { while ($entity = $entityIterator->fetch()) { $entity['DISCOUNT_ID'] = (int)$entity['DISCOUNT_ID']; if (!isset($result[$entity['DISCOUNT_ID']])) $result[$entity['DISCOUNT_ID']] = []; $result[$entity['DISCOUNT_ID']][] = $entity; } } unset($entity, $entityIterator); } unset($row, $discountRows); } } return $result; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.8 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка