// Гибридный подход: обновляем основное поле (источник истины)
$admin->employee_position_id = $modelPosition->position_id;
+ // Синхронизируем group_name с выбранной должностью (как в AdminUpdateAction)
+ if ($modelPosition->position_id) {
+ $position = EmployeePosition::findOne($modelPosition->position_id);
+ if ($position) {
+ $admin->group_name = $position->name;
+ }
+ }
+
// Сохраняем Admin, что автоматически вызовет afterSave
// и создаст запись в EmployeePositionStatus для истории
if ($admin->save(false)) {