/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
backend/forms/data/UserExportReportForm.php
151 строка
4 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace backend\forms\data; use common\forms\base\BaseModel; use common\helpers\ArrayHelper; use common\helpers\DateHelper; use common\helpers\UrlHelper; use common\kdf\KReportType; use common\models\AclRole; use Yii; use yii\helpers\Json; /** * Форма редактирования сервиса * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2024 */ class UserExportReportForm extends BaseModel { /** * @var string */ public $type_id = null; /** * @var string */ public $date_begin = null; /** * @var string */ public $date_end = null; /** * @var string */ public $department_id = []; /** * @var string */ public $user_id = []; /** * @var string */ public $source_language_id = []; /** * @var string */ public $target_language_id = []; /** * @inheritdoc */ public function rules() { return ArrayHelper::merge(parent::rules(), [ [['type_id', 'date_begin', 'date_end'], 'required'], [['type_id'], 'number'], [['department_id', 'user_id', 'source_language_id', 'target_language_id'], 'safe'], [['date_begin', 'date_end'], 'string'], [ ['date_begin', 'date_end'], 'filter', 'filter' => function ($value) { return DateHelper::parse($value); } ], ]); } /** * @inheritdoc */ public function attributeLabels() { return ArrayHelper::merge(parent::attributeLabels(), [ 'type_id' => Yii::t('app', 'Report'), 'date_begin' => Yii::t('app', 'Date from'), 'date_end' => Yii::t('app', 'Date until'), 'department_id' => Yii::t('app', 'Department'), 'user_id' => Yii::t('app', 'User'), 'source_language_id' => Yii::t('app', 'Source Language'), 'target_language_id' => Yii::t('app', 'Target Language'), ]); } /** * @inheritdoc */ public function getPublicFields() { return ArrayHelper::merge(parent::getPublicFields(), [ 'department_id' => function () { return $this->prepareArrayField(AclRole::find(), 'role_id', 'title'); }, 'user_id' => function () { return $this->prepareArrayField('user'); }, 'source_language_id' => function () { return $this->prepareArrayField('source_language'); }, 'target_language_id' => function () { return $this->prepareArrayField('target_language'); }, 'date_begin', 'date_end', 'type_id' => function () { return $this->prepareSelectField(KReportType::find(), 'type_id', 'title'); }, ]); } /** * @inheritdoc */ public function doSave() { return true; } /** * @inheritdoc */ public function getData() { $data = $this->getAttributes([ 'department_id', 'user_id', 'source_language_id', 'target_language_id', 'date_begin', 'date_end', 'type_id' ]); $string = Json::encode($data); $base64 = base64_encode($string); return [ 'redirect' => UrlHelper::to_sig('/report/download', [ 'q' => $base64 ]) ]; } }