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/lpost.delivery/lib/entity/ |
Upload File : |
<?php namespace Lpost\Delivery\Entity; use Bitrix\Main\Localization\Loc, Bitrix\Main\ORM\Data\DataManager, Bitrix\Main\ORM\Fields\BooleanField, Bitrix\Main\ORM\Fields\DatetimeField, Bitrix\Main\ORM\Fields\IntegerField, Bitrix\Main\ORM\Fields\StringField, Bitrix\Main\ORM\Fields\TextField, Bitrix\Main\ORM\Fields\FloatField, Bitrix\Main\ORM\Fields\Validators\LengthValidator, Bitrix\Main\Type\DateTime; Loc::loadMessages(__FILE__); /** * Class ZoneTable * * Fields: * <ul> * <li> id int mandatory * <li> id_pickup int mandatory * <li> time_work text optional * <li> id_region int mandatory * <li> zone text mandatory * <li> active bool ('N', 'Y') optional default 'Y' * <li> is_cash int mandatory * <li> is_card int mandatory * <li> city_name string(255) mandatory * <li> params text optional * <li> data_update datetime optional default current datetime * </ul> * * @package Bitrix\Delivery **/ class ZoneTable extends DataManager { /** * Returns DB table name for entity. * * @return string */ public static function getTableName() { return 'lpost_delivery_zone'; } public static function getStorageTable() { return 'lpost_delivery_pickup_storage'; } /** * Returns entity map definition. * * @return array */ public static function getMap() { return [ new IntegerField( 'id', [ 'primary' => true, 'autocomplete' => true, 'title' => Loc::getMessage('ZONE_ENTITY_ID_FIELD') ] ), new IntegerField( 'id_pickup', [ 'primary' => true, 'title' => Loc::getMessage('ZONE_ENTITY_ID_PICKUP_FIELD') ] ), new TextField( 'time_work', [ 'title' => Loc::getMessage('ZONE_ENTITY_TIME_WORK_FIELD') ] ), new IntegerField( 'id_region', [ 'required' => true, 'title' => Loc::getMessage('ZONE_ENTITY_ID_REGION_FIELD') ] ), new FloatField( 'coord_lat', [ 'default' => 0, 'title' => Loc::getMessage('ZONE_ENTITY_COORD_LAT_FIELD') ] ), new FloatField( 'coord_long', [ 'default' => 0, 'title' => Loc::getMessage('ZONE_ENTITY_COORD_LONG_FIELD') ] ), new TextField( 'zone', [ 'required' => true, 'title' => Loc::getMessage('ZONE_ENTITY_ZONE_FIELD') ] ), new BooleanField( 'active', [ 'values' => array('N', 'Y'), 'default' => 'Y', 'title' => Loc::getMessage('ZONE_ENTITY_ACTIVE_FIELD') ] ), new IntegerField( 'is_cash', [ 'required' => true, 'title' => Loc::getMessage('ZONE_ENTITY_IS_CASH_FIELD') ] ), new IntegerField( 'is_card', [ 'required' => true, 'title' => Loc::getMessage('ZONE_ENTITY_IS_CARD_FIELD') ] ), new IntegerField( 'day_logistic', [ 'required' => true, 'title' => Loc::getMessage('ZONE_ENTITY_DAY_LOGISTIC_FIELD') ] ), new StringField( 'city_name', [ 'required' => true, 'validation' => [__CLASS__, 'validateCityName'], 'title' => Loc::getMessage('ZONE_ENTITY_CITY_NAME_FIELD') ] ), new TextField( 'params', [ 'title' => Loc::getMessage('ZONE_ENTITY_PARAMS_FIELD'), 'save_data_modification' => function () { return array( function ($value) { return serialize($value); } ); }, 'fetch_data_modification' => function () { return array( function ($value) { return isset($value) ? unserialize($value) : false; } ); } ] ), new DatetimeField( 'data_update', [ 'default' => function() { return new DateTime(); }, 'title' => Loc::getMessage('ZONE_ENTITY_DATA_UPDATE_FIELD') ] ), ]; } /** * Returns validators for city_name field. * * @return array */ public static function validateCityName() { return [ new LengthValidator(null, 255), ]; } public static function deActive() { global $DB; return $DB->Query( "UPDATE " . self::getTableName() . "as t1 SET t1.active = 'N' WHERE t1.id_pickup NOT IN (SELECT `id_pickup` FROM " . self::getStorageTable() . ")", true ); } }