EIOS/inc/iup_lkkafedry.php

1248 lines
63 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;
}