QUR_SEL($sql); if($rez&&$rez[0]>0) { $data['discip'] = $rez[1]; $out = elekt_vedomosti_create($data); }else{ $out['err'] = 1; $out['msg'] = 'Не выбрали дисциплину!'; } } //сохраняем студента в эллективную дисциплину if($_POST['ajdes']=='elektivs_select_save'){ $idelkt=$_POST['idelkt']; $studid=$_POST['studid']; $sql = 'SELECT id FROM acs_fk_order WHERE id_student='.$studid.' LIMIT 1'; $rez = $DB->QUR_SEL($sql); if($rez&&$rez[0]>0){ $out['html'] = 'Студент уже выбрал элективную дисциплину!'; }else { $sql = 'INSERT INTO acs_fk_order VALUES(0,' . $idelkt . ',' . $studid . ',' . time() . ')'; $rez = $DB->QUR($sql); if(!$rez['err']) { $out['html'] = 'Сохранили студента!'; }else{ $out['html'] = 'Ошибка сохранения студента!'; } } } //показываем выбор элективных дисциплин if($_POST['ajdes']=='elektivs_select'){ $kurs=$_POST['kurs']; $studid=$_POST['studid']; $iskurs=false; $select = elekt_get_sections(); //$out['electives'] = $select; $out['html'] = '
'; $out['html'] .= ''; $out['html'] .= '
'; $out['html'] .= '
Записать студента
'; if(!$iskurs) $out['html'] = ''; } echo json_encode($out); exit(); } //Создание ведомостей для группы function elekt_vedomosti_create($data){ GLOBAL $ST,$DB; $out = array(); //$data['discip'] = discip,kurs,sem,ekz,zach //Получим список студентов $err=''; $students = array(); $sql = 'SELECT id as id_student,id_user FROM acs_students WHERE id_grupp='.$data['id_grupp'].' AND status=1'; $rez = $DB->QUR_SEL($sql); if($rez&&$rez[0]>0){ foreach($rez as $k => $student)if($k){ //Выберем учителя для студента из эллективных $sql1 = 'SELECT t.id_teacher,tc.id_user FROM acs_fk_order as o,acs_fk_timetable as t,acs_teachers as tc WHERE o.id_student='.$student['id_user'].' AND o.id_timetable=t.id AND t.id_teacher=tc.id'; $rez1 = $DB->QUR_SEL($sql1); if($rez1&&$rez1[0]>0){ $student['id_teacher'] = $rez1[1]['id_teacher']; $student['id_teacher_user'] = $rez1[1]['id_user']; }else{ $student['id_teacher'] = 0; $err='Не у всех студентов есть элективные дисциплины'; } $students[] = $student; } } if($err!='') return array('err'=>1,'msg'=>$err); if(count($students)){ //Создадим саму ведомость $fakultet = $_SESSION['user']['teacher']['fakultet']; //Таблица: acs_statement: id, date_create, fakultet, print_st, id_grupp $rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_statement (`date_create`, `fakultet`, `id_grupp`) VALUES ("'.time().'", "'.$fakultet.'", "'.$data['id_grupp'].'") '); if(!$rez['err']) { $id_statement = $rez['id']; $out['statement_rez'] = $rez; $out['statement_id'] = $id_statement; foreach($students as $k => $student){ //Таблица: acs_liquidation: id, id_student, id_teacher, fakultet, type, iup, name, control, date_create, date_end, semestr, mark, date_mark, id_stat, print, id_user $type = 2; //type:1=Досрочная 2=Первичная 3=Повторная 4=С комиссией $iup = 1; //iup: 0 / 1 if($data['discip']['ekz']==1) $control = 1; //control:1=Экзамен 2=Зачет 3=Зачет с оценкой if($data['discip']['zach']==1) $control = 2; //control:1=Экзамен 2=Зачет 3=Зачет с оценкой $date_create = time(); $date_end = $date_create + (60*60*24*7); $semestr = $data['discip']['sem']; $name = $data['discip']['discip']; $id_teacher = $student['id_teacher_user']; $sql = 'INSERT INTO '.$ST['dbpf'].'_liquidation (`id_student`, `id_teacher`, `fakultet`, `type`, `iup`, `name`, `control`, `date_create`, `date_end`, `semestr`, `id_stat`, `id_user`) VALUES ("'.$student['id_student'].'", "'.$id_teacher.'", "'.$fakultet.'", "'.$type.'", "'.$iup.'", "'.$name.'", "'.$control.'", "'.$date_create.'", "'.$date_end.'", "'.$semestr.'", "'.$id_statement.'", "'.$student['id_user'].'") '; $rez = $DB->QUR($sql); $out['sql'][] = $sql; } $out['err']=0; $out['msg']='Ведомость создана'; $out['id']=$id_statement; }else{ $out['err']=1; $out['msg']='Ошибка создания ведомости'; $out['id']=0; } }else{ $out['err']=1; $out['msg']='Нет студентов в группе'; $out['id']=0; } return $out; } function elekt_get_sections(){ GLOBAL $ST,$DB; $out = array(); //Нужно ограничить факультетами! $fakultet = $_SESSION['user']['teacher']['fakultet']; //echo '
'.print_r($_SESSION['user'],1).'
';exit(); $sql = 'SELECT id FROM acs_faculties WHERE name="'.$fakultet.'"'; $rez = $DB->QUR_SEL($sql); $id_fakultet = 0; if($rez&&$rez[0]>0) { $id_fakultet = $rez[1]['id']; } //$sql = 'SELECT fs.name,ft.id as ftid,ft.course,ft.count,u.fio FROM acs_fk_timetable as ft,acs_fk_section as fs,acs_teachers as t,acs_users as u WHERE ft.id_section=fs.id AND ft.id_teacher=t.id AND t.id_user=u.id'; $sql = 'SELECT fs.name,ft.id as ftid,ft.course,ft.count,u.fio,dt.day,dt.couple FROM acs_fk_timetable as ft,acs_fk_section as fs,acs_fk_details as dt,acs_teachers as t,acs_users as u WHERE ft.id_section=fs.id AND ft.id_teacher=t.id AND t.id_user=u.id AND (ft.fakultets LIKE "'.$id_fakultet.',%" OR ft.fakultets LIKE "%,'.$id_fakultet.',%" OR ft.fakultets LIKE "%,'.$id_fakultet.'") AND dt.id_timetable=ft.id'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
';exit(); if($rez&&$rez[0]>0){ foreach($rez as $k => $v){ $rez1 = $DB->QUR_SEL('SELECT COUNT(id) as kol FROM acs_fk_order WHERE id_timetable='.$v['ftid']); $v['stud'] = 0; if($rez1&&$rez1[0]>0) $v['stud']=$rez1[1]['kol']; $v['ostatok'] = $v['count']-$v['stud']; //if($v['ostatok']>0) { //$out[] = $v; //объеденим по крусу и по знаятиям запись if(!isset($out[$v['course']][$v['fio']][$v['name']])){ $out[$v['course']][$v['fio']][$v['name']] = $v; }else { if ($out[$v['course']][$v['fio']][$v['name']]['ostatok'] > $v['ostatok']) $out[$v['course']][$v['fio']][$v['name']] = $v; } //} } } //echo '
'.print_r($out,1).'
';exit(); return $out; } function elekt_get_disciplin(){ GLOBAL $ST,$DB; $out = array(); $gr = grupp_get_by_fak('',array('ОФО','ОЗФО')); //echo '
'.print_r($gr,1).'
';exit(); $grupps = $gr['grupps']; foreach($grupps as $k => $grupp){ foreach ($grupp['students'] as $k1 => $student){ //получим информацию об эллективных дисциплинах! $sql = 'SELECT fs.name,u.id,u.fio FROM acs_fk_order as fo,acs_fk_timetable as ft,acs_fk_section as fs,acs_teachers as t,acs_users as u WHERE fo.id_student='.$student['id'].' AND fo.id_timetable=ft.id AND ft.id_section=fs.id AND ft.id_teacher=t.id AND t.id_user=u.id'; $rez = $DB->QUR_SEL($sql); if($rez&&$rez[0]>0){ $grupps[$k]['students'][$k1]['elektive'] = $rez[1]; } } } return $grupps; } /** * Получаем группы факультета * @param $fakultet * @param $fo * @return array */ function grupp_get_by_fak($fakultet='',$fo=array()){ GLOBAL $ST,$DB; $out = array(); //Получить группы факультета if($fakultet=='') $fakultet = $_SESSION['user']['teacher']['fakultet']; //определяем айдишник факультета $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties WHERE name = "'.$fakultet.'" '; $rez = $DB->QUR_SEL($sql); $id_fak = $rez[1]['id']; //список групп $out['grupps'] = array(); //if(isset($_SESSION['liquidation_ved_filter_yearnab'])) { // $lll = ' AND year_start=' . (int)$_SESSION['liquidation_ved_filter_yearnab']; //}else{ // $lll = ' AND year_start=' . date('Y'); //} $lll = ' AND year_start>' . (date('Y')-5); $lll .= ' AND sokr NOT LIKE "%Выпуск%"'; $lll .= ' AND (sokr LIKE "%-1%" OR sokr LIKE "%-2%" OR sokr LIKE "%-3%")'; if(count($fo)){ $WH=array(); foreach ($fo as $k => $v) $WH[] = 'fo="'.$v.'"'; if(count($WH)) $lll .= ' AND ('.implode(' OR ',$WH).')'; } //SELECT fo.* FROM `acs_students` as st,acs_fk_order as fo WHERE (st.id_grupp=2805 OR st.id_grupp=2738 OR st.id_grupp=2787 OR st.id_grupp=2804) AND st.id_user=fo.id_student $sql = 'SELECT id,specialnost,sokr,fo,year_start FROM '.$ST['dbpf'].'_grupp WHERE id_facult = "'.$id_fak.'"'.$lll.' ORDER BY year_start,fo DESC'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
';exit(); if ($rez){ unset($_SESSION['elective_eror']['up']); foreach ($rez as $key => $val) if ($key){ $elekt_discip_is = elekt_check_up($val); if(count($elekt_discip_is)) {//выбираем только те группы у кого по планам есть элективные дисциплины //echo $val['sokr'].'
'.print_r($elekt_discip_is,1).'
'; $tmp = explode('-', $val['sokr']); $val['kurs'] = mb_substr($tmp[1], 0, 1); $val['students'] = array(); $sql_stud = 'SELECT *, status as status_st FROM ' . $ST['dbpf'] . '_students WHERE id_grupp = "' . $val['id'] . '" AND status=1'; $rez_stud = $DB->QUR_SEL($sql_stud); if ($rez_stud) foreach ($rez_stud as $key_st => $val_st) if ($key_st) { $info_user = get_user($val_st['id_user'], array('id', 'fio', 'status')); //echo '
'.print_r($info_user,1).'
'; if($info_user['status']>-1) $val['students'][] = $info_user; } foreach($elekt_discip_is as $k3 => $v3) $val['discip'][] = array('id'=>$v3,'name'=>$k3); $out['grupps'][] = $val; } } } return $out; } //Проверим есть ли у группы элективные дисциплины function elekt_check_up($grupp){ GLOBAL $ST,$DB; $out = array(); //$grupp = get_grupp($id); //информация о группе if ($grupp['fo'] == 'ОФО') $fo = 'очная'; elseif ($grupp['fo'] == 'ЗФО') $fo = 'заочная'; else $fo = 'очно-заочная'; $sql = 'SELECT id FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE shifr1 = "'.$grupp['specialnost'].'" AND godnap="'.$grupp['year_start'].'" AND forobu = "'.$fo.'" '; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; //$gr=array(2805,2738,2787,2804);//СТ-14 ОФО, СТ-13 ОФО, СТ-12 ОФО, СТ-11 ОФО //if(in_array($grupp['id'],$gr)){ // echo $grupp['id'].'
'.print_r($rez,1).'
'; //} //SELECT fo.* FROM `acs_students` as st,acs_fk_order as fo WHERE (st.id_grupp=2805 OR st.id_grupp=2738 OR st.id_grupp=2787 OR st.id_grupp=2804) AND st.id_user=fo.id_student $id_plans = array(); if ($rez) foreach ($rez as $key => $val) if ($key) $id_plans[] = $val['id']; if(count($id_plans)){ //теперь обходим дисциплины плана или планов, если их было несколько $sql_str = 'SELECT id,discip FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans IN ('.implode(',',$id_plans).') AND discip LIKE "%Элективные дисциплины%" GROUP BY discip ORDER BY discip LIMIT 500 '; $rez_str = $DB->QUR_SEL($sql_str); //if(in_array($grupp['id'],$gr)){ // echo $grupp['id'].'
'.print_r($rez_str,1).'
'; //} if ($rez_str){ foreach ($rez_str as $key => $val) if ($key){ $out[$val['discip']] = $val['id']; } } }else{ $_SESSION['elective_eror']['up'][] = 'Ошибка: '.$grupp['sokr'].': Не нашли плана в системе ИУП для '.$grupp['specialnost'].' '.$grupp['year_start'].' года '.$fo.' формы обучения '; } return $out; } /** * Получить элективные дисциплины - не верно * @return array */ function elekt_get_disciplin_old(){ GLOBAL $ST,$DB; $out = array(); $out['items']=array(); //$out['user']=$_SESSION['user']; //Array( // [user] => Array( // [id] => 3060 [status] => 0 [fio] => Галичева Мария Сергеевна [high_school] => 1 // [statuses] => Array( [21]=>21 [22]=>22 [23]=>23 [25]=>25 [50]=>50 [59]=>59 [78]=>78 ) // [teacher] => Array( // [id] => 264 // [zvanie] => Доцент // [fakultet] => Факультет аграрных технологий // [kafedra] => Технологии производства сельскохозяйственной продукции // ) // ) //) $fak['name'] = $_SESSION['user']['teacher']['fakultet']; $fak['kaf'] = $_SESSION['user']['teacher']['kafedra']; $sql = 'SELECT id FROM acs_faculties WHERE name="'.$DB->rescape($fak['name']).'"'; $rez = $DB->QUR_SEL($sql); //$out['sql1'] = $sql; $out['rez1'] = $rez; if($rez&&$rez[0]>0){ $fak['fak_id'] = $rez[1]['id']; //Получим записи на элективку $sql = 'SELECT id,id_section,id_teacher,course FROM acs_fk_timetable WHERE fakultets LIKE "'.$fak['fak_id'].',%" OR fakultets LIKE "%,'.$fak['fak_id'].',%" OR fakultets LIKE "%,'.$fak['fak_id'].'"'; $rez = $DB->QUR_SEL($sql); //$out['sql2'] = $sql; $out['rez2'] = $rez; if($rez&&$rez[0]>0){ foreach($rez as $k => $v)if($k){ //для каждого узнаем студента $tmp = array(); $rez1 = $DB->QUR_SEL('SELECT name FROM acs_fk_section WHERE id='.$v['id_section']); $section = ''; if($rez1&&$rez1[0]>0) $section = $rez1[1]['name']; $rez1 = $DB->QUR_SEL('SELECT t.id as id_teacher,u.id,u.fio FROM acs_teachers as t,acs_users as u WHERE t.id='.$v['id_teacher'].' AND t.id_user=u.id'); $teacher = ''; if($rez1&&$rez1[0]>0) $teacher = $rez1[1]; $teacher_id = $teacher['id_teacher']; $out[$teacher_id]['teacher'] = $teacher; if(!isset($out[$teacher_id]['items'])) $out[$teacher_id]['items'] = array(); //$sql1 = 'SELECT u.id,u.fio,st.id_grupp FROM acs_fk_order as fo,acs_students as st,acs_users as u WHERE fo.id_timetable='.$v['id'].' AND fo.id_student=st.id AND st.id_user=u.id'; $sql1 = 'SELECT u.id,u.fio,st.id_grupp FROM acs_fk_order as fo, acs_students as st, acs_users as u WHERE fo.id_timetable='.$v['id'].' AND fo.id_student=u.id AND st.id_user=u.id'; $rez1 = $DB->QUR_SEL($sql1); if($rez1&&$rez1[0]>0)foreach($rez1 as $k1 => $v1)if($k1){ //$teacher_id = $teacher['id_teacher']; //if(!isset($tmp['teacher'])) { // $tmp['teacher'] = $teacher; //} if(!isset($out[$teacher_id]['items'][$v1['id_grupp']]['grupp'])) { $out[$teacher_id]['items'][$v1['id_grupp']]['grupp'] = array(); $rez2 = $DB->QUR_SEL('SELECT id,sokr,fo FROM acs_grupp WHERE id='.$v1['id_grupp']); if($rez2&&$rez2[0]>0) $out[$teacher_id]['items'][$v1['id_grupp']]['grupp'] = $rez2[1]; } if(!isset($out[$teacher_id]['items'][$v1['id_grupp']]['section'])) { $out[$teacher_id]['items'][$v1['id_grupp']]['section'] = $section; } $out[$teacher_id]['items'][$v1['id_grupp']]['students'][] = $v1; } } } } return $out; } //ВЕДОМОСТИ if ($_GET['page'] == 'liquidation_ved'){ $mgs = 0; $fakultet = $_SESSION['user']['teacher']['fakultet']; //echo 'Ведутся работы, зайдите позже!'; exit(); //echo '
'.print_r($_GET,1).'
'; //https://eios.mkgtu.ru/dekanat/liquidation_ved/page2/ // $_GET=Array([dekanat] => [page] => liquidation_ved [des] => page2) //Сделаем навигацию по страницам $NAV_PAGE=0; if(isset($_GET['des'])&&strpos($_GET['des'],'page')!==false){ $NAV_PAGE=((int)str_replace('page','',$_GET['des'])-1); unset($_GET['des']); } //сформировать ведомость if (isset($_POST['add_ved'])){ $students = $_POST['students']; if(empty($students)){ //echo("Вы не выбрали."); } else{ $N = count($students); $grupp_v = $_POST['grupp_v']; $teacher = $_POST['teacher']; $fakultet = $_POST['fakultet']; $type = $_POST['type']; $iup = $_POST['iup']; $name = $_POST['name']; if($name=='') $name = $DB->rescape($_POST['name_manual']); $control = $_POST['control']; $date_end = strtotime($_POST['date_end']); $semestr = $_POST['semestr']; $date_create = date("U"); $rez = $DB->QUR_SEL('INSERT INTO '.$ST['dbpf'].'_statement (`date_create`, `fakultet`, `id_grupp`) VALUES ("'.$date_create.'", "'.$fakultet.'", "'.$grupp_v.'") '); $id = mysql_insert_id(); write_message($teacher, '[ОПОВЕЩЕНИЕ]
У Вас появилась новая ведомость по дисциплине '.$name); save_logs('Создана зачетно-экзаменационная ведомость №'.$id); $msg = 2; for($i=0; $i < $N; $i++){ $info_student = get_new_student($students[$i]); $rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_liquidation (`id_student`, `id_teacher`, `fakultet`, `type`, `iup`, `name`, `control`, `date_create`, `date_end`, `semestr`, `id_stat`, `id_user`) VALUES ("'.$students[$i].'", "'.$teacher.'", "'.$fakultet.'", "'.$type.'", "'.$iup.'", "'.$name.'", "'.$control.'", "'.$date_create.'", "'.$date_end.'", "'.$semestr.'", "'.$id.'", "'.$info_student['id_user'].'") '); } } } //редактировать ведомость if (isset($_POST['edt_ved'])){ $students = $_POST['students']; if(empty($students)){ //echo("Вы не выбрали."); } else{ $N = count($students); $grupp_v = $_POST['grupp_v']; $teacher = $_POST['teacher']; $fakultet = $_POST['fakultet']; $type = $_POST['type']; $iup = $_POST['iup']; $name = $_POST['name']; $control = $_POST['control']; $date_end = strtotime($_POST['date_end']); $semestr = $_POST['semestr']; $date_create = date("U"); //echo '
'.print_r($_POST,1).'
'; exit(); //Array( // [fakultet] => Лечебный факультет [grupp_v] => 2270 [numgrupp] => 1 // [students] => Array( [0] => 24544 [1] => 19338 [2] => 24381 [3] => 29502 ) // [teacher] => 3018 [type] => 3 [iup] => 0 [name] => Информационные технологии в медицине // [control] => 2 [date_end] => 2023-09-11 [semestr] => 4 // [edt_ved] => Отредактировать ведомость // [statement_id] => 55737 [liquidation_id] => 748240;748241;748239;748242; //) $statement_id = (int)$_POST['statement_id']; $sql = 'UPDATE '.$ST['dbpf'].'_statement SET `fakultet`="'.$DB->rescape($fakultet).'",`grupp_v`='.$grupp_v.' WHERE id='.$statement_id; //$rez = $DB->QUR($sql); save_logs('Отредактирована зачетно-экзаменационная ведомость №'.$statement_id); $msg = 3; //выбираем студентов которые ранее были ведомости $liquidation_old=array(); $liquidation_oldteach=array(); $sql = 'SELECT id,id_student,id_teacher FROM `'.$ST['dbpf'].'_liquidation` WHERE `id_stat`='.$statement_id; $rez = $DB->QUR_SEL($sql); if($rez){ foreach($rez as $k => $v)if($k){ $liquidation_old[$v['id_student']] = $v['id']; $liquidation_oldteach[$v['id_student']] = $v['id_teacher']; } } $liquidation_cmp=array(); foreach($students as $k => $id_student){ if(isset($liquidation_old[$id_student])){//новый студент есть в старой выборке, обновляем $id_st = $liquidation_old[$id_student]; $id_teacher = $liquidation_oldteach[$id_student]; $rez = $DB->QUR('UPDATE '.$ST['dbpf'].'_liquidation SET `id_teacher`="'.$id_teacher.'",`fakultet`="'.$fakultet.'",`type`="'.$type.'",`iup`="'.$iup.'",`name`="'.$name.'",`control`="'.$control.'",`date_end`="'.$date_end.'",`semestr`="'.$semestr.'" WHERE id='.$id_st); unset($liquidation_old[$id_student]); }else{//студента нет в старой выборке, добавляем $info_student = get_new_student($id_student); $rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_liquidation (`id_student`, `id_teacher`, `fakultet`, `type`, `iup`, `name`, `control`, `date_create`, `date_end`, `semestr`, `id_stat`, `id_user`) VALUES ("'.$id_student.'", "'.$teacher.'", "'.$fakultet.'", "'.$type.'", "'.$iup.'", "'.$name.'", "'.$control.'", "'.$date_create.'", "'.$date_end.'", "'.$semestr.'", "'.$statement_id.'", "'.$info_student['id_user'].'") '); } } //21.12.2023 убрал т.к. удаляются ведомости //if(count($liquidation_old)){//удалим направления которые ошибочные были и остались после редактирования // foreach($liquidation_old as $id_stud => $id_liq){ // $rez = $DB->QUR('DELETE FROM '.$ST['dbpf'].'_liquidation WHERE id='.$id_liq.' LIMIT 1'); // } //} } } //ВСЕ ФАКУЛЬТЕТЫ $faculties = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val){ $faculties[] = $val; } } //ГРУППЫ $grupp = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE NOT (sokr LIKE "%Выпуск%") ORDER BY sokr,kurs'; //если поиск по группе if (isset($_POST['search_grupp'])) $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE sokr = "'.$_POST['search_grupp'].'" ORDER BY sokr,kurs'; $rez=$DB->QUR_SEL($sql); if($rez){ foreach($rez as $key => $val){ $grupp[] = $val; } } //активные преподаватели $teachers = array(); if(!isset($_SESSION['dek_liq_ved']['cache']['teachers'])) { $sql = 'SELECT teach.*, us.* FROM ' . $ST['dbpf'] . '_teachers as teach, ' . $ST['dbpf'] . '_users as us WHERE NOT (teach.status = "-1") AND NOT (us.status = "-1") AND us.id = teach.id_user '; $rez = $DB->QUR_SEL($sql); if ($rez) { foreach ($rez as $key => $val) if ($key) { $teachers[] = $val; } } $_SESSION['dek_liq_ved']['cache']['teachers'] = $teachers; }else{ $teachers = $_SESSION['dek_liq_ved']['cache']['teachers']; } //ВСЕ ГРУППЫ $all_group = array(); if(!isset($_SESSION['dek_liq_ved']['cache']['grupp'])) { $sql = 'SELECT * FROM ' . $ST['dbpf'] . '_grupp ORDER BY sokr, kurs, fo '; $rez = $DB->QUR_SEL($sql); if ($rez) foreach ($rez as $key => $val) { $all_group[] = $val; } $_SESSION['dek_liq_ved']['cache']['grupp'] = $all_group; }else{ $all_group = $_SESSION['dek_liq_ved']['cache']['grupp']; } //ведомости факультета на этот семестра $statements = array(); $NAV_LIM = 100; $NAV_START = $NAV_PAGE*$NAV_LIM; $NAV_SQL = ' LIMIT '.$NAV_START.','.$NAV_LIM; //нажали сбросить поиск if(isset($_POST['clear_search'])) unset($_SESSION['dek_liq_ved']); //запомним поиск для страничной навигации if (!empty($_POST['search_predmet'])) $_SESSION['dek_liq_ved']['search_predmet'] = $_POST['search_predmet']; if (!empty($_POST['search_semestr'])) $_SESSION['dek_liq_ved']['search_semestr'] = $_POST['search_semestr']; if (!empty($_POST['search_group'])) $_SESSION['dek_liq_ved']['search_group'] = $_POST['search_group']; //если эти два значения совпадают, то отображаем, что ведомость заполнена полностью, если второе значение отлично от нуля -неполностью заполнена, если второе значение = 0, ничего не выводим $lll = ' AND liq.date_end>='.(time()-(3600*24*100)); $sql = 'SELECT st.*, st.print_st as print_st, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.fakultet = "'.$fakultet.'" AND liq.id_stat = st.id AND print_st = 0 '.$lll.' GROUP BY liq.id_stat ORDER BY st.date_create DESC';//' LIMIT 100'; liq.id_student //$sql = 'SELECT st.*, st.print_st as print_st, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as stu, '.$ST['dbpf'].'_users as u WHERE liq.id_student=stu.id AND u.id=stu.id_user AND st.fakultet = "'.$fakultet.'" AND liq.id_stat = st.id AND print_st = 0 '.$lll.' GROUP BY liq.id_stat ORDER BY u.fio,st.date_create DESC';//' LIMIT 100'; liq.id_student //если поиск по названию дисциплины if (isset($_SESSION['dek_liq_ved']['search_predmet'])) { $sql = 'SELECT st.*, st.print_st as print_st, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.fakultet = "'.$fakultet.'" AND liq.id_stat = st.id AND liq.name LIKE "%'.$_SESSION['dek_liq_ved']['search_predmet'].'%" GROUP BY liq.id_stat ORDER BY st.date_create DESC';//' LIMIT 150'; } if (isset($_SESSION['dek_liq_ved']['search_semestr'])) { $sql = 'SELECT st.*, st.print_st as print_st, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.fakultet = "'.$fakultet.'" AND liq.id_stat = st.id AND liq.semestr = "'.$_SESSION['dek_liq_ved']['search_semestr'].'" GROUP BY liq.id_stat ORDER BY st.date_create DESC';//' LIMIT 150'; } if (isset($_SESSION['dek_liq_ved']['search_group'])) { $sql = 'SELECT st.*, st.print_st as print_st, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.fakultet = "'.$fakultet.'" AND liq.id_stat = st.id AND st.id_grupp = "'.$_SESSION['dek_liq_ved']['search_group'].'" GROUP BY liq.id_stat ORDER BY st.date_create DESC';//' LIMIT 150'; //$sql = 'SELECT st.*, st.print_st as print_st, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as stu, '.$ST['dbpf'].'_users as u WHERE liq.id_student=stu.id AND u.id=stu.id_user AND st.fakultet = "'.$fakultet.'" AND liq.id_stat = st.id AND st.id_grupp = "'.$_SESSION['dek_liq_ved']['search_group'].'" GROUP BY liq.id_stat ORDER BY u.fio,st.date_create DESC';//' LIMIT 150'; } //Узнаем сколько в выборке записей! $nav_sql = str_replace('st.*, st.print_st as print_st, liq.*','COUNT(st.id) as kol',$sql); $rez_sql = $DB->QUR_SEL($nav_sql); $NAV_ALL= 0; if ($rez_sql){ $NAV_ALL= $rez_sql[0]; } $sql .= $NAV_SQL;//прикрутим ЛИМИТЫ $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
';exit(); //[1] => Array( [id] => 689598 [date_create] => 1685348421 [fakultet] => Факультет информационных систем в экономике и юриспруденции // [print_st] => 0 [id_grupp] => 2387 [id_student] => 4667 [id_teacher] => 2090 [type] => 2 [iup] => 0 [name] => Ознакомительная практика // [control] => 2 [date_end] => 1693170000 [semestr] => 2 [mark] => удовлетворительно [date_mark] => 1693912151 // [id_stat] => 51149 [print] => 0 [id_user] => 5639 // ) if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['date_create'] = date('d.m.Y', $val['date_create']); $val['date_end'] = date('d.m.Y', $val['date_end']); //$val['print_st'] = $val['print_st']; $id = $val['id_stat']; $val['students'] = array(); switch ($val['control']){ case 1: $val['control'] = 'экзамен'; break; case 2: $val['control'] = 'зачет'; break; case 3: $val['control'] = 'курсовая работа'; break; case 4: $val['control'] = 'курсовой проект'; break; case 5: $val['control'] = 'отчет по практике'; break; case 6: $val['control'] = 'зачет с оценкой'; break; } $val['teacher'] = get_user($val['id_teacher']); $val['all'] = 0; //общее количество студентов, подлежающих оцениванию на экзамене/зачете $val['marked'] = 0; //количество оценененных студентов $sql_liq = 'SELECT liq.*, st.* FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as st WHERE liq.id_stat = "'.$id.'" AND liq.id_student = st.id'; $rez_liq = $DB->QUR_SEL($sql_liq); if ($rez_liq){ $sem = 0; foreach ($rez_liq as $kk => $val_liq) if ($kk){ $val['all'] += 1; //увеличиваем общее количество студентов, присутствующих на экзамене/зачете if ($val_liq['mark'] != NULL) $val['marked'] += 1; //увеличиваем количество оцененных студентов на данном экзамене/зачете $student = get_user($val_liq['id_user']); $val['students'][]['fio'] = $student['fio']; $sem = $val_liq['semestr']; } $info_group = get_student($val_liq['id_user']); //$val['gruppa'] = $info_group['sokr'].'-'.$info_group['kurs'].$info_group['num_grupp']; //$val['gruppa'] = $info_group['sokr'].'-'.round($sem/2).$info_group['num_grupp']; $val['gruppa'] = $info_group['sokr']; $val['fo'] = $info_group['fo']; } if(isset($_SESSION['liquidation_ved_filter_fo'])){ if($_SESSION['liquidation_ved_filter_fo']=='ofo'&&$val['fo'] == "ОФО") $statements[] = $val; if($_SESSION['liquidation_ved_filter_fo']=='zfo'&&$val['fo'] == "ЗФО") $statements[] = $val; if($_SESSION['liquidation_ved_filter_fo']=='ozfo'&&$val['fo'] == "ОЗФО") $statements[] = $val; $smarty->assign('filter_fo', $_SESSION['liquidation_ved_filter_fo']); }else { //если зам декана по ОФО if (isset($_SESSION['user']['statuses'][31])) { if ($val['fo'] == "ОФО") $statements[] = $val; } //если зам декана по ЗФО elseif (isset($_SESSION['user']['statuses'][32])) { if ($val['fo'] == "ЗФО") $statements[] = $val; } //если зам декана по ОЗФО elseif (isset($_SESSION['user']['statuses'][33])) { if ($val['fo'] == "ОЗФО") $statements[] = $val; } //если зам декана просто без разделения на формы обучения else $statements[] = $val; $smarty->assign('filter_fo', 'all'); } } } $smarty->assign('elektivs',elekt_get_disciplin()); $smarty->assign('elektivs_errors',$_SESSION['elective_eror']); //$smarty->assign('elektivs_sections',elekt_get_sections()); $smarty->assign('nav_all', $NAV_ALL); $smarty->assign('nav_cur', ($NAV_PAGE+1)); $smarty->assign('nav_lim', $NAV_LIM); if (isset($_GET['des'])){ $id = $_GET['des']; $sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE `id` = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); switch ($rez[1]['control']){ case 1: $control = 'экзамена'; break; case 2: $control = 'зачета'; break; case 3: $control = 'курсовой работы'; break; case 4: $control = 'курсового проекта'; break; case 5: $control = 'отчета по практике'; break; case 6: $control = 'зачета с оценкой'; break; } switch ($rez[1]['type']){ case 1: $type = 'досрочную'; break; case 2: $type = 'первичную'; break; case 3: $type = 'повторную'; break; case 4: $type = 'с комиссией'; break; } switch ($rez[1]['iup']){ case 0: $iup = 'УП'; break; case 1: $iup = 'ИУП'; break; } /*$val['date_create'] = date('d.m.Y', $val['date_create']); $val['date_end'] = date('d.m.Y', $val['date_end']); $val['date_mark'] = date('d.m.Y', $val['date_mark']);*/ //инфа о студенте $id_student = $rez[1]['id_student']; $sql_stud = 'SELECT us.*, stud.* FROM '.$ST['dbpf'].'_students as stud, '.$ST['dbpf'].'_users as us WHERE stud.id = "'.$id_student.'" AND us.id = stud.id_user '; $rez_stud = $DB->QUR_SEL($sql_stud); $teacher = get_user($rez[1]['id_teacher']); $grupp0 = get_grupp($rez_stud[1]['id_grupp']); if ($grupp0['fo'] == "ОФО") $grupp['fo'] = 'очная'; elseif ($grupp0['fo'] == "ЗФО") $grupp['fo'] = "заочная"; else $grupp['fo'] = "очно-заочная"; $smarty->assign('day_create', date('d', $rez[1]['date_create'])); $smarty->assign('month_create', numberToMonth(date('m', $rez[1]['date_create']))); $smarty->assign('year_create', date('Y', $rez[1]['date_create'])); $smarty->assign('student_fio', $rez_stud[1]['fio']); $smarty->assign('student_gr', $rez_stud[1]['num_grupp']); //$smarty->assign('student_grupp', $rez_stud[1]['fio']); $smarty->assign('day_end', date('d', $rez[1]['date_end'])); $smarty->assign('month_end', numberToMonth(date('m', $rez[1]['date_end']))); $smarty->assign('year_end', date('Y', $rez[1]['date_end'])); $smarty->assign('day_mark', date('d', $rez[1]['date_mark'])); $smarty->assign('month_mark', numberToMonth(date('m', $rez[1]['date_mark']))); $smarty->assign('year_mark', date('Y', $rez[1]['date_mark'])); $smarty->assign('teacher', $teacher['fio']); $smarty->assign('mark', $rez[1]['mark']); $smarty->assign('name', $rez[1]['name']); $smarty->assign('sem', $rez[1]['semestr']); $smarty->assign('print', $rez[1]['print']); $smarty->assign('type', $type); $smarty->assign('iup', $iup); $smarty->assign('grupp', $grupp); $smarty->assign('fakultet', $fakultet); $smarty->assign('stat', $rez[1]['id_stat']); if ($rez[1]['id_stat'] == 0) { //направление //Распечатали $sql = 'UPDATE '.$ST['dbpf'].'_liquidation SET print = "1" WHERE id = "'.$id.'" '; $rez = $DB->QUR($sql); //на вывод $smarty->assign('control', $control); $smarty->display('tpl_teacher_liquidation_print_nap.html'); } else { //ведомость switch ($rez[1]['control']){ case 1: $control = 'экзамен'; break; case 2: $control = 'зачет'; break; case 3: $control = 'курсовая работа'; break; case 4: $control = 'курсовой проект'; break; case 5: $control = 'отчет по практике'; break; case 6: $control = 'зачет с оценкой'; break; } $sql_list = 'SELECT liq.*, st.* FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as st WHERE liq.id_stat = "'.$rez[1]['id_stat'].'" AND st.id = liq.id_student '; //$sql_list = 'SELECT liq.*, st.*, stat.* FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_statement as stat WHERE liq.id_stat = "'.$rez[1]['id_stat'].'" AND st.id = liq.id_student AND liq.id_stat = stat.id AND stat.id_grupp = "'.$rez_stud[1]['id_grupp'].'" '; $rez_list = $DB->QUR_SEL($sql_list); $list_student = array(); $count_otl = 0; $count_hor = 0; $count_udov = 0; $count_neud = 0; $count_neyvka = 0; $id_stat = 0; if ($rez_list){ $i = 0; foreach ($rez_list as $key => $val) if ($key){ $i++; $id_stat = $val['id_stat']; $val['i'] = $i; $student = get_user($val['id_user']); $val['fio'] = $student['fio']; if (($val['mark'] == 'отлично')||($val['mark'] == 'зачтено')) $count_otl++; if (($val['mark'] == 'хорошо')) $count_hor++; if (($val['mark'] == 'удовлетворительно')) $count_udov++; if (($val['mark'] == 'неудовлетворительно')||($val['mark'] == 'не зачтено')) $count_neud++; if (($val['mark'] == 'не явился')) $count_neyvka++; $list_student[] = $val; } } //Распечатали $sql = 'UPDATE '.$ST['dbpf'].'_statement SET print_st = "1" WHERE id = "'.$id_stat.'" '; $rez = $DB->QUR($sql); //ВАЖНО сортировка списка студентов /***********/ $smarty->assign('count', $i); $smarty->assign('count_otl', $count_otl); $smarty->assign('count_hor', $count_hor); $smarty->assign('count_udov', $count_udov); $smarty->assign('count_neud', $count_neud); $smarty->assign('count_neyvka', $count_neyvka); $smarty->assign('list_student', $list_student); $smarty->assign('control', $control); $smarty->display('tpl_teacher_liquidation_print_ved.html'); } exit; } else{ $smarty->assign('all_group', $all_group); $smarty->assign('fakultet', $fakultet); $smarty->assign('faculties', $faculties); $smarty->assign('naprs', $napr); $smarty->assign('statements', $statements); $smarty->assign('teachers', $teachers); $smarty->assign('grupps', $grupp); $smarty->assign('msg', $msg); $smarty->assign('status', $_SESSION['user']['status']); $maincontent = $smarty->fetch('tpl_teacher_liquidation_ved.html'); } } //НАПРАВЛЕНИЯ if (($_GET['page'] == 'liquidation')||($_GET['page'] == 'liquidationView')){ $mgs = 0; $fakultet = $_SESSION['user']['teacher']['fakultet']; //сформировать направление if (isset($_POST['add_liq'])){ $student = $_POST['student']; $teacher = $_POST['teacher']; $fakultet = $_POST['fakultet']; $type = $_POST['type']; $iup = $_POST['iup']; $name = $_POST['name']; $control = $_POST['control']; //echo '
'.print_r($_POST,1).'
';exit(); //Array( // [grupp] => 159 [student] => 28792 [teacher] => 0 // [fakultet] => Факультет информационных систем в экономике и юриспруденции // [type] => 1 [iup] => 1 [name] => 12323 [control] => 1 // [date_create] => 2023-09-07 [date_end] => // [semestr] => 1 // [add_liq] => Сформировать направление //) if($_POST['date_create']!='') { $tmp = explode('-',$_POST['date_create']); if(count($tmp)==3) $date_create = strtotime($_POST['date_create']); else $date_create = time(); }else $date_create = time(); $date_end = strtotime($_POST['date_end']); $semestr = $_POST['semestr']; $info_student = get_new_student($student); //$date_create = date("U"); //проверяем есть ли такое направление в системе уже $rez_is = $DB->QUR_SEL('SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_student = "'.$student.'" AND id_teacher = "'.$teacher.'" AND type = "'.$type.'" AND iup = "'.$iup.'" AND name = "'.$name.'" AND control = "'.$control.'" AND semestr = "'.$semestr.'" AND date_end = "'.$date_end.'" AND id_stat = 0 LIMIT 1'); if ($rez_is[0] > 0) $msg = -1; //ошибка при создании направление else{ //$rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_liquidation (`id_student`, `id_teacher`, `fakultet`, `type`, `iup`, `name`, `control`, `date_create`, `date_end`, `semestr`) VALUES ("'.$student.'", "'.$teacher.'", "'.$fakultet.'", "'.$type.'", "'.$iup.'", "'.$name.'", "'.$control.'", "'.$date_create.'", "'.$date_end.'", "'.$semestr.'") '); $rez = $DB->QUR('INSERT INTO '.$ST['dbpf'].'_liquidation (`id_student`, `id_teacher`, `fakultet`, `type`, `iup`, `name`, `control`, `date_create`, `date_end`, `semestr`, `id_user`) VALUES ("'.$student.'", "'.$teacher.'", "'.$fakultet.'", "'.$type.'", "'.$iup.'", "'.$name.'", "'.$control.'", "'.$date_create.'", "'.$date_end.'", "'.$semestr.'", "'.$info_student['id_user'].'") '); $date_end = date('d.m.Y', $date_end); write_message($teacher, '[ОПОВЕЩЕНИЕ]
У Вас появилось новое направление по дисциплине '.$name.'. Срок действия направления до '.$date_end); save_logs('Создано новое направление для студента '.$student.' и преподавателя '.$teacher.' по дисциплине '.$name); $msg = 1; } } //ГРУППЫ $grupp = array(); if(!isset($_SESSION['dek_liq_ved']['cache']['grupp'])) { $sql = 'SELECT * FROM ' . $ST['dbpf'] . '_grupp ORDER BY sokr,kurs'; $rez = $DB->QUR_SEL($sql); if ($rez) { foreach ($rez as $key => $val) { $grupp[] = $val; } } $_SESSION['dek_liq_ved']['cache']['grupp'] = $grupp; }else{ $grupp = $_SESSION['dek_liq_ved']['cache']['grupp']; } //активные преподаватели $teachers = array(); if(!isset($_SESSION['dek_liq_ved']['cache']['teachers'])) { $sql = 'SELECT teach.*, us.* FROM ' . $ST['dbpf'] . '_teachers as teach, ' . $ST['dbpf'] . '_users as us WHERE NOT (teach.status = "-1") AND NOT (us.status = "-1") AND us.id = teach.id_user '; $rez = $DB->QUR_SEL($sql); if ($rez) { foreach ($rez as $key => $val) if ($key) { $teachers[] = $val; } } $_SESSION['dek_liq_ved']['cache']['teachers'] = $teachers; }else{ $teachers = $_SESSION['dek_liq_ved']['cache']['teachers']; } //направления факультета $napr = array(); if(isset($_SESSION['liquidation_ved_filter_year'])) { $year_start = mktime(0,0,0,1,1,$_SESSION['liquidation_ved_filter_year']); $year_end = mktime(23,59,59,12,31,$_SESSION['liquidation_ved_filter_year']); $lll = ' AND (liq.date_create>=' . $year_start . ' AND liq.date_create<=' . $year_end . ')'; $smarty->assign('filter_year', $_SESSION['liquidation_ved_filter_year']); }else{ $_SESSION['liquidation_ved_filter_year'] = date('Y'); $year_start = mktime(0,0,0,1,1,date('Y')); $year_end = mktime(23,59,59,12,31,date('Y')); $lll = ' AND (liq.date_create>=' . $year_start . ' AND liq.date_create<=' . $year_end . ')'; $smarty->assign('filter_year', $_SESSION['liquidation_ved_filter_year']); } if($fakultet=='Технологический факультет') { $sql = 'SELECT liq.*, liq.id as id_liq, us.* FROM ' . $ST['dbpf'] . '_liquidation as liq, ' . $ST['dbpf'] . '_users as us WHERE liq.fakultet = "' . $fakultet . '" AND liq.id_teacher = us.id AND liq.id_stat = 0 ' . $lll . ' ORDER BY id_liq DESC '; }else { $sql = 'SELECT liq.*, liq.id as id_liq, us.* FROM ' . $ST['dbpf'] . '_liquidation as liq, ' . $ST['dbpf'] . '_users as us WHERE liq.fakultet = "' . $fakultet . '" AND liq.id_teacher = us.id AND liq.id_stat = 0 ORDER BY id_liq DESC '; } $rez = $DB->QUR_SEL($sql); if ($rez){ $i = 0; foreach ($rez as $key => $val) if ($key){ $i++; $val['i'] = $i; $val['date_create'] = date('d.m.Y', $val['date_create']); $val['date_end'] = date('d.m.Y', $val['date_end']); $val['date_mark'] = date('d.m.Y', $val['date_mark']); switch ($val['control']){ case 1: $val['control'] = 'экзамен'; break; case 2: $val['control'] = 'зачет'; break; case 3: $val['control'] = 'курсовая работа'; break; case 4: $val['control'] = 'курсовой проект'; break; case 5: $val['control'] = 'отчет по практике'; break; case 6: $val['control'] = 'зачет с оценкой'; break; } $id_student = $val['id_student']; //$sql_user = 'SELECT st.*, us.* FROM '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE st.id = "'.$id_student.'" AND us.id = st.id_user'; $sql_user = 'SELECT us.id, us.fio FROM '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE st.id = "'.$id_student.'" AND us.id = st.id_user';// AND us.status>-1'; //26122023 добавил статус пользователя $rez_user = $DB->QUR_SEL($sql_user); $val['id_student'] = $rez_user[1]['fio']; $info_group = get_student($rez_user[1]['id']); //$val['gruppa'] = $info_group['sokr']; $val['fo'] = $info_group['fo']; $val['grupp'] = $info_group; if(isset($_SESSION['liquidation_ved_filter_fo'])) { if ($_SESSION['liquidation_ved_filter_fo'] == 'ofo' && $val['fo'] == "ОФО") $napr[] = $val; if ($_SESSION['liquidation_ved_filter_fo'] == 'zfo' && $val['fo'] == "ЗФО") $napr[] = $val; if ($_SESSION['liquidation_ved_filter_fo'] == 'ozfo' && $val['fo'] == "ОЗФО") $napr[] = $val; $smarty->assign('filter_fo', $_SESSION['liquidation_ved_filter_fo']); }else { $napr[] = $val; $smarty->assign('filter_fo', 'all'); } } } $napr_null=array(); if($fakultet=='Технологический факультет') { $sql = 'SELECT liq.*, liq.id as id_liq, us.* FROM ' . $ST['dbpf'] . '_liquidation as liq, ' . $ST['dbpf'] . '_users as us WHERE liq.fakultet = "' . $fakultet . '" AND liq.id_teacher = us.id AND liq.id_stat = 0 AND liq.date_create="" ORDER BY id_liq DESC '; $rez = $DB->QUR_SEL($sql); if ($rez){ $i = 0; foreach ($rez as $key => $val) if ($key){ $i++; $val['i'] = $i; $val['date_create'] = date('d.m.Y', $val['date_create']); $val['date_end'] = date('d.m.Y', $val['date_end']); $val['date_mark'] = date('d.m.Y', $val['date_mark']); switch ($val['control']){ case 1: $val['control'] = 'экзамен'; break; case 2: $val['control'] = 'зачет'; break; case 3: $val['control'] = 'курсовая работа'; break; case 4: $val['control'] = 'курсовой проект'; break; case 5: $val['control'] = 'отчет по практике'; break; case 6: $val['control'] = 'зачет с оценкой'; break; } $id_student = $val['id_student']; //$sql_user = 'SELECT st.*, us.* FROM '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE st.id = "'.$id_student.'" AND us.id = st.id_user'; $sql_user = 'SELECT us.id, us.fio FROM '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE st.id = "'.$id_student.'" AND us.id = st.id_user'; $rez_user = $DB->QUR_SEL($sql_user); $val['id_student'] = $rez_user[1]['fio']; $info_group = get_student($rez_user[1]['id']); //$val['gruppa'] = $info_group['sokr']; $val['fo'] = $info_group['fo']; $val['grupp'] = $info_group; if(isset($_SESSION['liquidation_ved_filter_fo'])) { if ($_SESSION['liquidation_ved_filter_fo'] == 'ofo' && $val['fo'] == "ОФО") $napr_null[] = $val; if ($_SESSION['liquidation_ved_filter_fo'] == 'zfo' && $val['fo'] == "ЗФО") $napr_null[] = $val; if ($_SESSION['liquidation_ved_filter_fo'] == 'ozfo' && $val['fo'] == "ОЗФО") $napr_null[] = $val; $smarty->assign('filter_fo', $_SESSION['liquidation_ved_filter_fo']); }else { $napr_null[] = $val; $smarty->assign('filter_fo', 'all'); } } } } $smarty->assign('napr_null', $napr_null); if (isset($_GET['des'])){ $id = $_GET['des']; $sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE `id` = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); switch ($rez[1]['control']){ case 1: $control = 'экзамена'; break; case 2: $control = 'зачета'; break; case 3: $control = 'курсовой работы'; break; case 4: $control = 'курсового проекта'; break; case 5: $control = 'отчета по практике'; break; case 6: $control = 'зачета с оценкой'; break; } switch ($rez[1]['type']){ case 1: $type = 'досрочную'; break; case 2: $type = 'первичную'; break; case 3: $type = 'повторную'; break; case 4: $type = 'с комиссией'; break; } switch ($rez[1]['iup']){ case 0: $iup = 'УП'; break; case 1: $iup = 'ИУП'; break; } /*$val['date_create'] = date('d.m.Y', $val['date_create']); $val['date_end'] = date('d.m.Y', $val['date_end']); $val['date_mark'] = date('d.m.Y', $val['date_mark']);*/ //инфа о студенте $id_student = $rez[1]['id_student']; $sql_stud = 'SELECT us.*, stud.* FROM '.$ST['dbpf'].'_students as stud, '.$ST['dbpf'].'_users as us WHERE stud.id = "'.$id_student.'" AND us.id = stud.id_user '; $rez_stud = $DB->QUR_SEL($sql_stud); $teacher = get_user($rez[1]['id_teacher']); $grupp = get_grupp($rez_stud[1]['id_grupp']); //if ($grupp['fo'] == 'оч') $grupp['fo'] = 'очная'; elseif ($grupp['fo'] == 'заоч') $grupp['fo'] = "заочная"; else $grupp['fo'] = "очно-заочная"; $smarty->assign('day_create', date('d', $rez[1]['date_create'])); $smarty->assign('month_create', numberToMonth(date('m', $rez[1]['date_create']))); $smarty->assign('year_create', date('Y', $rez[1]['date_create'])); $smarty->assign('student_fio', $rez_stud[1]['fio']); $smarty->assign('student_gr', $rez_stud[1]['num_grupp']); //$smarty->assign('student_grupp', $rez_stud[1]['fio']); $smarty->assign('day_end', date('d', $rez[1]['date_end'])); $smarty->assign('month_end', numberToMonth(date('m', $rez[1]['date_end']))); $smarty->assign('year_end', date('Y', $rez[1]['date_end'])); $smarty->assign('day_mark', date('d', $rez[1]['date_mark'])); $smarty->assign('month_mark', numberToMonth(date('m', $rez[1]['date_mark']))); $smarty->assign('year_mark', date('Y', $rez[1]['date_mark'])); $smarty->assign('teacher', $teacher['fio']); $smarty->assign('mark', $rez[1]['mark']); $smarty->assign('name', $rez[1]['name']); $smarty->assign('sem', $rez[1]['semestr']); $smarty->assign('print', $rez[1]['print']); $smarty->assign('type', $type); $smarty->assign('iup', $iup); $smarty->assign('grupp', $grupp); $smarty->assign('fakultet', $fakultet); $smarty->assign('id', $id); $smarty->assign('stat', $rez[1]['id_stat']); if ($rez[1]['id_stat'] == 0) { //направление //Распечатали $sql = 'UPDATE '.$ST['dbpf'].'_liquidation SET print = "1" WHERE id = "'.$id.'" '; $rez = $DB->QUR($sql); //на вывод $smarty->assign('control', $control); $smarty->display('tpl_teacher_liquidation_print_nap.html'); } else { //ведомость switch ($rez[1]['control']){ case 1: $control = 'экзамен'; break; case 2: $control = 'зачет'; break; case 3: $control = 'курсовая работа'; break; case 4: $control = 'курсовой проект'; break; case 5: $control = 'отчет по практике'; break; case 6: $control = 'зачет с оценкой'; break; } //echo($grupp); //$sql_list = 'SELECT liq.*, st.* FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as st WHERE liq.id_stat = "'.$rez[1]['id_stat'].'" AND st.id = liq.id_student '; $sql_list = 'SELECT liq.*, st.* FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE liq.id_stat = "'.$rez[1]['id_stat'].'" AND st.id = liq.id_student AND st.id_user=us.id AND us.status>-1'; $rez_list = $DB->QUR_SEL($sql_list); //echo $sql_list.'
'.print_r($rez_list,1).'
'; $list_student = array(); $count_otl = 0; $count_hor = 0; $count_udov = 0; $count_neud = 0; $count_neyvka = 0; $teachersList=array(); $id_stat = 0; if ($rez_list){ $i = 0; foreach ($rez_list as $key => $val) if ($key){ $i++; $id_stat = $val['id_stat']; $val['i'] = $i; $student = get_user($val['id_user']); $val['fio'] = $student['fio']; if (($val['mark'] == 'отлично')||($val['mark'] == 'зачтено')) $count_otl++; if (($val['mark'] == 'хорошо')) $count_hor++; if (($val['mark'] == 'удовлетворительно')) $count_udov++; if (($val['mark'] == 'неудовлетворительно')||($val['mark'] == 'не зачтено')) $count_neud++; if (($val['mark'] == 'не явился')) $count_neyvka++; //Получим преподавателей для студента $sqlteach = 'SELECT id,fio FROM '.$ST['dbpf'].'_users WHERE id='.$val['id_teacher'].' LIMIT 1'; $rezteach = $DB->QUR_SEL($sqlteach); if($rezteach&&$rezteach[0]>0){ $teachersList[$rezteach[1]['id']] = $rezteach[1]['fio']; $val['teacher'] = $rezteach[1]['fio']; } //$list_student[] = $val;//без сортировки по фио $list_student[$val['fio']] = $val;//с сортировкой по фио } } ksort($list_student); //echo '
'.print_r($teachersList,1).print_r($list_student,1).'
';exit(); //Распечатали if ($_GET['page'] == 'liquidation') { $sql = 'UPDATE '.$ST['dbpf'].'_statement SET print_st = "1" WHERE id = "'.$id_stat.'" '; $rez = $DB->QUR($sql); } /***********/ $smarty->assign('teachersList', $teachersList); $smarty->assign('id_stat', $id_stat); $smarty->assign('count', $i); $smarty->assign('count_otl', $count_otl); $smarty->assign('count_hor', $count_hor); $smarty->assign('count_udov', $count_udov); $smarty->assign('count_neud', $count_neud); $smarty->assign('count_neyvka', $count_neyvka); $smarty->assign('list_student', $list_student); $smarty->assign('control', $control); $smarty->display('tpl_teacher_liquidation_print_ved.html'); } exit; } else{ $smarty->assign('fakultet', $fakultet); $smarty->assign('naprs', $napr); $smarty->assign('statements', $statements); $smarty->assign('teachers', $teachers); $smarty->assign('grupps', $grupp); $smarty->assign('msg', $msg); $smarty->assign('status', $_SESSION['user']['status']); $maincontent = $smarty->fetch('tpl_teacher_liquidation.html'); } } //СВОДНЫЕ ВЕДОМОСТИ ПО НОВОМУ ВИДУ - с использованием учебных планов if ($_GET['page'] == 'summarySheet'){ $time_start = microtime(true); $fakultet = $_SESSION['user']['teacher']['fakultet']; //формируем список групп факультета $grupps = array(); //$sql = 'SELECT gr.* FROM '.$ST['dbpf'].'_grupp as gr WHERE gr.kurs < 7 AND NOT (gr.name LIKE "%выпуск%") ORDER BY gr.sokr, gr.kurs '; $sql = 'SELECT gr.*, gr.id as id_grupp, fac.* FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_faculties as fac WHERE fac.name="'.$fakultet.'" AND gr.id_facult=fac.id AND gr.kurs < 7 AND NOT (gr.sokr LIKE "%выпуск%") ORDER BY gr.sokr, gr.kurs '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $grupps[] = $val; } } //если указана конкретная группа, номер группы в потоке, а также семестр, по которому нужно формировать сводную ведомость if ((isset($_GET['grupp']))&&(isset($_GET['num']))&&(isset($_GET['sem']))){ $id_grupp = $_GET['grupp']; //группа $num = $_GET['num']; //номер группы в потоке - УЖЕ НЕ НУЖЕН, т.к. роли не играет $sem = $_GET['sem']; //семестр //берем название текущей группы $sql_grupp = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id = "'.$id_grupp.'" '; $rez_grupp = $DB->QUR_SEL($sql_grupp); //echo $rez_grupp[1][sokr]; $raz = explode('-', $rez_grupp[1]['sokr']); $dop_nom = $raz[1][1]; //echo $rez_grupp[1][fo]; //форма обучения для учебного плана switch($rez_grupp[1]['fo']){ case 'ОФО': $fo_pl = 'очная'; break; case 'ЗФО': $fo_pl = 'заочная'; break; case 'ОЗФО': $fo_pl = 'очно-заочная'; break; } //ДОСТАЕМ СПИСОК ДИСЦИПЛИН ИЗ УЧЕБНОГО ПЛАНА $disc = array(); $sql = 'SELECT str.*, pl.* FROM '.$ST['dbpf'].'_iup_shahtplans_stroki as str, '.$ST['dbpf'].'_iup_shahtplans_plans as pl WHERE pl.id = str.id_plans AND pl.shifr1 = "'.$rez_grupp[1]['specialnost'].'" AND str.sem="'.$sem.'" AND pl.godnap = "'.$rez_grupp[1]['year_start'].'" AND NOT str.discip LIKE "%по выбору%" AND pl.forobu = "'.$fo_pl.'" '; if ($sem == 0) $sql = 'SELECT str.*, pl.* FROM '.$ST['dbpf'].'_iup_shahtplans_stroki as str, '.$ST['dbpf'].'_iup_shahtplans_plans as pl WHERE pl.id = str.id_plans AND pl.shifr1 = "'.$rez_grupp[1]['specialnost'].'" AND pl.godnap = "'.$rez_grupp[1]['year_start'].'" AND pl.forobu = "'.$fo_pl.'" AND NOT str.discip LIKE "%по выбору%" ORDER BY str.sem LIMIT 100'; //echo $sql; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $disc[] = $val; } } //теперь пытаемся найти название и айдновой, по семестру $new_grupp = $raz[0].'-'.ceil($sem/2).$dop_nom; //echo $new_grupp; $sql_grupp_new = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE fo = "'.$rez_grupp[1]['fo'].'" AND sokr = "'.$new_grupp.'" '; $rez_grupp_new = $DB->QUR_SEL($sql_grupp_new); $id_new_grupp = $rez_grupp_new[1]['id']; //достаем список студентов группы $students = array(); //$sql = 'SELECT gr.*, st.*, us.*, st.id as id_stud FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE us.id = st.id_user AND st.id_grupp = gr.id AND gr.id = "'.$id_grupp.'" AND st.num_grupp = "'.$num.'" AND NOT(us.status = "-1") ORDER BY us.fio'; $sql = 'SELECT gr.*, st.*, us.*, st.id as id_stud FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE us.id = st.id_user AND st.id_grupp = "'.$id_grupp.'" AND gr.id=st.id_grupp AND NOT(us.status = "-1") GROUP BY us.fio ORDER BY us.fio '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ ///все оценки студента $val['mark'] = array(); $sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_user = "'.$val['id_user'].'" '; $rez_mark = $DB->QUR_SEL($sql_mark); foreach ($rez_mark as $key_mark => $val_mark) if ($key_mark){ $val['mark'][$val_mark['semestr']][$val_mark['name']] = $val_mark['mark']; } $gruppa = $val['sokr']; $fo = $val['fo']; $students[] = $val; } } /*echo '
';
			print_r($students);
			echo '
';*/ /*$time_end = microtime(true); $time = $time_end - $time_start; echo "Время генерации $time секунд\n";*/ /*********************************/ $smarty->assign('fakultet', $fakultet); $smarty->assign('disc', $disc); $smarty->assign('gruppa', $gruppa); $smarty->assign('fo', $fo); $smarty->assign('num', $num); $smarty->assign('sem', $sem); $smarty->assign('students', $students); $smarty->display('tpl_dekanat_summary_sheet_print.html'); exit; } else{ //просто выводим список всех групп, где будем выбирать, какую конкретно группу необходимо вывести $smarty->assign('grupps', $grupps); $maincontent = $smarty->fetch('tpl_dekanat_summary_sheet.html'); } } //СВОДНАЯ ВЕДОМОСТЬ ПО ГРУППАМ И СЕМЕСТРАМ if ($_GET['page'] == 'consolidated'){ $fakultet = $_SESSION['user']['teacher']['fakultet']; //формируем список групп факультета $grupps = array(); //$sql = 'SELECT gr.* FROM '.$ST['dbpf'].'_grupp as gr WHERE gr.kurs < 7 AND NOT (gr.name LIKE "%выпуск%") ORDER BY gr.sokr, gr.kurs '; $sql = 'SELECT gr.*, gr.id as id_grupp, fac.* FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_faculties as fac WHERE fac.name="'.$fakultet.'" AND gr.id_facult=fac.id AND gr.kurs < 7 AND NOT (gr.sokr LIKE "%выпуск%") ORDER BY gr.sokr, gr.kurs '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $grupps[] = $val; } } //если указана конкретная группа, номер группы в потоке, а также семестр, по которому нужно формировать сводную ведомость if ((isset($_GET['grupp']))&&(isset($_GET['num']))&&(isset($_GET['sem']))){ $id_grupp = $_GET['grupp']; //группа $num = $_GET['num']; //номер группы в потоке $sem = $_GET['sem']; //семестр //берем название текущей группы $sql_grupp = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id = "'.$id_grupp.'" '; $rez_grupp = $DB->QUR_SEL($sql_grupp); //echo $rez_grupp[1][sokr]; $raz = explode('-', $rez_grupp[1][sokr]); $dop_nom = $raz[1][1]; //echo $rez_grupp[1][fo]; //теперь пытаемся найти название и айдновой, по семестру $new_grupp = $raz[0].'-'.ceil($sem/2).$dop_nom; //echo $new_grupp; $sql_grupp_new = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE fo = "'.$rez_grupp[1]['fo'].'" AND sokr = "'.$new_grupp.'" '; $rez_grupp_new = $DB->QUR_SEL($sql_grupp_new); $id_new_grupp = $rez_grupp_new[1]['id']; //достаем список студентов группы $students = array(); //$sql = 'SELECT gr.*, st.*, us.*, st.id as id_stud FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE us.id = st.id_user AND st.id_grupp = gr.id AND gr.id = "'.$id_grupp.'" AND st.num_grupp = "'.$num.'" AND NOT(us.status = "-1") ORDER BY us.fio'; $sql = 'SELECT gr.*, st.*, us.*, st.id as id_stud FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE us.id = st.id_user AND st.id_grupp = "'.$id_grupp.'" AND gr.id=st.id_grupp AND NOT(us.status = "-1") GROUP BY us.fio ORDER BY us.fio '; $rez = $DB->QUR_SEL($sql); if ($rez){ $i = 0; $ind_max = 1; //индекс студента, у которого максимальное количество дисциплин (по умолчанию первый) $max = 1; //максимальное количество предметов foreach ($rez as $key => $val) if ($key){ $i++; $sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_student="'.$val['id_stud'].'" AND semestr = "'.$sem.'" AND iup = 0 '; $rez_mark = $DB->QUR_SEL($sql_mark); if ($rez_mark[0] > $max){ $max = $rez_mark[0]; $ind_max = $val['id_stud']; } //echo $i.' = '.$rez_mark[0].'; '; /*foreach ($rez_mark as $key_mark => $val_mark){ $val['mark'] = $val_mark; }*/ $id_student = $ind_max; //if ($i == 4) $id_student = $val['id_stud']; $gruppa = $val['sokr']; $fo = $val['fo']; $students[] = $val; } } //достаем уникальный список направлений/ведомостей для данной группы для указанного семестра $disc = array(); //$date_create; //$sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_student = "'.$id_student.'" AND semestr = "'.$sem.'" AND type > 1 AND iup = 0 ORDER BY control DESC, name'; //$sql = 'SELECT liq.*, st.*, st.id AS id_st FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_statement as st WHERE liq.id_student = "'.$id_student.'" AND st.id_grupp = "'.$id_new_grupp.'" AND liq.semestr = "'.$sem.'" AND liq.iup = 0 AND liq.id_stat = st.id'; $sql = 'SELECT liq.*, st.*, st.id AS id_st FROM '.$ST['dbpf'].'_liquidation as liq, '.$ST['dbpf'].'_statement as st WHERE liq.id_student = "'.$id_student.'" AND st.id_grupp = "'.$id_grupp.'" AND liq.semestr = "'.$sem.'" AND liq.iup = 0 AND liq.id_stat = st.id'; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $fakultet = $val['fakultet']; $date_create = $val['date_create']; $name = $val['name']; //первая цифра $val['marked'][0] = 5; $val['marked']; //$sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE name = "'.$name.'" AND semestr = "'.$sem.'" AND type = "2" '; $sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE name = "'.$name.'" AND semestr = "'.$sem.'" AND control = "'.$val['control'].'" AND type = "'.$val['type'].'" ORDER BY FIELD(mark, "зачтено","отлично","хорошо","удовлетворительно") ASC, date_create DESC '; //$sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE semestr = "'.$sem.'" ORDER BY FIELD(mark, "отлично","зачтено","хорошо","удовлетворительно","незачтено") '; $rez_mark = $DB->QUR_SEL($sql_mark); if ($rez_mark){ foreach ($rez_mark as $key_mark => $val_mark){ $val['marked'][$val_mark['id_student']] = $val_mark['mark']; } } //$sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id = "''" '; $disc[] = $val; } } //отметки /*********************************/ $smarty->assign('fakultet', $fakultet); $smarty->assign('disc', $disc); $smarty->assign('gruppa', $gruppa); $smarty->assign('fo', $fo); $smarty->assign('num', $num); $smarty->assign('sem', $sem); $smarty->assign('students', $students); $smarty->display('tpl_teach_consolidated_print.html'); exit; } else{ //просто выводим список всех групп, где будем выбирать, какую конкретно группу необходимо вывести $smarty->assign('grupps', $grupps); $maincontent = $smarty->fetch('tpl_teacher_consolidated.html'); } } //СВОДНЫЕ ВЕДОМОСТИ ПО СТУДЕНТАМ НА ИУПЕ if ($_GET['page'] == 'consolidated_iup'){ $fakultet = $_SESSION['user']['teacher']['fakultet']; //если указана конкретная группа, номер группы в потоке, а также семестр, по которому нужно формировать сводную ведомость if ((isset($_GET['id_student']))&&(isset($_GET['sem']))){ $id_student = $_GET['id_student']; //student $sem = $_GET['sem']; //семестр $user = get_new_student($id_student); $student = get_student($user['id_user']); //достаем оценки студента за этот семестр $liquidation_mark = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_student = "'.$id_student.'" AND semestr = "'.$sem.'"'; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $liquidation_mark[] = $val; } } //достаем список студентов группы $students = array(); $sql = 'SELECT gr.*, st.*, us.*, st.id as id_stud FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE us.id = st.id_user AND st.id_grupp = gr.id AND gr.id = "'.$id_grupp.'" AND st.num_grupp = "'.$num.'" AND NOT(us.status = "-1") ORDER BY us.fio'; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ /*$sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_student="'.$val['id_stud'].'" AND semestr = "'.$sem.'" '; $rez_mark = $DB->QUR_SEL($sql_mark); foreach ($rez_mark as $key_mark => $val_mark){ $val['mark'] = $val_mark; }*/ $id_student = $val['id_stud']; $gruppa = $val['sokr']; $fo = $val['fo']; $students[] = $val; } } //достаем уникальный список направлений/ведомостей для данной группы для указанного семестра $disc = array(); //$date_create; $sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_student = "'.$id_student.'" AND semestr = "'.$sem.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $fakultet = $val['fakultet']; $date_create = $val['date_create']; //первая цифра $val['marked'][0] = 5; $val['marked']; $sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE date_create = "'.$date_create.'" AND semestr = "'.$sem.'" '; $rez_mark = $DB->QUR_SEL($sql_mark); if ($rez_mark){ foreach ($rez_mark as $key_mark => $val_mark){ $val['marked'][$val_mark['id_student']] = $val_mark['mark']; } } //$sql_mark = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id = "''" '; $disc[] = $val; } } //отметки /*********************************/ $smarty->assign('fakultet', $fakultet); $smarty->assign('disc', $disc); $smarty->assign('gruppa', $gruppa); $smarty->assign('fo', $fo); $smarty->assign('num', $num); $smarty->assign('sem', $sem); $smarty->assign('students', $students); /**********/ $smarty->assign('student', $student); $smarty->assign('user', $user); $smarty->assign('liquidation_mark', $liquidation_mark); $smarty->display('tpl_dekanat_consolidated_iup_print.html'); exit; } else{ //просто выводим список всех групп, где будем выбирать, какую конкретно группу необходимо вывести //студенты факультета, которые на ИУП $iup_students = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE fakultet = "'.$fakultet.'" AND iup = "1" GROUP BY id_student '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['user'] = get_new_student($val['id_student']); $iup_students[] = $val; } } //передача значений $smarty->assign('iup_students', $iup_students); $maincontent = $smarty->fetch('tpl_dekanat_consolidated_iup.html'); } } //СПИСОК СТУДЕНТОВ ФАКУЛЬТЕТА if ($_GET['page'] == 'list_students'){ $fakultet = $_SESSION['user']['teacher']['fakultet']; $msg = 0; //нужно ли выводить сообщение //редактируем инфу о студенте if (isset($_POST['edit_student'])){ $fio = addslashes($_POST['fio']); $num_zach = addslashes($_POST['num_zach']); $id_grupp = addslashes($_POST['id_grupp']); $kod_podgotovki = addslashes($_POST['kod_podgotovki']); $status = addslashes($_POST['status']); $id_user = $_POST['id_user']; $DB->QUR('UPDATE '.$ST['dbpf'].'_users SET fio = "'.$fio.'" WHERE id = "'.$id_user.'" '); $DB->QUR('UPDATE '.$ST['dbpf'].'_students SET num_zach = "'.$num_zach.'", id_grupp = "'.$id_grupp.'", kod_podgotovki = "'.$kod_podgotovki.'", status = "'.$status.'" WHERE id_user = "'.$id_user.'" '); $msg = 1; } //сбрасываем пароль if (isset($_POST['edit_password'])){ $password = addslashes($_POST['password']); $id_user = $_POST['id_user']; $rez=$DB->QUR('UPDATE '.$ST['dbpf'].'_users SET pass="'.passw_generate($password).'" WHERE id='.$id_user.' LIMIT 1'); $rez=$DB->QUR('INSERT INTO '.$ST['dbpf'].'_users_pass VALUES(0,'.time().','.$id_user.')'); save_logs('Обновлены учетные данные пользователя '.$id_user); $msg = 1; } //определяем айдишник факультета $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties WHERE name = "'.$fakultet.'" '; $rez = $DB->QUR_SEL($sql); $id_fak = $rez[1]['id']; //указываем группы if(isset($_POST['grupps_nofak_btn'])){ foreach($_POST['grupp_nofak'] as $idgg => $v){ $sql = 'UPDATE '.$ST['dbpf'].'_grupp SET id_facult ='.$id_fak.' WHERE id='.$idgg; $rez = $DB->QUR($sql); } } //список групп $grupps = array(); //$sql = 'SELECT * FROM '.$ST['dbpf'].'_newgrupp WHERE id_facult = "'.$id_fak.'" '; if(isset($_SESSION['liquidation_ved_filter_yearnab'])) { $lll = ' AND year_start=' . (int)$_SESSION['liquidation_ved_filter_yearnab']; $smarty->assign('filter_yearnab', $_SESSION['liquidation_ved_filter_yearnab']); }else{ $lll = ' AND year_start=' . date('Y'); $smarty->assign('filter_yearnab', date('Y')); } $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id_facult = "'.$id_fak.'"'.$lll.' ORDER BY year_start,fo DESC'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; exit(); //SELECT * FROM acs_grupp WHERE id_facult = "9" AND year_start=2023 ORDER BY year_start,fo DESC //Array( // [1] => Array([id] => 2589 [data_c] => 1692182774 [data_u] => 1692182774 // [specialnost] => 35.03.06 [kurs] => 0 [sokr] => АИ-11 [fo] => ОФО // [id_teacher] => 0 [id_facult] => 9 [year_start] => 2023 // ) //) if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['students'] = array(); $sql_stud = 'SELECT *, status as status_st FROM '.$ST['dbpf'].'_students WHERE id_grupp = "'.$val['id'].'" '; $rez_stud = $DB->QUR_SEL($sql_stud); if ($rez_stud) foreach ($rez_stud as $key_st => $val_st) if ($key_st){ $info_user = get_user($val_st['id_user']); //берем информацию о пользователе/студенте //$val_st['info'] = get_user($val_st['id_user']); $val_st['fio'] = $info_user['fio']; $val_st['email'] = $info_user['email']; $val_st['status'] = $info_user['status']; //статус пользователя //$val['students'][] = get_user($val_st['id_user']); $val['students'][] = $val_st; } $grupps[] = $val; } } $grupps_nofak=array(); $sql = 'SELECT id,specialnost,sokr,fo,year_start FROM '.$ST['dbpf'].'_grupp WHERE id_facult =0 ORDER BY year_start DESC,sokr,fo DESC'; $rez = $DB->QUR_SEL($sql); if ($rez) { foreach ($rez as $key => $val) if ($key) { $grupps_nofak[] = $val; } } //print_r($grupps); $student = 'no'; //если выбран конкретный студент, то мы можем его отредактировать if (isset($_GET['des'])) { $sql = 'SELECT us.*, st.* FROM '.$ST['dbpf'].'_students as st, '.$ST['dbpf'].'_users as us WHERE us.id = st.id_user AND us.id = "'.$_GET['des'].'" '; $rez = $DB->QUR_SEL($sql); $student = $rez[1]; //echo $student; } //направления подготовки $areas = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_areas '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $areas[] = $val; } } $smarty->assign('grupps_nofak', $grupps_nofak); $smarty->assign('grupps', $grupps); $smarty->assign('student', $student); $smarty->assign('areas', $areas); $smarty->assign('password', gen_password()); //генерируем пароль $smarty->assign('msg', $msg); $maincontent = $smarty->fetch('tpl_dekanat_list_students.html'); } //ПЕРЕВОД ГРУППЫ НА СЛЕДУЮЩИЙ КУРС if ($_GET['page'] == 'perevod_grupp'){ $grupp = (int) $_GET['grupp']; $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id = "'.$grupp.'" '; $rez = $DB->QUR_SEL($sql); $info = $rez[1]; //берем информацию о группе $chast = explode("-", $info['sokr']); $name = $chast[0].'-'.($chast[1][0]+1).substr($chast[1], 1); //новое название группы //переименовываем группу $rez=$DB->QUR('UPDATE '.$ST['dbpf'].'_grupp SET sokr="'.$name.'" WHERE id='.$grupp.' LIMIT 1'); //$rez=$DB->QUR('INSERT INTO '.$ST['dbpf'].'_users_pass VALUES(0,'.time().','.$id_user.')'); save_logs('Группа переведена на следующий курс (переименование) '.$grupp); //echo $name; $smarty->assign('message', "Группа переименована. Курс изменен на следующий"); //сообщение $smarty->assign('link', "/dekanat/list_students/"); //сслыка для редиректа $maincontent = $smarty->fetch('tpl_refresh.html'); } //ВЫПУСКАЕМ ГРУППУ if ($_GET['page'] == 'vipusk'){ $grupp = (int) $_GET['grupp']; $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id = "'.$grupp.'" '; $rez = $DB->QUR_SEL($sql); $info = $rez[1]; //берем информацию о группе $name= "Выпуск ".date("Y")." ".$info['sokr']; //переименовываем группу $rez=$DB->QUR('UPDATE '.$ST['dbpf'].'_grupp SET sokr="'.$name.'" WHERE id='.$grupp.' LIMIT 1'); //$rez=$DB->QUR('INSERT INTO '.$ST['dbpf'].'_users_pass VALUES(0,'.time().','.$id_user.')'); save_logs('Группа выпущена '.$grupp); //echo $name; $smarty->assign('message', "Группа выпущена"); //сообщение $smarty->assign('link', "/dekanat/list_students/"); //сслыка для редиректа $maincontent = $smarty->fetch('tpl_refresh.html'); } //ДИСЦИПЛИНЫ ПО ВЫБОРУ if ($_GET['page'] == 'elective'){ $fakultet = $_SESSION['user']['teacher']['fakultet']; $message = ''; //деканат выбрал предметы if (isset($_POST['save_change'])){ //print_r($_POST); $up = (int)$_POST['up']; //учебный план - айдишник //перед этим мы должны все удалить $sql = 'DELETE FROM '.$ST['dbpf'].'_fakultet_elective WHERE id_plan = "'.$up.'" '; $rez = $DB->QUR($sql); foreach ($_POST['disc'] as $key => $val) if ($key){ $sql = 'INSERT INTO '.$ST['dbpf'].'_fakultet_elective (id_stroka, sel, id_plan) VALUES ("'.$key.'", "1", "'.$up.'") '; $rez = $DB->QUR_SEL($sql); } $message .= 'Дисциплины успешно выбраны'; save_logs('Деканат указал перечень дисциплин по выбору, доступных студентам'); } if (!isset($_GET['des'])){ //НЕ ВЫБРАН КОНКРЕТНЫЙ УЧЕЮНЫЙ ПЛАН //берем список специальностей $areas = listAreaOfFakultet($fakultet); //берем учебные планы $plans = array(); foreach ($areas as $key => $val){ $sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE shifr1 = "'.$val['code'].'" ORDER BY nappodgo DESC '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key2 => $val2) if ($key2){ $plans[] = $val2; } } } } else{ //ВЫБРАН КОНКРЕТНЫЙ УЧЕБНЫЙ ПЛАН $up = $_GET['des']; //возьмем информацию о данной дисциплине $info_plan = ''; $sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id = "'.$up.'" '; $rez = $DB->QUR_SEL($sql); $info_plan = $rez[1]; //подгружаем дисциплины учебного плана $predmets = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans = "'.$up.'" AND discip LIKE "%по выбору%" ORDER BY sem'; //$sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans = "'.$up.'" ORDER BY sem'; //echo $sql; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ //теперь определяем, что входит в блок этих дисциплин $val['block'] = array(); $sql_in = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans = "'.$up.'" AND discid LIKE "%'.$val['discid'].'.%" '; //точка в конце обязательна - перед процентами, это означает, это значит что "спускаемся" в подраздел модуля $rez_in = $DB->QUR_SEL($sql_in); if ($rez_in){ foreach ($rez_in as $key_in => $val_in) if ($key_in){ //также смотрим выбрана ли уже данная дисциплина $val_in['sel'] = 0; $sql_sel = 'SELECT * FROM '.$ST['dbpf'].'_fakultet_elective WHERE id_stroka = "'.$val_in['id'].'" '; $rez_sel = $DB->QUR_SEL($sql_sel); if ($rez_sel[0] > 0) $val_in['sel'] = 1; $val['block'][] = $val_in; } } $predmets[] = $val; } } /*echo '
';
			print_r($predmets);
			echo '
';*/ $smarty->assign('predmets', $predmets); $smarty->assign('info_plan', $info_plan); } /***/ $smarty->assign('areas', $areas); $smarty->assign('plans', $plans); $smarty->assign('up', $up); $smarty->assign('message', $message); $maincontent = $smarty->fetch('tpl_dekanat_elective.html'); } //ГЕНЕРАЦИЯ ЗАЯВЛЕНИЯ НА ВЫБОР ПРЕДМЕТОВ if ($_GET['page'] == 'electiveApplication'){ //если не указан номер, значит отображаем просто список заявлений факультета if (!isset($_GET['des'])){ //список заявлений факультета $list_zayav = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_elective GROUP BY date_create, id_student '; //обязательная группировка $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['user'] = get_user($val['id_user']); $val['student'] = get_student($val['id_user']); $list_zayav[] = $val; } } $smarty->assign('list_zayav', $list_zayav); $maincontent = $smarty->fetch('tpl_dekanat_elective_zayav.html'); } else{ //ФОРМИРУЕМ ПЕЧАТНУЮ ФОРМУ $id = $_GET['des']; //берем инфу о заявлении $sql = 'SELECT * FROM '.$ST['dbpf'].'_elective WHERE id = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ $info = $rez[1]; $info['user'] = get_user($info['id_user']); $info['student'] = get_student($info['id_user']); $info['kurs'] = courseOfGruppa($info['student']['id_grupp']); //берем информацию о направлении подготовки $sql_area = 'SELECT * FROM '.$ST['dbpf'].'_areas WHERE code = "'.$info['student']['specialnost'].'" '; $rez_area = $DB->QUR_SEL($sql_area); if ($rez_area){ $info['area'] = $rez_area[1]; } //определяем профиль обучения, который выбрал студент (если не выбран никакой, то формируем заявление опираясь на то, что профиль у направления подготовки один-единственный) $sql_napr = 'SELECT ns.*, pr.* FROM '.$ST['dbpf'].'_napr_sel as ns, '.$ST['dbpf'].'_profile as pr WHERE ns.id_stud = "'.$info['id_user'].'" AND pr.id_areas = ns.id_napr '; //echo $sql_napr; $rez_napr = $DB->QUR_SEL($sql_napr); if ($rez_napr[0] > 0){ $info['profile'] = $rez_napr[1]; } else{ //профиль студент не выбирал - из этого делаем вывод, что профиль у направления подготовки только один, просто ищем его $sql_profile = 'SELECT * FROM '.$ST['dbpf'].'_profile WHERE id_areas = "'.$info['area']['id'].'" '; //echo $sql_profile; $rez_profile = $DB->QUR_SEL($sql_profile); if ($rez_profile){ $info['profile'] = $rez_profile[1]; } } //определяем список выбранных дисциплин (СМОТРИМ ПО ДАТЕ!) $info['predmets'] = array(); $sql_predmet = 'SELECT el.*, iupstr.* FROM '.$ST['dbpf'].'_elective as el, '.$ST['dbpf'].'_iup_shahtplans_stroki as iupstr WHERE el.id_user = "'.$rez[1]['id_user'].'" AND el.date_create = "'.$rez[1]['date_create'].'" AND iupstr.id = el.id_predmet'; $rez_predmet = $DB->QUR_SEL($sql_predmet); if ($rez_predmet){ foreach ($rez_predmet as $key => $val) if ($key){ $info['predmets'][] = $val; } } } $smarty->assign('info', $info); $maincontent = $smarty->display('tpl_dekanat_elective_zayav_print.html'); exit(); } } //РАСПИСАНИЕ ФАКУЛЬТЕТА if ($_GET['page'] == 'timetable'){ $fakultet = $_SESSION['user']['teacher']['fakultet']; $msg = 0; //нужно ли выводить сообщение //определяем айдишник факультета $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties WHERE name = "'.$fakultet.'" '; $rez = $DB->QUR_SEL($sql); $id_fak = $rez[1]['id']; //список групп $grupps = array(); //$sql = 'SELECT * FROM '.$ST['dbpf'].'_newgrupp WHERE id_facult = "'.$id_fak.'" '; $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id_facult = "'.$id_fak.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['students'] = array(); $sql_stud = 'SELECT *, status as status_st FROM '.$ST['dbpf'].'_students WHERE id_grupp = "'.$val['id'].'" '; $rez_stud = $DB->QUR_SEL($sql_stud); if ($rez_stud) foreach ($rez_stud as $key_st => $val_st) if ($key_st){ $val_st['info'] = get_user($val_st['id_user']); //$val['students'][] = get_user($val_st['id_user']); $val['students'][] = $val_st; } $grupps[] = $val; } } if (isset($_GET['grupp'])){ //выбрана конкретная группа $id_grupp = $_GET['grupp']; if (isset($_GET['toweek'])) $toweek = $_GET['toweek']; else $toweek=date("YW");//годнеделя $year = floor($toweek/100); $week = $toweek % 100; $seconds = strtotime('01.01.'.$year); //echo $seconds; echo date("W", strtotime("2023-05-30")); $smarty->assign('toweek', $year); $smarty->assign('id_grupp', $id_grupp); //echo $id_grupp; } else{ //СПИСОК ВСЕХ ГРУПП /****/ $smarty->assign('grupps', $grupps); } $maincontent = $smarty->fetch('tpl_dekanat_timetable.html'); } //ЗАЯВЛЕНИЯ НА ВЫБОР НАПРАВЛЕННОСТИ ОБУЧЕНИЯ if ($_GET['page'] == 'zayv_napr'){ $fakultet = $_SESSION['user']['teacher']['fakultet']; //ЗАЯВЛЕНИЯ НА ФАКУЛЬТЕТЕ $zayavs = array(); $sql = 'SELECT ns.*, ns.id as id_ns, pr.*, pr.name as name_profile, ar.*, kaf.*, fac.*, fac.name as name_f FROM '.$ST['dbpf'].'_napr_sel as ns, '.$ST['dbpf'].'_profile as pr, '.$ST['dbpf'].'_areas as ar, '.$ST['dbpf'].'_kafedres as kaf, '.$ST['dbpf'].'_faculties as fac WHERE ns.id_napr = pr.id AND pr.id_areas = ar.id AND ar.id_kafedra = kaf.id AND kaf.id_facult = fac.id AND fac.name = "'.$fakultet.'"'; //$sql = 'SELECT ns.*, pr.* FROM '.$ST['dbpf'].'_napr_sel as ns, '.$ST['dbpf'].'_profile as pr WHERE ns.id_napr = pr.id'; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['student'] = get_user($val['id_stud']); $zayavs[] = $val; } } /******/ if (isset($_GET['des'])){ //ЗАЯВЛЕНИЕ $id = $_GET['des']; $sql = 'SELECT ns.*, ns.id as id_ns, pr.*, pr.name as name_profile, ar.*, kaf.*, fac.*, fac.name as name_f FROM '.$ST['dbpf'].'_napr_sel as ns, '.$ST['dbpf'].'_profile as pr, '.$ST['dbpf'].'_areas as ar, '.$ST['dbpf'].'_kafedres as kaf, '.$ST['dbpf'].'_faculties as fac WHERE ns.id_napr = pr.id AND pr.id_areas = ar.id AND ar.id_kafedra = kaf.id AND kaf.id_facult = fac.id AND fac.name = "'.$fakultet.'" AND ns.id = "'.$id.'"'; $rez = $DB->QUR_SEL($sql); $rez[1]['student'] = get_user($rez[1]['id_stud']); //echo $val['id_stud']; $rez[1]['date_order'] = date('d.m.Y', $rez[1]['date_order']); $dekan = ''; switch($rez[1]['name_f']){ case 'Факультет информационных систем в экономике и юриспруденции': $rez[1]['name_f'] = 'Факультета информационных систем в экономике и юриспруденции'; $dekan = 'Доргушаовой А.К.'; break; case 'Технологический факультет': $rez[1]['name_f'] = 'Технологического факультета'; $dekan = 'Схаляхову А.А.'; break; case 'Инженерный факультет': $rez[1]['name_f'] = 'Инженерного факультета'; $dekan = 'Беданокову М.К.'; break; case 'Факультет экономики и сервиса': $rez[1]['name_f'] = 'Факультета экономики и сервиса'; $dekan = 'Ешуговой С.К.'; break; } $smarty->assign('zayav', $rez[1]); $smarty->assign('student', get_student($rez[1]['id_stud'])); $smarty->assign('dekan', $dekan); $smarty->display('tpl_dekanat_zayv_napr_print.html'); exit; } else{ //Просто деканат $smarty->assign('zayavs', $zayavs); $maincontent = $smarty->fetch('tpl_dekanat_zayv_napr.html'); } } //УДАЛЕНИЕ ЗАЯВЛЕНИЕ if ($_GET['page'] == 'zayv_napr_delete'){ $id = (int) $_GET['des']; $sql = 'DELETE FROM '.$ST['dbpf'].'_napr_sel WHERE id = "'.$id.'"'; $rez = $DB->QUR($sql); save_logs('Удаление заявления на выбор специализации обучения'); header("Location: /dekanat/zayv_napr/"); exit; } //РЕДАКТИРОВАНИЕ ВЕДОМОСТИ if ($_GET['page'] == 'editStat'){ $id = $_GET['des']; //краткая инфа о ведомостим $sql = 'SELECT * FROM '.$ST['dbpf'].'_statement WHERE id = "'.$id.'"'; $rez = $DB->QUR_SEL($sql); $rez[1]['date_create'] = date('d.m.Y', $rez[1]['date_create']); $statement = $rez[1]; //инфа о группе $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id = "'.$statement['id_grupp'].'"'; $rez = $DB->QUR_SEL($sql); $grupp = $rez[1]; //теперь берем более детальную информацию о дисциплине $sql = 'SELECT * FROM '.$ST['dbpf'].'_liquidation WHERE id_stat = "'.$id.'" LIMIT 1 '; $rez = $DB->QUR_SEL($sql); $info = $rez[1]; /*peredaem*/ $smarty->assign('id_ved', $id); //номер ведомости $smarty->assign('statement', $statement); //краткая инфа о ведомости $smarty->assign('grupp', $grupp); //информация о группе $smarty->assign('info', $info); //более детальная инфа $maincontent = $smarty->fetch('tpl_dekanat_edit_ved.html'); } //ОБЩАЯ ТАБЛИЦА СО ВСЕМИ ОЦЕНКАМИ if ($_GET['page'] == 'general'){ require_once './inc/PHPExcel.php'; require_once './inc/PHPExcel/Writer/Excel2007.php'; require_once './inc/PHPExcel/IOFactory.php'; //берем за основу образец Excel таблицы $xls = PHPExcel_IOFactory::load('./ftp/excel_example/example_general.xlsx'); //айдишник группы $id_grupp = $_GET['des']; //берем учебный план группы $sql = 'SELECT * FROM '.$ST['dbpf'].'_grupp WHERE id = "'.$id_grupp.'" '; $rez = $DB->QUR_SEL($sql); $grupp = $rez[1]; //информация о группе //подписываем лист группой $xls->setActiveSheetIndex(0); $sheet = $xls->getActiveSheet(); $sheet->setTitle($grupp['sokr'].' '.$grupp['fo']); //смотрим список студентов и выводим $sql = 'SELECT * FROM '.$ST['dbpf'].'_students WHERE id_grupp = "'.$id_grupp.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ $i = 5; //начинаем после 5 строчки вставлять ФИО foreach ($rez as $key => $val) if ($key){ $i++; $user = get_user($val['id_user']); $sheet->setCellValue('A'.$i, $user['fio']); $sheet->setCellValue('B'.$i, $val['num_zach']); } } //смотрим список дисциплин из учебного плана $sql = 'SELECT pl.*, str.* FROM '.$ST['dbpf'].'_iup_shahtplans_plans as pl, '.$ST['dbpf'].'_iup_shahtplans_stroki as str WHERE pl.nappodgo = "'.$grupp['specialnost'].'" AND pl.forobu = "очная" AND godnap = 2021 AND shifr1="09.04.03" AND pl.id = str.id_plans ORDER BY str.sem '; $rez = $DB->QUR_SEL($sql); if ($rez){ /*echo $sql.'
';
			print_r($rez); echo '
'; exit(); */ $i = 1; foreach ($rez as $key => $val) if ($key){ $i++; $colString = PHPExcel_Cell::stringFromColumnIndex($i); $sheet->setCellValue($colString."1", $val['sem']); //указываем семестр в первой строчке $sheet->setCellValue($colString."2", $val['discip']); //указываем семестр в первой строчке if ($val['ekz'] == 1) $sheet->setCellValue($colString."3", "Экзамен"); //указываем форму контроля else $sheet->setCellValue($colString."3", "Зачет"); } } /* Если вы используете распространённый компонент PHPExcel, который не требует инициализации COM, то там есть для этого специальная функция: $colString = PHPExcel_Cell::stringFromColumnIndex($colNumber); */ header("Expires: Mon, 1 Apr 1974 05:00:00 GMT"); header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=file.xls"); $objWriter = new PHPExcel_Writer_Excel5($xls); $objWriter->save('php://output'); exit(); } ?>