EIOS/inc/iup_lkkafedry.php

1248 lines
63 KiB
PHP
Raw Normal View History

2023-12-28 15:39:22 +03:00
<?php
error_reporting(E_ALL);
ini_set('max_execution_time', 9000);
ini_set('memory_limit', '-1');
include_once $_SERVER['DOCUMENT_ROOT'].'/inc/class_SYSTEM.php';
$SYSTEMclass = new SYSTEMclass();
if(isset($_POST['ajdes'])){
header('Content-Type: application/json; charset=utf-8');
$out = array();
//Исправляем ошибки в плане
if($_POST['ajdes']=='btnerrisp_save'){
$p = $_POST;
$p['json'] = json_decode($p['json'],1);
$SET=array();
foreach($p['json'] as $key => $val){
if($val['name']==1) $SET[] = 'nappodgo="'.$val['value'].'"';
if($val['name']==2) $SET[] = 'propodgo="'.$val['value'].'"';
if($val['name']==3) $SET[] = 'obrpro="'.$val['value'].'"';
}
$sql1 = 'UPDATE '.$TB['iup_shahtplans_plans'].' SET '.implode(',',$SET).' WHERE id_file='.$p['id'].' LIMIT 1';
$rez1 = $DB->QUR($sql1);
if(!$rez1['err']){
$out['html'] = 'Внесли изменения в план. Теперь ошибки не должно быть, обновите страницу и посмотрите';
}else{
$out['html'] = 'Не внесли изменения в план. Измените файл PLX (в синей звезде) и укажите необходимые данные. Частая ошибка при указании профиля подготовки, запишите в название "Направление подготовки:Техносферная безопасность Профиль: Охрана природной среды и ресурсосбережение", в одной строке укажите направление и профиль';
}
}
if($_POST['ajdes']=='btnerrisp'){
$id = $_POST['id'];
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.' LIMIT 1';
$rez = $DB->QUR_SEL($sql);
if($rez&&isset($rez[1])){
$plan_titul = $rez[1];
$plan_titul = ShahtPlan_Get_Info($plan_titul);
$out['html'] = 'План: '.$plan_titul['napravlenie'].' '.$plan_titul['godob'].'<br>';
$out['html'] .= '<p>Ошибки:</p>';
foreach($plan_titul['pp'] as $k => $v)if($k){
if(isset($plan_titul['pp1'][$k])&&$plan_titul['pp1'][$k]!=$v) {
$f='пусто'; if($plan_titul['pp1'][$k]!='') $f=$plan_titul['pp1'][$k];
$out['html'] .= '<p>Должно быть:<b>'.$v.'</b>, а в файле <b>'.$f.'</b><br>';
$out['html'] .= '<input type="text" class="form-control btnerrisp_item" data-pp="'.$k.'" value="'.$v.'" style="width:94%;"></p>';
}
}
$out['html'] .= '<a href="#" class="btn btn-success btnerrisp_save">Сохранить</a>';
$out['html'] .= '<input type="HIDDEN" class="btnerrisp_id" value="'.$id.'">';
$out['html'] .= '<p class="btnerrisp_save_msg"></p>';
//$out['html'] .= '<pre>'.print_r($plan_titul,1).'</pre>';
}
}
echo json_encode($out);
exit();
}
$zamdeknaprav = iup_get_zamdeknaprav($_SESSION['user']['teacher']['fakultet']);
//$zamdeknaprav = iup_get_zamdeknaprav_old($_SESSION['user']['teacher']['fakultet']);
if(isset($_POST['lkkafedry_back'])){//возвращаем атт.комм.
$id_zayavka = (int)$_POST['id_zayavka'];
$sql = 'UPDATE '.$TB['iup_studentzayavks'].' SET status=2 WHERE id='.$id_zayavka.'';
$rez = $DB->QUR_SEL($sql);
if($rez){
send_email_iup($id_zayavka);
$sql = 'INSERT INTO '.$TB['iup_statuses'].' VALUES(0,'.time().','.$id_zayavka.','.$_SESSION['user']['id'].',3,2,"")';
$rez = $DB->QUR($sql);
if($rez){ $msg['msg'][]='Время изменения статуса сохранено!';}
else{ $msg['err'][]='Время изменения статуса не сохранено!'; }
save_logs('ИУП: lkkafedry возвращаем атт.комм. №'.$id_zayavka);
}
}
if(isset($_POST['lkkafedry_zaversh'])||isset($_POST['lkkafedry_gotovo'])){//сохраняем выставленные режимы для предметов
$id_zayavka = (int)$_POST['id_zayavka'];
//загрузка файла umu_file
if(isset($_POST['del_file'])){foreach($_POST['del_file'] as $fid => $val){
$sql = 'SELECT * FROM '.$TB['iup_kafedrs_files'].' WHERE id_user='.$_SESSION['user']['id'].' AND id='.$fid.'';
$rez = $DB->QUR_SEL($sql);
if($rez){
$val = $rez[1];
unlink($val['file']);
$rez = $DB->QUR_SEL('DELETE FROM '.$TB['iup_kafedrs_files'].' WHERE id_user='.$_SESSION['user']['id'].' AND id='.$fid.'');
$msg['err'][]='Файл удален!';
}else{
$msg['err'][]='Файл не найден в базе данных.';
}
save_logs('ИУП: lkkafedry удаление файла из заявки №'.$id_zayavka);
}}
//echo '<pre>'.print_r($_FILES,1).'</pre>';
if(isset($_FILES['umu_file'])){
//foreach($_FILES['umu_file']['tmp_name'] as $k => $v){
$v = $_FILES['umu_file']['tmp_name'];
if($v!=''){//загружаем файл
$dir_dest = 'upload/iup/'.$_SESSION['user']['id'].'/';
if(!file_exists($dir_dest)) mkdir($dir_dest);
$fil = $_FILES['umu_file']['name'];
$t = explode('.',$fil); $ext = $t[count($t)-1];
unset($t[count($t)-1]); $fn = implode('.',$t);
$uploadfile = $dir_dest . basename(translit($fn).'.'.$ext);
//if (move_uploaded_file($v, $uploadfile)) {
if ($SYSTEMclass->sysUPLOAD($v, $uploadfile)) {
$sql1 = 'INSERT INTO `'.$TB['iup_kafedrs_files'].'` VALUES (0,'.time().','.$_SESSION['user']['id'].','.$id_zayavka.',"Файл кафедры ИУП","'.$uploadfile.'",1);';
$rez1 = $DB->QUR($sql1);
if($rez1){
$msg['msg'][]='Файл загружен и сохранен в БД!';
}else{
$msg['err'][]='Файл загружен и не сохранен в БД!';
}
} else {
$msg['err'][]='Файл не загружен!';
}
save_logs('ИУП: lkkafedry загрузка файла в заявку №'.$id_zayavka);
}
//}
}
if(isset($_POST['chat_umu'])&&$_POST['chat_umu']!=''){//сохраняем чат с уму
$chat_umu = addslashes(htmlspecialchars(strip_tags($_POST['chat_umu'])));
$sql = 'INSERT INTO '.$TB['iup_kafumu_chat'].' VALUES(0,'.time().','.$_SESSION['user']['id'].','.$id_zayavka.',"'.$_SESSION['user']['fio'].'","'.$chat_umu.'",1)';
$rez = $DB->QUR_SEL($sql);
}
if(isset($_POST['lkkafedry_gotovo'])){//меняем статус у заявки
$sql = 'UPDATE '.$TB['iup_studentzayavks'].' SET status=4 WHERE id='.$id_zayavka.'';
$rez = $DB->QUR_SEL($sql);
if($rez){
send_email_iup($id_zayavka);
$sql = 'INSERT INTO '.$TB['iup_statuses'].' VALUES(0,'.time().','.$id_zayavka.','.$_SESSION['user']['id'].',3,4,"")';
$rez = $DB->QUR($sql);
if($rez){ $msg['msg'][]='Время изменения статуса сохранено!';}
else{ $msg['err'][]='Время изменения статуса не сохранено!'; }
}
}
$des = 'show';
}
if(isset($_POST['shaht_save'])){//загрузка нового файла
$shaht_napravlenie = addslashes($_POST['shaht_napravlenie']);
$naprav = addslashes($_POST['naprav']);
$shaht_godob = addslashes($_POST['shaht_godob']);
if($naprav!=''){
if(isset($_FILES['shaht_prog'])){
$v = $_FILES['shaht_prog']['tmp_name'];
if($v!=''){//загружаем файл
$dir_dest = 'upload/iup/shahtplans/'.$_SESSION['user']['id'].'/';
if(!file_exists($dir_dest)) mkdir($dir_dest);
$fil = $_FILES['shaht_prog']['name'];
$t = explode('.',$fil); $ext = $t[count($t)-1];
unset($t[count($t)-1]); $fn = implode('.',$t);
$uploadfile = $dir_dest . basename(translit($fn).'.'.$ext);
//if (move_uploaded_file($v, $uploadfile)) {
if ($SYSTEMclass->sysUPLOAD($v, $uploadfile)) {
$sql1 = 'INSERT INTO `'.$TB['iup_shahtplans'].'` VALUES (0,'.time().',"'.$uploadfile.'",'.$_SESSION['user']['id'].',"'.$shaht_napravlenie.'","'.$shaht_godob.'","'.$naprav.'",0);';
$rez1 = $DB->QUR($sql1);
//$msg['msg'][]=$sql1.'<pre>'.print_r($rez1,1).'</pre>';
if(!$rez1['err']){
$msg['msg'][]='Файл загружен и сохранен в БД!';
}else{
$msg['err'][]='Файл загружен и не сохранен в БД!';
}
} else {
$msg['err'][]='Файл не загружен!';
}
}
}
} else {
$msg['err'][]='Выберите направление!!!';
}
}
if($des == 'attved1'){//ПРОТОКОЛ 1
$id = (int)$_GET['id'];
print_vedomost($id,1,'tpl_iup_attved1.html');
exit();
}
if($des == 'attved2'){//ПРОТОКОЛ 2
$id = (int)$_GET['id'];
print_vedomost($id,2,'tpl_iup_attved2.html');
exit();
}
if($des == 'attved4'){//ПРОТОКОЛ 4
$id = (int)$_GET['id'];
print_vedomost($id,3,'tpl_iup_attved4.html');
exit();
}
if($des == 'deleshp'){//удаление строк предметов из бд
$id = (int)$_GET['id'];
//if($_SESSION['user']['status']==99) {
$sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.'';
$rez = $DB->QUR_SEL($sql);
if($rez){
$plan = $rez[1];
$sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans='.$plan['id'].'';
$rez = $DB->QUR($sql);
if(!$rez['err']){}
$sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.' LIMIT 1';
$rez = $DB->QUR($sql);
if(!$rez['err']){}
}
//}
$des = 'show';
}
if($des == 'deleshpall'){//удаление файла из системы
$id = (int)$_GET['id'];
$sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.'';
$rez = $DB->QUR_SEL($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
if($rez){
$plan = $rez[1];
$sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_stroki WHERE id_plans='.$plan['id'].'';
$rez = $DB->QUR($sql);
if(!$rez['err']){}
$sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans_plans WHERE id_file='.$id.' LIMIT 1';
$rez = $DB->QUR($sql);
if(!$rez['err']){}
}
$sql = 'SELECT * FROM '.$ST['dbpf'].'_iup_shahtplans WHERE id='.$id.'';
$rez = $DB->QUR_SEL($sql); //echo $sql.'<pre>'.print_r($rez,1).'</pre>';
if($rez){
$plan = $rez[1];
unlink($plan['file']);
$sql = 'DELETE FROM '.$ST['dbpf'].'_iup_shahtplans WHERE id='.$id.' LIMIT 1';
$rez = $DB->QUR($sql);
if(!$rez['err']){}
}
$des = 'show';
}
if($des == 'viewshp'){//просмотр шахтинского плана
$id = (int)$_GET['id'];
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.' AND user_id='.$_SESSION['user']['id'].'';
//$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.'';
$rez = $DB->QUR_SEL($sql);
//echo $sql.'<pre>'.print_r($rez,1).'</pre>';
if($rez){
$shpl = parse_shahtplan($rez[1]['file'],$id,0);
$smarty->assign('shpl',$shpl);
}
}
if($des == 'editshp'){//обработка файла шахтинской в БД
$id = (int)$_GET['id'];
if($_SESSION['user']['status']==99){
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.'';
}else{
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE id='.$id.' AND user_id='.$_SESSION['user']['id'].'';
}
$rez = $DB->QUR_SEL($sql);
if($rez){
$shpl = parse_shahtplan($rez[1]['file'],$id);
$smarty->assign('shpl',$shpl);
}
}
/*if($des == 'edit'){
$id = (int)$_GET['id'];
$sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE id='.$id.' AND status=3';
$rez = $DB->QUR_SEL($sql);
if($rez){
$val = $rez[1]; $id_zayavka=$val['id'];
$val['data_c'] = date('H:i:s d.m.Y',$val['data_c']);
$val['diplom_data'] = date('d.m.Y',$val['diplom_data']);
$sql = 'SELECT * FROM '.$TB['iup_studentzayavks_files'].' WHERE id_studentzayavks='.$id_zayavka.' ORDER BY data_c';
$rez = $DB->QUR_SEL($sql);
if($rez){foreach($rez as $k => $v)if($k){
$v['data_c'] = date('H:i:s d.m.Y',$v['data_c']);
$val['files'][]=$v;
}}
$val['predmets'] = iup_get_predmets($_SESSION['user']['teacher']['fakultet'],$val['pret_naprav'],$val['pret_kurs'],$val['pret_fo']);
$at=0;$ad=0;$addtime=0;$addday=0;
foreach($val['predmets'] as $k => $v){
$id_predmet = $v['id'];
$sql3 = 'SELECT prepod_name FROM '.$TB['iup_zamdekan'].' WHERE id_studentzayavks='.$id_zayavka.' AND predmet_id='.$id_predmet.'';
$rez3 = $DB->QUR_SEL($sql3);
if($rez3){
$val['predmets'][$k]['prepodfio']=$rez3[1]['prepod_name'];
$sql4 = 'SELECT * FROM '.$TB['iup_ocenki'].' WHERE id_studentzayavks='.$id_zayavka.' AND id_predmet='.$id_predmet.' ORDER BY data_c DESC';
$rez4 = $DB->QUR_SEL($sql4);
if($rez4){
$val['predmets'][$k]['ocenki']=$rez4[1];
}
}else{
$val['predmets'][$k]['prepodfio']='';
}
}
$sql = 'SELECT * FROM '.$TB['iup_kafedrs_files'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c';
$rez = $DB->QUR_SEL($sql);
if($rez){foreach($rez as $k => $v)if($k){
$v['data_c'] = date('H:i:s d.m.Y',$v['data_c']);
$namefile=''; $t=explode('/',$v['file']); $namefile=$t[count($t)-1];
$v['namefile'] = $namefile;
$val['filesk'][]=$v;
}}
$sql = 'SELECT * FROM '.$TB['iup_kafumu_chat'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c';
$rez = $DB->QUR_SEL($sql);
if($rez){foreach($rez as $k => $v)if($k){
$v['data_c'] = date('H:i:s d.m.Y',$v['data_c']);
$v['text'] = stripslashes($v['text']);
$val['chat_umu'][]=$v;
}}
$zayavka = $val;
$smarty->assign('zayavka',$zayavka);
}else{
$des = 'show';
}
}*/
if($des == 'edit'){
$id = (int)$_GET['id'];
$sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE id='.$id.' AND status=3';
$rez = $DB->QUR_SEL($sql);
//echo $sql.'<pre>'.print_r($rez,1).'</pre>'; exit();
//SELECT * FROM acs_iup_studentzayavks WHERE id=7493 AND status=3
//Array ( [0] => 1 [1] => Array (
// [id] => 7493 [data_c] => 1695122381 [id_user] => 1312 [fio] => Солтамурадов Магомед Турпалович
// [pred_obraz] => продолжаю обучение [obraz_uchr] => ФГБОУ ВО «МГТУ
// [diplom_seriya] => [diplom_nomer] => [diplom_data] => 1695122381
// [pret_naprav] => ЛД:Лечебное дело АКТУАЛЬНЫЙ:Лечебное дело АКТУАЛЬНЫЙ:Специалитет
// [pret_kurs] => 6 [pret_fo] => очная [status] => 3 [tel] => 89287828287 [pret_format] => [perevod] => 0
// )
//)
if($rez){
$val = $rez[1]; $id_zayavka=$val['id'];
$val['data_c'] = date('H:i:s d.m.Y',$val['data_c']);
$val['diplom_data'] = date('d.m.Y',$val['diplom_data']);
$sql = 'SELECT * FROM '.$TB['iup_studentzayavks_files'].' WHERE id_studentzayavks='.$id_zayavka.' ORDER BY data_c';
$rez = $DB->QUR_SEL($sql);
//echo $sql.'<pre>'.print_r($rez,1).'</pre>'; exit();
//SELECT * FROM acs_iup_studentzayavks_files WHERE id_studentzayavks=7493 ORDER BY data_c
//Array([0] => 2
// [1] => Array(
// [id] => 24986 [data_c] => 1695122381 [id_user] => 1312 [id_studentzayavks] => 7493
// [tipfile] => Справка о периоде обучения(если продолжаете обучение в МГТУ, то копия зачетной книжки)
// [file] => upload/iup/1312/image.jpg [status] => 1
// )
// [2] => Array (
// [id] => 24987 [data_c] => 1695122381 [id_user] => 1312 [id_studentzayavks] => 7493
// [tipfile] => Справка о периоде обучения(если продолжаете обучение в МГТУ, то копия зачетной книжки)
// [file] => upload/iup/1312/image.jpg
// [status] => 1
// )
//)
if($rez){foreach($rez as $k => $v)if($k){
$v['data_c'] = date('H:i:s d.m.Y',$v['data_c']);
$val['files'][]=$v;
}}
//получим предметы по привязке ЗАЯВКИ к УЧ.ПЛАНУ
$predmets = iup_get_predmets_BYzp($id_zayavka);
if(!count($predmets)) {
$val['predmets'] = iup_get_predmets($_SESSION['user']['teacher']['fakultet'], $val['pret_naprav'], $val['pret_kurs'], $val['pret_fo']);
}else{
$val['predmets'] = $predmets;
}
//echo '<pre>'.print_r($val['predmets'],1).'</pre>'; exit();
//Array ( [0] => Array (
// [id] => 153414 [name_disp] => История discid] => Б1.Б.01 [isk] => [kurs] => 1 [sem] => 2
// [ekz] => [zach] => 1 [zet] => 2 [godob] => 2018 [dispovyb] => [kpro] => [krab] => )
$at=0;$ad=0;$addtime=0;$addday=0;
foreach($val['predmets'] as $k => $v){
$id_predmet = $v['id'];
$sql3 = 'SELECT prepod_name FROM '.$TB['iup_zamdekan'].' WHERE id_studentzayavks='.$id_zayavka.' AND predmet_id='.$id_predmet.'';
$rez3 = $DB->QUR_SEL($sql3);
//echo $sql3.'<pre>'.print_r($rez3,1).'</pre>';
//SELECT prepod_name FROM acs_iup_zamdekan WHERE id_studentzayavks=7493 AND predmet_id=153414
if($rez3){
$val['predmets'][$k]['prepodfio']=$rez3[1]['prepod_name'];
$sql4 = 'SELECT * FROM '.$TB['iup_ocenki'].' WHERE id_studentzayavks='.$id_zayavka.' AND id_predmet='.$id_predmet.' ORDER BY data_c DESC';
$rez4 = $DB->QUR_SEL($sql4);
if($rez4){
$val['predmets'][$k]['ocenki']=$rez4[1];
}
}else{
$val['predmets'][$k]['prepodfio']='';
}
}
$sql = 'SELECT * FROM '.$TB['iup_kafedrs_files'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c';
$rez = $DB->QUR_SEL($sql);
if($rez){foreach($rez as $k => $v)if($k){
$v['data_c'] = date('H:i:s d.m.Y',$v['data_c']);
$namefile=''; $t=explode('/',$v['file']); $namefile=$t[count($t)-1];
$v['namefile'] = $namefile;
$val['filesk'][]=$v;
}}
$sql = 'SELECT * FROM '.$TB['iup_kafumu_chat'].' WHERE id_studentzayavks='.$val['id'].' ORDER BY data_c';
$rez = $DB->QUR_SEL($sql);
if($rez){foreach($rez as $k => $v)if($k){
$v['data_c'] = date('H:i:s d.m.Y',$v['data_c']);
$v['text'] = stripslashes($v['text']);
$val['chat_umu'][]=$v;
}}
$zayavka = $val;
$smarty->assign('zayavka',$zayavka);
}else{
$des = 'show';
}
}
if($des == 'show'){//исправить выбирать статус 3!!! AND status=3
$zayavks=array();
if($_SESSION['user']['teacher']['fakultet']=='Филиал МГТУ'){
$sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE (pret_naprav LIKE "%'.implode('%" OR pret_naprav LIKE "%',$zamdeknaprav).'%") AND (status=3 OR status=5 OR status=6) ORDER BY data_c DESC';//echo $sql;
}else{
$sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE (pret_naprav LIKE "%:'.implode('%" OR pret_naprav LIKE "%:',$zamdeknaprav).'%") AND pret_naprav NOT LIKE "Фс:%" AND (status=3 OR status=5 OR status=6) ORDER BY data_c DESC';
//скопировано с iup_zamdekan
if (in_array("Фармация", $zamdeknaprav)) $sql = 'SELECT * FROM '.$TB['iup_studentzayavks'].' WHERE (pret_naprav LIKE "%:Фармация%") ORDER BY data_c DESC';
//конец скопированного фрагмента
}
$rez = $DB->QUR_SEL($sql);
if($rez){
foreach($rez as $key => $val)if($key){
$id_zayavka = $val['id'];
$val['data_c'] = date('H:i:s d.m.Y',$val['data_c']);
if($val['status']>4){
$sql1 = 'SELECT data_c,file FROM '.$TB['iup_kafedrs_files'].' WHERE id_studentzayavks='.$id_zayavka.' ORDER BY data_c DESC LIMIT 1';
$rez1 = $DB->QUR_SEL($sql1);
if($rez1){
$fr = $rez1[1];
$fr['data_c'] = date('H:i:s d.m.Y',$fr['data_c']);
$namefile=''; $t=explode('/',$fr['file']); $namefile=$t[count($t)-1];
$fr['namefile'] = $namefile;
$val['filesk']=$fr;
}
}
$zayavks[] = $val;
}
}
$smarty->assign('zayavks',$zayavks);
//надо выбрать загруженные планы!
$shahtplans=array();
if($_SESSION['user']['status']==99){
//Добавим пагинацию для админа по загруженным планам
$page_kol=50; $page_nav = 1; if(isset($_GET['nav'])) $page_nav = (int)$_GET['nav'];
//iup_lkkafedry_search_naprav iup_lkkafedry_search_god
$WH=array(); if(isset($_POST['iup_lkkafedry_search'])){
if($_POST['iup_lkkafedry_search_naprav']!='') {
$WH[] = 'napravlenie LIKE "%'.$DB->rescape($_POST['iup_lkkafedry_search_naprav']).'%"';
$smarty->assign('iup_lkkafedry_search_naprav',$DB->rescape($_POST['iup_lkkafedry_search_naprav']));
}
if($_POST['iup_lkkafedry_search_god']!='') {
$WH[] = 'godob = '.(int)$DB->rescape($_POST['iup_lkkafedry_search_god']).'';
$smarty->assign('iup_lkkafedry_search_god',$DB->rescape($_POST['iup_lkkafedry_search_god']));
}
}
if (count($WH)){
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE '.implode(' AND ',$WH).' ORDER BY napravlenie,godob';
}else{
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' ORDER BY napravlenie,godob LIMIT '.(($page_nav-1)*$page_kol).','.$page_kol.'';
//Закэшируем кол-во записей
if(!isset($_SESSION['iup_lkkafedry_all'])){
$rez_nav1 = $DB->QUR_SEL('SELECT COUNT(id) as ids FROM '.$TB['iup_shahtplans']);
$_SESSION['iup_lkkafedry_all'] = $rez_nav['all'] = ceil($rez_nav1[1]['ids']/$page_kol);
}else{
$rez_nav['all'] = $_SESSION['iup_lkkafedry_all'];
}
$rez_nav['pk'] = $page_kol;
$rez_nav['cur'] = $page_nav;
$smarty->assign('rez_nav',$rez_nav);
}
}else{
$sql = 'SELECT * FROM '.$TB['iup_shahtplans'].' WHERE user_id='.$_SESSION['user']['id'].' ORDER BY napravlenie,godob';
}
$rez = $DB->QUR_SEL($sql);
if($rez){
foreach($rez as $key => $val)if($key){
$val['data_c'] = date('H:i:s d.m.Y',$val['data_c']);
$val['err']=array();
$val['userfio']='';
if($_SESSION['user']['status']==99){
$sql1 = 'SELECT fio FROM '.$ST['dbpf'].'_users WHERE id='.$val['user_id'].'';
$rez1 = $DB->QUR_SEL($sql1);
if($rez1){
$val['userfio']=$rez1[1]['fio'];
}
}
/*$sql1 = 'SELECT * FROM '.$TB['iup_shahtplans_plans'].' WHERE id_file='.$val['id'].'';
$rez1 = $DB->QUR_SEL($sql1);
if($rez1){
$val['db']=1;
$val['plans']=$rez1[1];
$pp=explode(':',mb_strtolower($val['naprav']));
$val['pp']=$pp;
$nappodgo=mb_strtolower ($val['plans']['nappodgo']);
$nappodgo=str_replace("\n",' ',$nappodgo);
$nappodgo=str_replace("\r",'',$nappodgo);
$propodgo=mb_strtolower ($val['plans']['propodgo']);
if($propodgo[0]=='-'){
$propodgo=str_replace('-','',$propodgo);
}
$obrpro=trim(str_replace('академический','',mb_strtolower ($val['plans']['obrpro'])));
$obrpro=str_replace('бакалавр','бакалавриат',$obrpro);
$obrpro=str_replace('подготовка бакалавров','бакалавриат',$obrpro);
$obrpro=str_replace('подготовка бакалавриатов','бакалавриат',$obrpro);
$obrpro=str_replace('прикладной бакалавриат','бакалавриат',$obrpro);
$obrpro=str_replace('магистр','магистратура',$obrpro);
$obrpro=str_replace('специалист','Специалитет',$obrpro);
$obrpro=str_replace('специалист ','Специалитет',$obrpro);
$obrpro=str_replace('Специалист','Специалитет',$obrpro);
$obrpro=str_replace('специалитет','Специалитет',$obrpro);
$obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro);
$obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro);
$obrpro=str_replace('Врач общей практики','Специалитет',$obrpro);
$obrpro=str_replace('врач - педиатр общей практики','Специалитет',$obrpro);
$obrpro=str_replace('подготовка','',$obrpro);
$obrpro=str_replace('ов','',$obrpro);
$obrpro=str_replace('провизор','Специалитет',$obrpro);
$nappodgo=trim($nappodgo);
$propodgo=trim($propodgo);
$obrpro=mb_strtolower(trim($obrpro));
$val['pp1']=array(0=>'',$nappodgo,$propodgo,$obrpro);
if(count($pp)>2){
if($pp[1]!=$nappodgo){
$val['err'][]='Не совпадает направление! => '.$pp[1].'<>'.$nappodgo;
}
if($propodgo==''){
$val['err'][]='Профиль пустой!';
}else{
if($pp[2]!=$propodgo){
$val['err'][]='Не совпадает профиль! В файле:['.$pp[2].'] выбрали ['.$propodgo.'] измените в файле!';
}
}
if($pp[3]!=$obrpro){
$val['err'][]='Не совпадает тип(бакалавр,магистр)! => '.$pp[3].'<>'.$obrpro;
}
}
//надо проверить связку с оценками-чтобы предупреждать при удалении
$sql2 = 'SELECT count(zd.id) as kol FROM '.$TB['iup_shahtplans_stroki'].' as ss, '.$TB['iup_zamdekan'].' as zd WHERE ss.id_plans='.$val['plans']['id'].' AND zd.predmet_id=ss.id';
$rez2 = $DB->QUR_SEL($sql2);
if($rez2){
$val['ispolzuetsya'] = $rez2[1]['kol'];
}else{
$val['ispolzuetsya'] = 0;
}
}else{
$val['db']=0;
$val['ispolzuetsya'] = 0;
}*/
$shahtplans[] = ShahtPlan_Get_Info($val);
}
}
$smarty->assign('shahtplans',$shahtplans);
$napravlenie = iup_get_napravlenie();
$smarty->assign('napravlenie',$napravlenie);
}
$smarty->assign('zamdeknaprav',$zamdeknaprav);
$smarty->assign('page',$page);
$smarty->assign('des',$des);
$smarty->assign('msg',$msg);
$maincontent = $smarty->fetch('tpl_iup_main.html');
function ShahtPlan_Get_Info($val){
GLOBAL $TB,$DB;
$sql1 = 'SELECT * FROM '.$TB['iup_shahtplans_plans'].' WHERE id_file='.$val['id'].'';
$rez1 = $DB->QUR_SEL($sql1);
if($rez1){
$val['db']=1;
$val['plans']=$rez1[1];
$pp=explode(':',mb_strtolower($val['naprav']));
$val['pp']=$pp;
$nappodgo=mb_strtolower ($val['plans']['nappodgo']);
$nappodgo=str_replace("\n",' ',$nappodgo);
$nappodgo=str_replace("\r",'',$nappodgo);
$propodgo=mb_strtolower ($val['plans']['propodgo']);
if($propodgo[0]=='-'){
$propodgo=str_replace('-','',$propodgo);
}
$obrpro=trim(str_replace('академический','',mb_strtolower ($val['plans']['obrpro'])));
$obrpro=str_replace('бакалавр','бакалавриат',$obrpro);
$obrpro=str_replace('подготовка бакалавров','бакалавриат',$obrpro);
$obrpro=str_replace('подготовка бакалавриатов','бакалавриат',$obrpro);
$obrpro=str_replace('прикладной бакалавриат','бакалавриат',$obrpro);
$obrpro=str_replace('магистр','магистратура',$obrpro);
$obrpro=str_replace('специалист','Специалитет',$obrpro);
$obrpro=str_replace('специалист ','Специалитет',$obrpro);
$obrpro=str_replace('Специалист','Специалитет',$obrpro);
$obrpro=str_replace('специалитет','Специалитет',$obrpro);
$obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro);
$obrpro=str_replace('Специалитет таможенного дела','Специалитет',$obrpro);
$obrpro=str_replace('Врач общей практики','Специалитет',$obrpro);
$obrpro=str_replace('врач - педиатр общей практики','Специалитет',$obrpro);
$obrpro=str_replace('подготовка','',$obrpro);
$obrpro=str_replace('ов','',$obrpro);
$obrpro=str_replace('провизор','Специалитет',$obrpro);
$nappodgo=trim($nappodgo);
$propodgo=trim($propodgo);
$obrpro=mb_strtolower(trim($obrpro));
$val['pp1']=array(0=>'',$nappodgo,$propodgo,$obrpro);
if(count($pp)>2){
if($pp[1]!=$nappodgo){
$val['err'][]='Не совпадает направление! => '.$pp[1].'<>'.$nappodgo;
}
if($propodgo==''){
$val['err'][]='Профиль пустой!';
}else{
if($pp[2]!=$propodgo){
$val['err'][]='Не совпадает профиль! В файле:['.$pp[2].'] выбрали ['.$propodgo.'] измените в файле!';
}
}
if($pp[3]!=$obrpro){
$val['err'][]='Не совпадает тип(бакалавр,магистр)! => '.$pp[3].'<>'.$obrpro;
}
}
//надо проверить связку с оценками-чтобы предупреждать при удалении
$sql2 = 'SELECT count(zd.id) as kol FROM '.$TB['iup_shahtplans_stroki'].' as ss, '.$TB['iup_zamdekan'].' as zd WHERE ss.id_plans='.$val['plans']['id'].' AND zd.predmet_id=ss.id';
$rez2 = $DB->QUR_SEL($sql2);
if($rez2){
$val['ispolzuetsya'] = $rez2[1]['kol'];
}else{
$val['ispolzuetsya'] = 0;
}
}else{
$val['db']=0;
$val['ispolzuetsya'] = 0;
}
return $val;
}
function parse_shahtplan($file,$id_file,$dd=1){//разбираем шахтинский план!
GLOBAL $DB,$ST,$TB; $out = array(); $out['err'] = ''; $out['msg'] = '';
$aplan=array();
if($dd==0){ $out['msg'] .= '$file='.$file.'<br>'; }
/*
<Документ CrAppVer="40001" CrWrite="01.01.0001" AppVersion="40211" MinAppVersion="40001" Тип="УЧЕБНЫЙ ПЛАН" PrevName="z ППР проект пр 2020-2021.plx" PrevWrite="23.03.2020" LastName="z ППР проект пр 2020-2021.plx" LastWrite="31.08.2020" WrPth="C:\U~" UserName="DESKTOP-5AEL9JU\Admin" UserPC="DESKTOP-5AEL9JU" ЧислоКурсов="7" СеместровНаКурсе="1" СессийНаКурсе="3" ЭлементовВНеделе="6" ТипГОСа="3.5" КодУровняОбразования="2" КодФормыОбучения="2">
<Документ CrAppVer="22454" CrWrite="17.02.2019" AppVersion="40211" MinAppVersion="40001" Тип=" УЧЕБНЫЙ ПЛАН" PrevName="35.03.06 3+++.plx" PrevWrite="23.03.2020" LastName="35.03.06 3+++.plx" LastWrite="31.08.2020" WrPth="C:\U~" UserName="DESKTOP-5AEL9JU\Admin" UserPC="DESKTOP-5AEL9JU" ЧислоКурсов="7" СеместровНаКурсе="2" СессийНаКурсе="0" ЭлементовВНеделе="6" ТипГОСа="3.75" КодУровняОбразования="2" КодФормыОбучения="1">
*/
if(file_exists($file)){
if($dd==0){ $out['msg'] .= '$file='.$file.'<br>'; }
$t=explode('.',$file);
if($t[count($t)-1]=='plx'){
$out['msg'] .= 'ФАЙЛ PLX<br>';
$out['msg'] .= 'файл найден<br>';
$fplan = file_get_contents($file);
//echo '<pre>'.print_r($file,1).'</pre>'; exit();
$plan = new SimpleXMLElement($fplan);
//echo '<pre>'.print_r($fplan,1).'</pre>'; exit();
$xml = dom_import_simplexml($plan);
//if($dd==0){ $out['msg'] .= 'xml.plx:<pre>'.print_r($xml,1).'</pre>'; }
$nodelist= $xml->getElementsByTagName('ООП');
$oop=array();
for($i = 0; $i < $nodelist->length; $i++) {
$attr = $nodelist->item($i)->attributes;
for($j = 0; $j < $attr->length; $j++) {
$oop[$i][$attr->item($j)->name] = $attr->item($j)->value;
}
}
//if($dd==0){ $out['msg'] .= '$oop<pre>'.print_r($oop,1).'</pre>';}
/*
Array(
[0] => Array (
[id] => ООП96
[rowOrder] => 0
[hasChanges] => modified
[Код] => 5710
[Шифр] => 36.03.02
[Название] => ЗООТЕХНИЯ
[УровеньОбразования] => 3
[Квалификация] => 2
[СрокЛет] => 4
[НомерДокумента] => 250
[ДатаДокумента] => 2016-03-21T00:00:00
[ТипГОСа] => 3.5
[Используется] => false
[Префикс] =>
)
[1] => Array (
[id] => ООП96
[rowOrder] => 0
[Код] => 5710
[Шифр] => 36.03.02
[Название] => ЗООТЕХНИЯ
[Квалификация] => 16
[СрокЛет] => 4
[НомерДокумента] => 250
[ДатаДокумента] => 2016-03-21T00:00:00
[Используется] => false
[Префикс] =>
)
)
*/
$nodelist= $xml->getElementsByTagName('Факультеты');
$Fak=array();
for($i = 0; $i < $nodelist->length; $i++) {
$attr = $nodelist->item($i)->attributes;
for($j = 0; $j < $attr->length; $j++) {
$Fak[$i][$attr->item($j)->name] = $attr->item($j)->value;
}
}
//if($dd==0){ $out['msg'] .= '$Fak<pre>'.print_r($Fak,1).'</pre>';}
/*
Array(
[0] => Array (
[id] => Факультеты1
[rowOrder] => 0
[hasChanges] => inserted
[Код] => -1
[Факультет] => аграрных технологий
[Сокращение] =>
[Псевдоним] =>
[Декан] =>
[Телефон] =>
[Аудитория] =>
[Сайт] => false
[ВнутрТелефон] =>
[EMail] =>
[URL] =>
[ФайлСтиля] =>
[Шифр] =>
[Описание] =>
[Код_филиала] => -1
[РодПадеж] =>
[Секретарь] =>
[ЗамДекана] =>
[Тип] => Факультет
)
)
*/
$nodelist= $xml->getElementsByTagName('Планы');
$Plan=array();
for($i = 0; $i < $nodelist->length; $i++) {
$attr = $nodelist->item($i)->attributes;
for($j = 0; $j < $attr->length; $j++) {
$Plan[$i][$attr->item($j)->name] = $attr->item($j)->value;
}
}
//if($dd==0){ $out['msg'] .= '$Plan<pre>'.print_r($Plan,1).'</pre>'; }
/*
Array(
[0] => Array (
[id] => Планы1
[rowOrder] => 0
[hasChanges] => inserted
[Код] => -1
[УчебныйГод] => 2018-2019
[КодООП] => 5710
[КодФормыОбучения] => 2
[КодПрограммы] => 3
[КодОрганизации] => -1
[КодФакультета] => -1
[КодПрофКафедры] => 30
[Сокращённое] => false
[Дистанционное] => false
[ДляИностранных] => false
[Титул] => Направление подготовки «Зоотехния» Профиль подготовки «Технология производства продукции животноводства»
[Квалификация] => бакалавр
[Специализация] =>
[ВоеннаяСпециальность] =>
[Предназначение] =>
[СрокОбучения] => 4
[СрокОбученияМесяцев] => 6
[ЧислоКурсов] => 7
[ЧислоСессий] => 0
[КодГрафика] => -1
[НомерФГОС] => 250
[ДатаГОСа] => 2016-03-21T00:00:00
[ДатаВерсииПриложения] => 2018-01-18T00:00:00
[НомерВерсииПриложения] => 40147
[ИмяПриложения] => UpVo
[НомерПользователя] => 1014565
[ИмяПользователя] => 2_53-1\Admin
[ИмяФайла] => z36.03.02_62-14-1234-2356 ЗТ 18 год. без звезды.plx
[ДатаИзмФайла] => 2018-01-30T16:14:15.09375
[ДатаУтверСоветом] => 2018-04-25T00:00:00
[НомПротокСовета] => 5
[Примечание] =>
[ГодНачалаПодготовки] => 2018
[ТипГОСа] => 3.5
[КодАктивногоООП] => 5710
[ЗЕТвНеделю] => 1.5
[Точность] => 0.25
[ДвИГА] => true
[ГвИГА] => true
[СеместровНаКурсе] => 2
[ЧасовВКредите] => 36
[Индивидуальный] => 0
[ФИО] => ""
[Военные] => false
[КодУровняОбразования] => 2
[КодТипаПлана] => 0
[СтатусВНагрузке] => 0
)
)
*/
$aplan['obrpro'] = trim($Plan[0]['Квалификация']);
if($Plan[0]['КодФормыОбучения']==1) $aplan['forobu'] = 'очная';
if($Plan[0]['КодФормыОбучения']==2) $aplan['forobu'] = 'заочная';
if($plan['КодУровняОбразования']==2) $aplan['uroobr'] = 'ВПО'; else $aplan['uroobr'] = 'СПО';
$aplan['kodkaf'] = trim($Plan[0]['КодПрофКафедры']);
$aplan['fakult'] = trim($Fak[0]['Факультет']);
$aplan['shifr1'] = trim($oop[0]['Шифр']);
$aplan['godnap'] = trim($Plan[0]['ГодНачалаПодготовки']);
$aplan['nappodgo'] = trim($oop[0]['Название']);
$aplan['nappodgo'] = str_replace('«','',$aplan['nappodgo']);
$aplan['nappodgo'] = str_replace('»','',$aplan['nappodgo']);
$aplan['nappodgo'] = str_replace('"','',$aplan['nappodgo']);
$aplan['propodgo'] = '';
$aplan['kvalif_name'] = trim($Plan[0]['Квалификация']);
$aplan['kvalif_srok'] = trim($Plan[0]['СрокОбучения']).'г '.trim($Plan[0]['СрокОбученияМесяцев']).'м';
$aplan['titul']=trim($Plan[0]['Титул']);
if (strpos($aplan['titul'], 'Профиль') !== false) {
$tpp=explode('рофиль',$aplan['titul']);
$aplan['propodgo'] = trim(str_replace('подготовки','',$tpp[1]));
$aplan['propodgo'] = str_replace('Профиль ','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('профиль ','',$aplan['propodgo']);
}else{
if (strpos($aplan['titul'], 'профиль') !== false) {
$tpp=explode('профиль',$aplan['titul']);
$aplan['propodgo'] = trim(str_replace('подготовки','',$tpp[1]));
}
if (strpos($aplan['titul'], 'аправленность') !== false) {
$tpp=explode('аправленность',$aplan['titul']);
$aplan['propodgo'] = trim(str_replace(':','',$tpp[1]));
}
}
$aplan['propodgo'] = str_replace('«','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('»','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('"','',$aplan['propodgo']);
if($aplan['propodgo'][0]==':') $aplan['propodgo'] = trim(str_replace(': ','',$aplan['propodgo']));
$aplan['strsplan']=array();
/*
<Планы diffgr:id="Планы1" msdata:rowOrder="0" diffgr:hasChanges="inserted" Код="-1" УчебныйГод="2018-2019" КодООП="5710" КодФормыОбучения="2" КодПрограммы="3" КодОрганизации="-1" КодФакультета="-1" КодПрофКафедры="30" Сокращённое="false" Дистанционное="false" ДляИностранных="false" Титул="Направление подготовки «Зоотехния» Профиль подготовки «Технология производства продукции животноводства»" Квалификация="бакалавр" Специализация="" ВоеннаяСпециальность="" Предназначение="" СрокОбучения="4" СрокОбученияМесяцев="6" ЧислоКурсов="7" ЧислоСессий="0" КодГрафика="-1" НомерФГОС="250" ДатаГОСа="2016-03-21T00:00:00" ДатаВерсииПриложения="2018-01-18T00:00:00" НомерВерсииПриложения="40147" ИмяПриложения="UpVo" НомерПользователя="1014565" ИмяПользователя="2_53-1\Admin" ИмяФайла="z36.03.02_62-14-1234-2356 ЗТ 18 год. без звезды.plx" ДатаИзмФайла="2018-01-30T16:14:15.09375" ДатаУтверСоветом="2018-04-25T00:00:00" НомПротокСовета="5" Примечание="" ГодНачалаПодготовки="2018" ТипГОСа="3.5" КодАктивногоООП="5710" ЗЕТвНеделю="1.5" Точность="0.25" ДвИГА="true" ГвИГА="true" СеместровНаКурсе="2" ЧасовВКредите="36" Индивидуальный="0" ФИО="&quot;&quot;" Военные="false" КодУровняОбразования="2" КодТипаПлана="0" СтатусВНагрузке="0" />
*/
/*
<ПланыСтроки
diffgr:id="ПланыСтроки1" msdata:rowOrder="0" diffgr:hasChanges="inserted"
Код="-1" КодПлана="-1" КодООП="5710" КодБлока="-2" КодКафедры="2"
Дисциплина="История" ТипОбъекта="2" ВидОбъекта="1" РассредПрактика="false"
УровеньВложения="1" ПризнакФизкультуры="false" СчитатьБезЗЕТ="false" СчитатьВПлане="true"
НеСчитатьКонтроль="false" ЗаСчетПолевых="false" ДисциплинаКод="Б1.Б.01" ТрудоемкостьКредитов="4"
ЧасовВЗЕТ="36" ЗЕТфакт="4" ЗЕТизучено="0" ЧасовПоЗЕТ="144" ЧасовПоПлану="144" ПодлежитИзучениюЧасов="144"
НестандартНедПрактики="false" ReadOnly="false" Свернуть="false" Multiselect="0"
Оценка="0" ТипПерезачета="0" Адаптационная="false" />
*/
/*
<ПланыГрафикиЯчейки
0 diffgr:id="ПланыГрафикиЯчейки1"
1 msdata:rowOrder="0"
2 diffgr:hasChanges="inserted"
3 Код="-1"
4 КодГрафика="-1"
5 КодВидаДеятельности="1"
6 НомерНедели="1"
7 НомерЧастиНедели="1"
8 Курс="1"
Семестр="1"
Переаттестована="false"
КоличествоЧастейВНеделе="1"
НомерПервойНедели="1" />
*/
$nodelist= $xml->getElementsByTagName('ПланыСтроки');
$PlansString=array(); $tmp=array();
for($i = 0; $i < $nodelist->length; $i++) {
$attr = $nodelist->item($i)->attributes;
//echo '1<pre>'.print_r($nodelist->item($i),1).'</pre>';exit();
$tmp1['nom'] = 0;//курс
for($j = 0; $j < $attr->length; $j++) {
$name = $attr->item($j)->name;
$value = $attr->item($j)->value;
$PlansString[$i][$name] = $value;
if($name == 'Дисциплина') $tmp['discip'] = trim($value);
if($name == 'ДисциплинаКод') $tmp['discid'] = trim($value);
if($name == 'ЧасовВЗЕТ') $tmp['chaszet'] = trim($value);
if($name == 'ЗЕТфакт') $tmp['zetfakt'] = trim($value);
//echo '2<pre>'.print_r($attr->item($j),1).'</pre>';exit();
if($name == 'Код'){//нашли номер записи
$kod = trim($value);
$nodelist1= $xml->getElementsByTagName('ПланыНовыеЧасы');
$kkk=-1; $ekz=array(); $zach=array(); $kpro=array(); $krab=array();
//В новых версиях нумерация аттрибутов отличается! надо определять по имени!
/*есть
Код: КодВидаРаботы=101=-1
Код[Определили]: КодВидаРаботы=101=-1
Код5: КодТипаЧасов=1=-1
Код7: Семестр=1=-1
Код8: Сессия=0=-1
Код12: Переаттестовано=false=-1
*/
/*должно быть
Код: КодОбъекта=-1=-1
Код[Определили]: КодОбъекта=-1=-1
Код5: КодВидаРаботы=101=-1
Код7: Курс=1=-1
Код8: Семестр=1=-1
Код12: Количество=34=-1
*/
/*$nodelist1->item($i1)->attributes[4]->value должен быть КодОбъекта в новых версиях это КодВидаРаботы - что не правильно!
if($dd==0) {
$out['msg'] .= '$nodelist1=<pre>'.print_r($nodelist1,1).'</pre>';
$out['msg'] .= '$nodelist1->item(0)=<pre>'.print_r($nodelist1->item(0),1).'</pre>';
$out['msg'] .= '$nodelist1->item(0)->length=<pre>'.print_r($nodelist1->item(0)->length,1).'</pre>';
$out['msg'] .= '$nodelist1->item(0)->attributes=<pre>'.print_r($nodelist1->item(0)->attributes,1).'</pre>';
$out['msg'] .= '$nodelist1->item(0)->attributes->length=<pre>'.print_r($nodelist1->item(0)->attributes->length,1).'</pre>';
}*/
$num4=4;$num5=5;$num7=7;$num8=8;$num12=12;
for($j0 = 0; $j0 < $nodelist1->item(0)->attributes->length; $j0++) {
if($nodelist1->item(0)->attributes[$j0]->name == 'КодОбъекта') $num4=$j0;
if($nodelist1->item(0)->attributes[$j0]->name == 'КодВидаРаботы') $num5=$j0;
if($nodelist1->item(0)->attributes[$j0]->name == 'Курс') $num7=$j0;
if($nodelist1->item(0)->attributes[$j0]->name == 'Семестр') $num8=$j0;
if($nodelist1->item(0)->attributes[$j0]->name == 'Количество') $num12=$j0;
}
/*if($dd==0) {
$out['msg'] .= 'Код4[Определили]: '.$nodelist1->item(0)->attributes[$num4]->name.'='.$nodelist1->item(0)->attributes[$num4]->value.'<br>';
$out['msg'] .= 'Код5[Определили]: '.$nodelist1->item(0)->attributes[$num5]->name.'='.$nodelist1->item(0)->attributes[$num5]->value.'<br>';
$out['msg'] .= 'Код7[Определили]: '.$nodelist1->item(0)->attributes[$num7]->name.'='.$nodelist1->item(0)->attributes[$num7]->value.'<br>';
$out['msg'] .= 'Код8[Определили]: '.$nodelist1->item(0)->attributes[$num8]->name.'='.$nodelist1->item(0)->attributes[$num8]->value.'<br>';
$out['msg'] .= 'Код12[Определили]: '.$nodelist1->item(0)->attributes[$num12]->name.'='.$nodelist1->item(0)->attributes[$num12]->value.'<br>';
}*/
for($i1 = 0; $i1 < $nodelist1->length; $i1++) {
if($nodelist1->item($i1)->attributes[$num4]->value == $kod){
$tip='und';
if($nodelist1->item($i1)->attributes[$num5]->value == '101') $tip='lek';//лекции
if($nodelist1->item($i1)->attributes[$num5]->value == '103') $tip='pr';//Практич
if($nodelist1->item($i1)->attributes[$num5]->value == '107') $tip='srs';//СР
if($nodelist1->item($i1)->attributes[$num5]->value == '108') $tip='kontr';//контроль
if($nodelist1->item($i1)->attributes[$num5]->value == '50') $tip='zet';//фактз.е.
if($nodelist1->item($i1)->attributes[$num5]->value == '1000') $tip='itogo';//
if($nodelist1->item($i1)->attributes[$num5]->value == '1') $tip='ekz';//
if($nodelist1->item($i1)->attributes[$num5]->value == '2') $tip='zach';//
if($nodelist1->item($i1)->attributes[$num5]->value == '4') $tip='kpro';//Курсовой проект
if($nodelist1->item($i1)->attributes[$num5]->value == '5') $tip='krab';//Курсовая работа
$kurs=$nodelist1->item($i1)->attributes[$num7]->value;
$tsem=$nodelist1->item($i1)->attributes[$num8]->value;
$sem=0; if($tsem==2) $sem=$kurs*2; else $sem=($kurs*2)-1;
if($tip=='ekz'){ if(!in_array($sem,$ekz)) $ekz[]=$sem; }
if($tip=='zach'){ if(!in_array($sem,$zach)) $zach[]=$sem; }
if($tip=='kpro'){ if(!in_array($sem,$kpro)) $kpro[]=$sem; }
if($tip=='krab'){ if(!in_array($sem,$krab)) $krab[]=$sem; }
if($tip=='und'){ $tip=$nodelist1->item($i1)->attributes[$num5]->value; }
$tmp['kurs'][$kurs][$sem][$tip]=$nodelist1->item($i1)->attributes[$num12]->value;
}
}
}
//надо еще определять дисциплины по выбору
if($name == 'ТипОбъекта'){//ТипОбъекта="5" это Дисциплины по выбору
$tmp['tipobject'] = trim($value);
}
if($name == 'КодРодителя'){//КодРодителя="50" это родитель Дисциплины по выбору
$tmp['kodrodit'] = trim($value);
}
/*//первая попытка найти по семестрам данные
if($name == 'rowOrder'){//нашли номер записи
$rowOrder = trim($value);
//ищем запись с курсом...
//$nodelist1= $xml->getElementsByTagName('ПланыГрафикиЯчейки')[1];//.attributes['rowOrder'];
$nodelist1= $xml->getElementsByTagName('ПланыГрафикиЯчейки');
//echo '4<pre>'.print_r($nodelist1,1).'</pre>';exit();
$kkk=-1;
for($i1 = 0; $i1 < $nodelist1->length; $i1++) {
//echo '<pre>'.print_r($nodelist1->item($i1)->attributes[1]->value,1).'</pre>';exit();
if($nodelist1->item($i1)->attributes[1]->value == $rowOrder){
$tmp1['nom'] = $nodelist1->item($i1)->attributes[8]->value;
}
}
}
*/
}
$tmp['ekz'] = $ekz;
$tmp['zach'] = $zach;
$tmp['kpro'] = $kpro;
$tmp['krab'] = $krab;
$aplan['strsplan'][]=$tmp;
//if ($i>300) { echo $name.'<pre>'.print_r($aplan,1).'</pre>'; exit(); }
$tmp=array();
}
//echo '<pre>'.print_r($aplan,1).'</pre>';exit();
//if($dd==0){ $out['msg'] .= '$aplan<pre>'.print_r($aplan,1).'</pre>';}
//if($dd==0){ $out['msg'] .= '$PlansString<pre>'.print_r($PlansString,1).'</pre>';}
/*Array(
[0] => Array(
[id] => ПланыСтроки1
[rowOrder] => 0
[hasChanges] => inserted
[Код] => -1
[КодПлана] => -1
[КодООП] => 5710
[КодБлока] => -2
[КодКафедры] => 2
[Дисциплина] => История
[ТипОбъекта] => 2
[ВидОбъекта] => 1
[РассредПрактика] => false
[УровеньВложения] => 1
[ПризнакФизкультуры] => false
[СчитатьБезЗЕТ] => false
[СчитатьВПлане] => true
[НеСчитатьКонтроль] => false
[ЗаСчетПолевых] => false
[ДисциплинаКод] => Б1.Б.01
[ТрудоемкостьКредитов] => 4
[ЧасовВЗЕТ] => 36
[ЗЕТфакт] => 4
[ЗЕТизучено] => 0
[ЧасовПоЗЕТ] => 144
[ЧасовПоПлану] => 144
[ПодлежитИзучениюЧасов] => 144
[НестандартНедПрактики] => false
[ReadOnly] => false
[Свернуть] => false
[Multiselect] => 0
[Оценка] => 0
[ТипПерезачета] => 0
[Адаптационная] => false
)
*/
}
else{//файлы с раширением XML
$out['msg'] .= 'файл найден<br>';
$fplan = file_get_contents($file);
$plan = new SimpleXMLElement($fplan);
//if($dd==0){ $out['msg'] .= 'plan.xml:<pre>'.print_r($plan,1).'</pre>'; }
$aplan['obrpro'] = trim($plan->{'План'}['ОбразовательнаяПрограмма']);
$aplan['forobu'] = trim($plan->{'План'}['ФормаОбучения']);
$aplan['uroobr'] = trim($plan->{'План'}['УровеньОбразования']);
$aplan['kodkaf'] = trim($plan->{'План'}->{'Титул'}['КодКафедры']);
$aplan['fakult'] = trim($plan->{'План'}->{'Титул'}['Факультет']);
$aplan['shifr1'] = trim($plan->{'План'}->{'Титул'}['ПоследнийШифр']);
$aplan['godnap'] = trim($plan->{'План'}->{'Титул'}['ГодНачалаПодготовки']);
$specialnosti = $plan->{'План'}->{'Титул'}->{'Специальности'};
foreach($specialnosti->{'Специальность'} as $k => $v){
if (strpos($v[0]['Название'], 'аправление') !== false) {
$aplan['nappodgo']=trim(str_replace('"','',str_replace('Направление подготовки','',$v[0]['Название'])));
$aplan['nappodgo'] = str_replace('«','',$aplan['nappodgo']);
$aplan['nappodgo'] = str_replace('»','',$aplan['nappodgo']);
$aplan['nappodgo'] = str_replace('"','',$aplan['nappodgo']);
}
if (strpos($v[0]['Название'], 'рофиль') !== false) {
$aplan['propodgo']=trim(str_replace('"','',str_replace('Профиль подготовки','',$v[0]['Название'])));
$aplan['propodgo'] = str_replace('Профиль ','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('профиль ','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('«','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('»','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('"','',$aplan['propodgo']);
}
if (strpos($v[0]['Название'], 'аправленность') !== false) {
$aplan['propodgo']=trim(str_replace('"','',str_replace('Направленность :','',$v[0]['Название'])));
$aplan['propodgo'] = str_replace('Направленность ','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('направленность ','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace(':','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('«','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('»','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('"','',$aplan['propodgo']);
}
/*
if($v[0]['Ном']==1||$v[0]['Ном']==2) {
$aplan['nappodgo']=trim(str_replace('"','',str_replace('Направление подготовки','',$v[0]['Название'])));
}
if($v[0]['Ном']==3) {
$aplan['propodgo']=trim(str_replace('"','',str_replace('Профиль подготовки','',$v[0]['Название'])));
$aplan['propodgo'] = str_replace('Профиль ','',$aplan['propodgo']);
$aplan['propodgo'] = str_replace('профиль ','',$aplan['propodgo']);
}*/
}
$aplan['kvalif_name'] = (string)$plan->{'План'}->{'Титул'}->{'Квалификации'}->{'Квалификация'}['Название'];
$aplan['kvalif_srok'] = (string)$plan->{'План'}->{'Титул'}->{'Квалификации'}->{'Квалификация'}['СрокОбучения'];
$aplan['strsplan']=array();
$strsplan = $plan->{'План'}->{'СтрокиПлана'};
/*
<Строка Дис="Иностранный язык" НовЦикл="Б1.Б" НовИдДисциплины="Б1.Б.3" Цикл="Б1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.Б.3" ГОС="360" СР="171" Кафедра="4" ПодлежитИзучению="360" КредитовНаДисциплину="10" ЧасовВЗЕТ="36" СемЭкз="3" СемЗач="12" НовСемЗач="12">
<Сем Ном="1" Пр="51" СРС="57" ЗЕТ="3" Зач="1">
<VZ ID="103" H="51" />
<VZ ID="107" H="57" />
</Сем>
<Сем Ном="2" Пр="51" СРС="57" ЗЕТ="3" Зач="1">
<VZ ID="103" H="51" />
<VZ ID="107" H="57" />
</Сем>
<Сем Ном="3" Пр="51" СРС="57" ЧасЭкз="36" ЗЕТ="4" Экз="1">
<VZ ID="103" H="51" />
<VZ ID="107" H="57" />
<VZ ID="108" H="36" />
</Сем>
</Строка>
*/
//if($dd==0){ $out['msg'] .= 'strsplan<pre>'.print_r($strsplan,1).'</pre>'; }
foreach($strsplan->{'Строка'} as $k => $v){
$tmp=array();
$tmp['discip'] = (string)$v['Дис'];
$tmp['discid'] = (string)$v['НовИдДисциплины'];
//$tmp['tipobject'] => 5 - дисциплина по выбору
//$tmp['kodrodit'] => номер - группировка дисциплин из которых выбираем
if(strpos($tmp['discid'],'.ДВ')!==false){ //Б1.В.ДВ.1.2
$tmp['tipobject'] = 5;
$tmp['kodrodit'] = (string)$v['Цикл'];
}else {
$tmp['tipobject'] = 2;
$tmp['kodrodit'] = '';
}
//if($dd==0){ $out['msg'] .= '$strsplan->{Строка}v<pre>'.print_r($v,1).'</pre>'; }
$tipks=0;
if(isset($v->{'Курс'})){
$strsplank = $v->{'Курс'};
$tipks=1;
}
if(isset($v->{'Сем'})){
$strsplank = $v->{'Сем'};
$tipks=2;
}
$tmp['zetfakt'] = 0; $ekz=array(); $zach=array(); $kpro=array(); $krab=array();
//if($dd==0){ $out['msg'] .= 'strsplank<pre>'.print_r($strsplank,1).'</pre>'; }
foreach($strsplank as $k1 => $v1){
//if($dd==0){ $out['msg'] .= '<pre>'.print_r($v1,1).'</pre>'; }
$tmp1=array();
$tmp1['nom'] = (string)$v1{'Ном'};
$tmp1['lek'] = (string)$v1{'Лек'};
$tmp1['lab'] = (string)$v1{'Лаб'};
$tmp1['pr'] = (string)$v1{'Пр'};
$tmp1['srs'] = (string)$v1{'СРС'};
$tmp1['chasekz'] = (string)$v1{'ЧасЭкз'};
$tmp1['zet'] = (string)$v1{'ЗЕТ'};
$tmp['zetfakt'] += (float)$tmp1['zet'];
$tmp1['ekz'] = (string)$v1{'Экз'};
$tmp1['zach'] = (string)$v1{'Зач'};
$tmp1['kpro'] = (string)$v1{'КП'};
$tmp1['krab'] = (string)$v1{'КР'};
$tmp1['vidkontr'] = (string)$v1{'ВидКонтр'};
$tmp1['kontrab'] = (string)$v1{'КонтрРаб'};
$tmp1['kontr'] = (string)$v1{'Контр'};
$strsplanks = $v1->{'Сессия'};
foreach($strsplanks as $k2 => $v2){
$tmp2=array();
$tmp2['nom'] = (string)$v2{'Ном'};
$tmp2['lek'] = (string)$v2{'Лек'};
$tmp2['lab'] = (string)$v2{'Лаб'};
$tmp2['pr'] = (string)$v2{'Пр'};
$tmp2['srs'] = (string)$v2{'СРС'};
$tmp2['chasekz'] = (string)$v2{'ЧасЭкз'};
$tmp2['zet'] = (string)$v2{'ЗЕТ'};
$tmp2['ekz'] = (string)$v2{'Экз'};
$tmp2['zach'] = (string)$v2{'Зач'};
$tmp2['kpro'] = (string)$v2{'КП'};
$tmp2['krab'] = (string)$v2{'КР'};
$tmp2['vidkontr'] = (string)$v2{'ВидКонтр'};
$tmp2['kontrab'] = (string)$v2{'КонтрРаб'};
$tmp2['kontr'] = (string)$v2{'Контр'};
$tmp1['sessiya'][$tmp2['nom']]=$tmp2;
}
if($tipks==1){
$kurs = $tmp1['nom'];
$sem=1;
}
if($tipks==2){
$sem = $tmp1['nom'];
$kurs = 0;
if($sem==1||$sem==2) $kurs = 1;
if($sem==3||$sem==4) $kurs = 2;
if($sem==5||$sem==6) $kurs = 3;
if($sem==7||$sem==8) $kurs = 4;
if($sem==9||$sem==10) $kurs = 5;
}
if($tmp1['ekz']!=''){ if(!in_array($sem,$ekz)) $ekz[] = $sem; }
if($tmp1['zach']!=''){ if(!in_array($sem,$zach)) $zach[] = $sem; }
if($tmp1['kpro']!=''){ if(!in_array($sem,$kpro)) $kpro[] = $sem; }
if($tmp1['krab']!=''){ if(!in_array($sem,$krab)) $krab[] = $sem; }
$tmp['kurs'][$kurs][$sem] = $tmp1;
}
$tmp['ekz']=$ekz;
$tmp['zach']=$zach;
$tmp['kpro'] = $kpro;
$tmp['krab'] = $krab;
$aplan['strsplan'][]=$tmp;
}
$out['msg'] .= 'файл обработан. Количество предметов: '.count($aplan['strsplan']).'<br>';
//$out['msg'] .= '<pre>'.print_r($aplan,1).'</pre>';
}
}else $out['err'] = 'файл не найден';
if($dd==0){
$out['msg'] .= '$aplan<pre>'.print_r($aplan,1).'</pre>';
}
else{
if(count($aplan)){//ПРОВЕРИМ В БД ЕСТЬ ЛИ ТАКОЙ ПЛАН?
$sql = 'SELECT * FROM '.$TB['iup_shahtplans_plans'].' WHERE obrpro="'.$aplan['obrpro'].'" AND forobu="'.$aplan['forobu'].'" AND uroobr="'.$aplan['uroobr'].'" AND kodkaf="'.$aplan['kodkaf'].'" AND fakult="'.$aplan['fakult'].'" AND shifr1="'.$aplan['shifr1'].'" AND godnap="'.$aplan['godnap'].'" AND nappodgo="'.addslashes($aplan['nappodgo']).'" AND propodgo="'.addslashes($aplan['propodgo']).'" AND kvalif_name="'.$aplan['kvalif_name'].'" AND kvalif_srok="'.$aplan['kvalif_srok'].'"';
$rez = $DB->QUR_SEL($sql); //$out['msg'] .= $sql.'<prE>'.print_r($rez,1).'</pre>';
//if($_SESSION['user']['id']==9202) file_put_contents('iup1.log',"\n".date('H:i:s d.m.Y').':'.$sql.print_r($rez,1),FILE_APPEND);
/*if($rez){
if($rez[0]>0){
$out['err'] .= 'Такой план уже есть в БД!<br>';
$out['err'] .= 'Данные которые есть в БД №'.$rez[1]['id_file'].' <B>ЗАПИСАН В СИСТЕМУ '.date('H:i d.m.Y',$rez[1]['data_c']).'</b>:<hr>';
$out['err'] .= 'uroobr: '.$aplan['uroobr'].' obrpro:'.$aplan['obrpro'].' forobu:'.$aplan['forobu'].'<br>';
$out['err'] .= 'Код каф.:'.$aplan['kodkaf'].' шифр:'.$aplan['shifr1'].' godnap:'.$aplan['godnap'].'<br>';
$out['err'] .= 'nappodgo:"<b>'.$aplan['nappodgo'].'</b>" propodgo:"<b>'.$aplan['propodgo'].'</b>"<br>';
$out['err'] .= 'kvalif_name:"'.$aplan['kvalif_name'].'" срок: '.$aplan['kvalif_srok'].'<hR>';
$out['err'] .= '<span style="color:red;">ЕСЛИ ВЫ ХОТИТЕ ЗАМЕНИТЬ ПЛАН, УДАЛИТЕ СНАЧАЛА ПЛАН С НОМЕРОМ <B>'.$rez[1]['id_file'].'</b></span>';
}
}else {*/
//вставляем план!
$out['msg'] .= 'Такого плана нет в базе, добавляем<br>';
$sql = 'INSERT INTO '.$TB['iup_shahtplans_plans'].' VALUES (0,'.time().','.$id_file.',"'.$aplan['obrpro'].'","'.$aplan['forobu'].'","'.$aplan['uroobr'].'","'.$aplan['kodkaf'].'","'.$aplan['fakult'].'","'.$aplan['shifr1'].'","'.$aplan['godnap'].'","'.addslashes($aplan['nappodgo']).'","'.addslashes($aplan['propodgo']).'","'.$aplan['kvalif_name'].'","'.$aplan['kvalif_srok'].'");';
$rez = $DB->QUR($sql);
//if($_SESSION['user']['id']==9202) file_put_contents('iup1.log',"\n".date('H:i:s d.m.Y').':'.$sql.print_r($rez,1),FILE_APPEND);
if(!$rez['err']){
$id_plans = mysql_insert_id();
$sql2='UPDATE '.$TB['iup_shahtplans'].' SET napravlenie="'.addslashes($aplan['nappodgo']).' '.$aplan['forobu'].'", godob="'.$aplan['godnap'].'" WHERE id='.$id_file.'';
$rez2=$DB->QUR($sql2);
$out['msg'] .= 'План добавили в базу<br>';
$out['msg'] .= 'Добавляем предметы<br>';
foreach($aplan['strsplan'] as $key => $val){
foreach($val['kurs'] as $kurs => $v11){
foreach($v11 as $sem => $v1){
$dispovyb=$val['kodrodit'];//объединяем предметы - дисциплины по выбору
$val['discip'] = addslashes($val['discip']); //ЭКРАНИРУЕМ КАВЫЧКИ
$sql1 = 'INSERT INTO '.$TB['iup_shahtplans_stroki'].' VALUES (0,'.$id_plans.',"'.$val['discip'].'","'.$val['discid'].'","'.$kurs.'","'.$sem.'","'.$v1['lek'].'","'.$v1['lab'].'","'.$v1['pr'].'","'.$v1['srs'].'","'.$v1['chasekz'].'","'.$v1['zet'].'","'.$v1['ekz'].'","'.$v1['zach'].'","'.$v1['vidkontr'].'","'.$v1['kontrab'].'","'.$v1['kontr'].'","","'.$dispovyb.'","'.$v1['kpro'].'","'.$v1['krab'].'");';
$rez1 = $DB->QUR($sql1);
if(!$rez1['err']){
$out['msg'] .= 'Предмет "'.$val['discip'].'" курс "'.$kurs.'" сем "'.$sem.'" добавили.<br>';
}else{
$out['msg'] .= 'Предмет "'.$val['discip'].'" курс "'.$kurs.'" сем "'.$sem.'" НЕ добавили.<br>'.$sql1.'-'.mysql_error();
}
}
}
}
}else $out['err'] = 'Ошибка добавления плана в БД';
//$out['err'] = 'Ошибка выбора из БД плана '.$sql.' '.mysql_error();
//}
$out['aplan'] = $aplan;
}
}
return $out;
}