echo $form->field($model, 'id_faculty')->dropDownList(ArrayHelper::map(Faculty::find()->all(), 'faculty_id', 'faculty_name'), ['prompt' => 'Оберіть факультет', 'onchange' => ' $.post("index.php?r=timetable/lessons/speciality_list&id=' . '"+$(this).val(), function( data ) { $( "select#lessons-id_speciality" ).html( data ); }); '])->label("Факультет"); ?> <?php echo $form->field($model, 'id_speciality')->dropDownList(ArrayHelper::map(Speciality::find()->all(), 'speciality_id', 'speciality_name'), ['prompt' => 'Оберіть спеціальність', 'onchange' => ' $.post("index.php?r=timetable/lessons/groups_list&id=' . '"+$(this).val()+"&course=' . '"+$("#lessons-course_get").val(), function( data ) { $( "select#lessons-id_group" ).html( data ); }); '])->label("Спеціальність"); ?> <?php echo $form->field($model, 'id_group')->dropDownList(ArrayHelper::map(Groups::findAll(['is_subgroup' => 0]), 'group_id', 'main_group_name'), ['prompt' => 'Оберіть групу'])->label("Група"); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? 'Обрати' : 'Оновити', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> </div> <?php ActiveForm::end(); ?> </div>
use app\module\handbook\models\Groups; /* @var $this yii\web\View */ /* @var $model app\module\handbook\models\Discipline */ $d_name = DisciplineList::findOne([$model->id_discipline]); $this->title = $d_name['discipline_name']; $this->params['breadcrumbs'][] = ['label' => 'Дисципліни', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; function auditory($val) { $classes = ClassRooms::findOne(['classrooms_id' => $val]); $housing = Housing::findOne(['housing_id' => $classes['id_housing']]); return $classes['classrooms_number'] . ' - ' . $housing['name']; } $optionsId = DisciplineGroups::findAll(['id_discipline' => $model->discipline_distribution_id]); for ($i = 0; $i < count($optionsId); $i++) { $optionName[] = Groups::findAll(['group_id' => $optionsId[$i]['id_group']]); $optionsArray[] = $optionName[$i][0]['main_group_name'] . " "; } $optionsString = implode(' | ', $optionsArray); ?> <div class="discipline-view"> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php echo Html::a('Оновити', ['update', 'id' => $model->discipline_distribution_id], ['class' => 'btn btn-primary']); ?>
/** * Creates a new Lessons model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Lessons(); if ($model->load(Yii::$app->request->post()) && $model->save()) { $group_info = Groups::findOne(["group_id" => $model->id_group]); function lesson_insert($id_group, $is_numerator) { $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = $is_numerator; $m->day = $model->day; $m->comment = $model->comment; $m->lesson_number = $model->lesson_number; $m->insert(); } //Код для всего потока if ($model->all_speciality) { $sp = Speciality::findAll(['id_faculty' => $model->id_faculty]); //Узнаем факультет этой группы $gr = Groups::find()->where(['inflow_year' => date("Y") - $model->course])->all(); //Выбираем все группы с таким же годом поступления foreach ($gr as $g) { foreach ($sp as $s) { if ($s['speciality_id'] == $g['id_speciality']) { //Если у группы и специальности совпадают ИД, это то, что нужно $stream_groups[] = $g['group_id']; } } } //Сам код вставки /* Если выбрана галка "Числитель/знаменатель", единожды записываем данные для этой группы */ if ($model->num_dem == 1) { //Если выбрана галка "Числитель/знаменатель" if ($model->is_numerator == 0) { //Если ИД подгруппы совпадает - психуем и забиваем $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 1; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } else { //Иначе все по новой $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 0; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } foreach ($stream_groups as $sg) { $is_group_for_subgroup = Groups::find()->where(['parent_group' => $sg])->all(); $group_speciality = Groups::find()->where(['group_id' => $sg])->select('id_speciality')->all(); if (!empty($is_group_for_subgroup) || $sg == $model->id_group) { //Если у группы существуют подгруппы или это первоначальная группа - пропускаем continue; } else { $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $sg; $m->id_faculty = $model->id_faculty; $m->id_speciality = $group_speciality[0]['id_speciality']; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 0; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $sg; $m->id_faculty = $model->id_faculty; $m->id_speciality = $group_speciality[0]['id_speciality']; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 1; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } } } else { //Если галка Числитель/знаменатель не выбрана foreach ($stream_groups as $sg) { $is_group_for_subgroup = Groups::find()->where(['parent_group' => $sg])->all(); $group_speciality = Groups::find()->where(['group_id' => $sg])->select('id_speciality')->all(); if (!empty($is_group_for_subgroup) || $sg == $model->id_group) { //Если у группы существуют подгруппы или это первоначальная группа - пропускаем continue; } else { $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $sg; $m->id_faculty = $model->id_faculty; $m->id_speciality = $group_speciality[0]['id_speciality']; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = $model->is_numerator; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } } } //Конец кода вставки //Конец кода для всего потока } else { //Если не выбрана галка "Для всего потока" if ($group_info['parent_group'] == 0) { //Выясняем группа это или подгруппа $is_group = true; //Если это группа if ($model->num_dem == 1) { //Записываем если выбрана галочка Числитель/Знаменатель для 1 группы $m = new Lessons(); if ($model->is_numerator == 1) { $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 0; $m->day = $model->day; $m->comment = $model->comment; $m->lesson_number = $model->lesson_number; $m->insert(); } else { $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 1; $m->day = $model->day; $m->comment = $model->comment; $m->lesson_number = $model->lesson_number; $m->insert(); } } } else { $is_group = false; //Если это подгруппа if ($model->all_group == 1) { //Если выбрана галка для всей группы $groups_arr = Groups::findAll(['parent_group' => $model->parent]); if ($model->num_dem == 1) { //Если выбрана галка числитель/знаменатель, сохраним это для этой подгруппы $m = new Lessons(); if ($model->is_numerator == 1) { $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 0; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } else { $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 1; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } } foreach ($groups_arr as $ga) { //Перебираем все группы if ($ga['group_id'] == $model->id_group) { //Если ИД подгруппы совпадает - психуем и забиваем continue; } else { //Иначе все по новой if ($model->num_dem == 1) { //Выбрана галочка Числитель/Знаменатель для всей группы $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $ga['group_id']; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 0; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $ga['group_id']; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 1; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } else { $m = new Lessons(); $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $ga['group_id']; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->comment = $model->comment; $m->is_numerator = $model->is_numerator; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } } } } else { if ($model->num_dem == 1) { //Если выбрана галка числитель/знаменатель, сохраним это для этой подгруппы $m = new Lessons(); if ($model->is_numerator == 1) { $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 0; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } else { $m->is_holiday = $model->is_holiday; $m->all_group = $model->all_group; $m->id_discipline = $model->id_discipline; $m->id_teacher = $model->id_teacher; $m->id_classroom = $model->id_classroom; $m->id_group = $model->id_group; $m->id_faculty = $model->id_faculty; $m->id_speciality = $model->id_speciality; $m->course = $model->course; $m->semester = $model->semester; $m->id_okr = $model->id_okr; $m->is_numerator = 1; $m->comment = $model->comment; $m->day = $model->day; $m->lesson_number = $model->lesson_number; $m->insert(); } } } } } //Конец кода добавления if ($model->subgroup == 1) { $url = Url::to('index.php?r=timetable/lessons/editor&id' . $model->lesson_id . '&semester_for_editor=' . $model->semester . '&course_get=' . $model->course . '&faculty_id=' . $model->id_faculty . '&speciality_id=' . $model->id_speciality . '&group_id=' . $model->parent . '#lesson_id' . $model->lesson_id); } else { $url = Url::to('index.php?r=timetable/lessons/editor&id' . $model->lesson_id . '&semester_for_editor=' . $model->semester . '&course_get=' . $model->course . '&faculty_id=' . $model->id_faculty . '&speciality_id=' . $model->id_speciality . '&group_id=' . $model->id_group . '#lesson_id' . $model->lesson_id); } return $this->redirect($url); } else { return $this->renderAjax('create', ['model' => $model]); } }
use yii\bootstrap\Modal; use yii\helpers\Url; /* @var $this yii\web\View */ /* @var $model app\module\timetable\models\Lessons */ $semester_for_editor = $_GET['semester_for_editor']; $course_get = $_GET['course_get']; $faculty = $_GET['faculty_id']; $speciality = $_GET['speciality_id']; $group_id = $_GET['group_id']; $inflow_year = date('Y') - $course_get; $spec_name = Speciality::findOne(["speciality_id" => $speciality]); $faculty_name = Faculty::findOne(["faculty_id" => $faculty]); $week = ["", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"]; $groups_list = Groups::findAll(["id_speciality" => $speciality, "inflow_year" => $inflow_year, "group_id" => $group_id]); $less_time = LessonTime::find()->all(); $gl = Groups::findAll(["parent_group" => $group_id]); if (count($gl) > 0) { //Определяем есть ли у группы подгруппы $group_has_subgroup = true; $groups_list = $gl; $parent = $gl[0]['parent_group']; } else { $group_has_subgroup = false; $parent = 0; } $this->title = 'Редагувати розклад:'; $this->params['breadcrumbs'][] = ['label' => 'Редактор розкладу', 'url' => ['index']]; $this->params['breadcrumbs'][] = $semester_for_editor . ' семестр'; $this->params['breadcrumbs'][] = $course_get . ' курс'; $this->params['breadcrumbs'][] = $faculty_name['faculty_name']; $this->params['breadcrumbs'][] = $spec_name['speciality_name'];