Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/yandex.market/lib/export/delivery/ |
Upload File : |
<?php namespace Yandex\Market\Export\Delivery; use Bitrix\Main; use Yandex\Market; class Table extends Market\Reference\Storage\Table { const ENTITY_TYPE_SETUP = 'setup'; const ENTITY_TYPE_IBLOCK_LINK = 'iblock'; const ENTITY_TYPE_FILTER = 'filter'; const DELIVERY_TYPE_DELIVERY = 'delivery'; const DELIVERY_TYPE_PICKUP = 'pickup'; public static function getTableName() { return 'yamarket_export_delivery'; } public static function createIndexes(Main\DB\Connection $connection) { $tableName = static::getTableName(); $connection->createIndex($tableName, 'IX_' . $tableName . '_0', [ 'ENTITY_TYPE', 'ENTITY_ID' ]); } public static function getUfId() { return 'YAMARKET_EXPORT_DELIVERY'; } public static function getMap() { return [ new Main\Entity\IntegerField('ID', [ 'autocomplete' => true, 'primary' => true ]), new Main\Entity\StringField('NAME'), new Main\Entity\StringField('PERIOD_FROM', [ 'size' => 4 ]), new Main\Entity\StringField('PERIOD_TO', [ 'size' => 4 ]), new Main\Entity\StringField('ORDER_BEFORE', [ 'size' => 4 ]), new Main\Entity\IntegerField('PRICE', [ 'required' => true ]), new Main\Entity\EnumField('DELIVERY_TYPE', [ 'required' => true, 'default_value' => static::DELIVERY_TYPE_DELIVERY, 'values' => [ static::DELIVERY_TYPE_DELIVERY, static::DELIVERY_TYPE_PICKUP ] ]), new Main\Entity\EnumField('ENTITY_TYPE', [ 'required' => true, 'values' => [ static::ENTITY_TYPE_SETUP, static::ENTITY_TYPE_IBLOCK_LINK, static::ENTITY_TYPE_FILTER ] ]), new Main\Entity\IntegerField('ENTITY_ID', [ 'required' => true ]), new Main\Entity\ReferenceField('SETUP', Market\Export\Setup\Table::class, [ '=this.ENTITY_ID' => 'ref.ID', '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_SETUP ] ]), new Main\Entity\ReferenceField('IBLOCK_LINK', Market\Export\IblockLink\Table::class, [ '=this.ENTITY_ID' => 'ref.ID', '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_IBLOCK_LINK ] ]), new Main\Entity\ReferenceField('FILTER', Market\Export\Filter\Table::class, [ '=this.ENTITY_ID' => 'ref.ID', '=this.ENTITY_TYPE' => [ '?', static::ENTITY_TYPE_FILTER ] ]) ]; } public static function migrate(Main\DB\Connection $connection) { $sqlHelper = $connection->getSqlHelper(); $tableName = static::getTableName(); $tableFields = $connection->getTableFields($tableName); if (!isset($tableFields['DELIVERY_TYPE'])) { $connection->queryExecute( 'ALTER TABLE ' . $sqlHelper->quote($tableName) . ' ADD COLUMN ' . $sqlHelper->quote('DELIVERY_TYPE') . ' varchar(8) NOT NULL' ); $connection->queryExecute( 'UPDATE ' . $sqlHelper->quote($tableName) . ' SET ' . $sqlHelper->quote('DELIVERY_TYPE') . ' = \'' . static::DELIVERY_TYPE_DELIVERY .'\'' ); } } public static function isValidData($data) { $result = true; if (array_key_exists('PRICE', $data) && ((int)$data['PRICE'] < 0 || trim($data['PRICE']) === '')) { $result = false; } if (array_key_exists('PERIOD_FROM', $data) && array_key_exists('PERIOD_TO', $data)) { $hasPeriodFrom = true; $hasPeriodTo = true; if ((int)$data['PERIOD_FROM'] < 0 || trim($data['PERIOD_FROM']) === '') { $hasPeriodFrom = false; } if ((int)$data['PERIOD_TO'] < 0 || trim($data['PERIOD_TO']) === '') { $hasPeriodTo = false; } if (!$hasPeriodFrom && !$hasPeriodTo) { $result = false; } } return $result; } }