$attributes['group_name'] = $attributes['custom_position'];
}
- // Обработка специфичных полей в зависимости от типа группы
- if ($isSpecialGroup) {
- // Для специальных групп работников сохраняем employee_position_id
- unset($attributes['shift']);
- } else {
- // Для остальных групп очищаем employee_position_id
+ // Для не-специальных групп очищаем employee_position_id
+ if (!$isSpecialGroup) {
$attributes['employee_position_id'] = null;
- unset($attributes['shift']);
}
// Очищаем custom_position в любом случае
}
}
- $adminGroups = [AdminGroup::NOT_INITIALIZED_GROUP => 'Не выбрана'];
- foreach (AdminGroup::find()->all() as $adminGroupId => $adminGroup) {
- $adminGroups[$adminGroup->id] = $adminGroup->name;
- }
+ $adminGroups = [AdminGroup::NOT_INITIALIZED_GROUP => 'Не выбрана'] +
+ ArrayHelper::map(AdminGroup::find()->all(), 'id', 'name');
- $adminArr = [];
- foreach (Admin::find()->with('adminGroup')->all() as $admin) {
- $adminArr[] = ['id' => $admin->id, 'name' => $admin->name, 'groupName' => $admin->adminGroup->name ?? "Другие"];
- }
+ $admins = ArrayHelper::map(
+ Admin::find()->with('adminGroup')->all(),
+ 'id',
+ 'name',
+ function($model) {
+ return $model->adminGroup->name ?? 'Другие';
+ }
+ );
- $admins = ArrayHelper::map($adminArr, 'id', 'name', 'groupName');
$positions = EmployeePosition::find()->orderBy('posit')->all();
$cityStores = ArrayHelper::map(CityStore::find()->select(['id', 'name'])->all(), 'id', 'name');