From 6093b0c2ddba36727220451e22845d9dc0bd7e35 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 5 Jul 2024 14:03:42 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=B2?= =?utf8?q?=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82?= =?utf8?q?=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/TimetableFactController.php | 30 ++++++++++++---- erp24/views/timetable-fact/index.php | 35 +++++++++++-------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/erp24/controllers/TimetableFactController.php b/erp24/controllers/TimetableFactController.php index 16a76f5e..d0b46cb2 100644 --- a/erp24/controllers/TimetableFactController.php +++ b/erp24/controllers/TimetableFactController.php @@ -49,9 +49,9 @@ class TimetableFactController extends Controller public function actionIndex() { $model = DynamicModel::validateData([ - 'store_id' => null, 'date_start' => null, 'date_end' => null, 'group_id' => null, 'autoclosed' => false, 'sort' => null, + 'store_id' => null, 'date_start' => null, 'date_end' => null, 'group_id' => null, 'admin_id' => null, 'autoclosed' => false, 'sort' => null, ], [ - [['store_id', 'date_start', 'date_end', 'group_id', 'autoclosed', 'sort'], 'safe'] + [['store_id', 'date_start', 'date_end', 'group_id', 'admin_id', 'autoclosed', 'sort'], 'safe'] ]); $model->load(Yii::$app->request->get()); $timetableFactModelQuery = TimetableFactModel::find(); @@ -67,6 +67,9 @@ class TimetableFactController extends Controller if ($model->group_id && $model->group_id > 0) { $timetableFactModelQuery->andWhere(['d_id' => $model->group_id]); } + if ($model->admin_id && $model->admin_id > 0) { + $timetableFactModelQuery->andWhere(['admin_id' => $model->admin_id]); + } if ($model->autoclosed) { $timetableFactModelQuery->andWhere(['autoclosed' => '1']); } @@ -74,11 +77,23 @@ class TimetableFactController extends Controller $timetableFactModelQuery->orderBy(['date_shift' => SORT_DESC]); } - $stores = ArrayHelper::map(CityStore::find()->all(), 'id', 'name'); - $stores = [0 => 'Любой', ...$stores]; + $storeArr = CityStore::find()->all(); + $stores = [0 => 'Любой']; + foreach ($storeArr as $store) { + $stores[$store->id] = $store->name; + } - $adminGroup = ArrayHelper::map(AdminGroup::find()->where(['id' => AdminGroup::getGroupsForEmployeeOnCashbox()])->all(), 'id', 'name'); - $adminGroup = [0 => 'Любая', ...$adminGroup]; + $adminGroupArr = AdminGroup::find()->where(['id' => AdminGroup::getGroupsForEmployeeOnCashbox()])->all(); + $adminGroups = [0 => 'Любая']; + foreach ($adminGroupArr as $adminGroup) { + $adminGroups[$adminGroup->id] = $adminGroup->name; + } + + $adminsArr = Admin::find()->where(['group_id' => AdminGroup::getGroupsForEmployeeOnCashbox()])->all(); + $admins = [0 => 'Любой']; + foreach ($adminsArr as $admin) { + $admins[$admin->id] = $admin->name; + } $dataProvider = new ActiveDataProvider([ 'query' => $timetableFactModelQuery, @@ -99,7 +114,8 @@ class TimetableFactController extends Controller 'dataProvider' => $dataProvider, 'model' => $model, 'stores' => $stores, - 'adminGroup' => $adminGroup, + 'adminGroups' => $adminGroups, + 'admins' => $admins, ]); } diff --git a/erp24/views/timetable-fact/index.php b/erp24/views/timetable-fact/index.php index 01963257..75ba0fe6 100644 --- a/erp24/views/timetable-fact/index.php +++ b/erp24/views/timetable-fact/index.php @@ -11,7 +11,8 @@ use yii\grid\GridView; /** @var yii\data\ActiveDataProvider $dataProvider */ /** @var \yii\base\DynamicModel $model */ /** @var array $stores */ -/** @var array $adminGroup */ +/** @var array $adminGroups */ +/** @var array $admins */ $this->title = Yii::t('app', 'Фактический табель сотрудников (Новый!)'); $this->params['breadcrumbs'][] = $this->title; @@ -23,8 +24,8 @@ $this->params['breadcrumbs'][] = $this->title; 'GET']) ?>
-
- Магазин:
field($model, 'store_id')->widget(Select2::class, [ +
+
Магазин:
field($model, 'store_id')->widget(Select2::class, [ 'data' => $stores, 'language' => 'ru', 'options' => ['placeholder' => 'Магазин...'], @@ -32,8 +33,7 @@ $this->params['breadcrumbs'][] = $this->title; 'allowClear' => true ], ])->label(false) ?>
-     - Дата до:
field($model, 'date_start')->widget(DateTimePicker::class, [ +
Дата до:
field($model, 'date_start')->widget(DateTimePicker::class, [ 'language' => 'ru', 'template' => '{input}', 'clientOptions' => [ @@ -42,8 +42,7 @@ $this->params['breadcrumbs'][] = $this->title; 'todayBtn' => true ], ])->label(false) ?>
-     - после:
field($model, 'date_end')->widget(DateTimePicker::class, [ +
после:
field($model, 'date_end')->widget(DateTimePicker::class, [ 'language' => 'ru', 'template' => '{input}', 'clientOptions' => [ @@ -52,19 +51,24 @@ $this->params['breadcrumbs'][] = $this->title; 'todayBtn' => true ], ])->label(false) ?>
-     - Группа:
field($model, 'group_id')->widget(Select2::class, [ - 'data' => $adminGroup, +
Группа:
field($model, 'group_id')->widget(Select2::class, [ + 'data' => $adminGroups, 'language' => 'ru', 'options' => ['placeholder' => 'Должность...'], 'pluginOptions' => [ 'allowClear' => true ], ])->label(false) ?>
-     - Автоматическое закрытие:
field($model, 'autoclosed')->checkbox([0 => 'unchecked', 1 => 'checked'], [])->label(false) ?>
-     - 'btn btn-secondary btn-sm'])?> +
Сотрудник:
field($model, 'admin_id')->widget(Select2::class, [ + 'data' => $admins, + 'language' => 'ru', + 'options' => ['placeholder' => 'Сотрудник...'], + 'pluginOptions' => [ + 'allowClear' => true + ], + ])->label(false) ?>
+
Авт. закр.:
field($model, 'autoclosed')->checkbox([0 => 'unchecked', 1 => 'checked'], [])->label(false) ?>
+
'btn btn-secondary btn-sm'])?>
@@ -77,8 +81,9 @@ $this->params['breadcrumbs'][] = $this->title; [ 'attribute' => 'admin_id', 'label' => 'Пользователь', + 'format' => 'raw', 'value' => function ($data) { - return $data->admin->name; + return '' . $data->admin->name . ""; } ], [ -- 2.39.5