828 lines
47 KiB
PHP
828 lines
47 KiB
PHP
<?php
|
||
|
||
class class_RPDSign{
|
||
private $DB=null;
|
||
private $TFile='';
|
||
private $TFiles='';
|
||
private $TUchebplans='';
|
||
private $TUchebplansPrepod='';
|
||
private $TUchebplans_compet='';
|
||
private $TCompet='';
|
||
private $Tteachers='';
|
||
private $Tusers='';
|
||
private $Trpdsave='';
|
||
private $Trpdsign='';
|
||
private $Trpdhash='';
|
||
function __construct(){
|
||
GLOBAL $DB,$ST;
|
||
$this->DB = $DB;
|
||
$this->TFile = $ST['dbpf'].'_fshp_file';
|
||
$this->TFiles = $ST['dbpf'].'_fshp_files';
|
||
$this->TUchebplans = $ST['dbpf'].'_fshp_uchebplans';
|
||
$this->TUchebplansPrepod = $ST['dbpf'].'_fshp_disciplin_prepod';
|
||
$this->TUchebplans_compet = $ST['dbpf'].'_fshp_uchebplans_compet';
|
||
$this->TCompet = $ST['dbpf'].'_fshp_compet';
|
||
$this->Tteachers = $ST['dbpf'].'_teachers';
|
||
$this->Tusers = $ST['dbpf'].'_users';
|
||
$this->Trpdsave = $ST['dbpf'].'_fshp_rpd_save';
|
||
/*acs_fshp_rpd_signs: id data_c id_user id_rpd sign descrip */
|
||
$this->Trpdsign = $ST['dbpf'].'_fshp_rpd_signs';
|
||
$this->Trpdhash = $ST['dbpf'].'_fshp_rpd_save_hash';
|
||
$this->TLibCheck = $ST['dbpf'].'_fshp_libchecks';
|
||
$this->debug=array();
|
||
}
|
||
|
||
public function RPD_sign_DES($data){
|
||
$out['err']=0;
|
||
$out['msg']='---';
|
||
/*acs_fshp_rpd_signs: id data_c id_user id_rpd sign descrip */
|
||
$id_rpd = (int)$data['id_disc'];
|
||
$sign = (int)$data['sign'];
|
||
$kafvyp = (int)$data['kafvyp'];
|
||
$descr = $this->DB->rescape($data['descr']);
|
||
$who = '---';
|
||
$pr_kaf=0;
|
||
$out['file_pdf']='';
|
||
if(isset($_SESSION['user']['statuses'][79])){
|
||
$who = 'Проректор';
|
||
//сам проректор может быть завкафом
|
||
$sql = 'SELECT sign FROM '.$this->Trpdsign.' WHERE id_rpd='.$id_rpd.' ORDER BY data_c DESC LIMIT 1';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
if(!$rez['err']&&$rez['kol']&&$rez['rez'][0]['sign']=='Разработчик') {
|
||
$pr_kaf=1;
|
||
if($kafvyp==1) $who = 'Зав.вып.каф.'; else $who = 'Зав.каф.';
|
||
}
|
||
}else{
|
||
if(isset($_SESSION['user']['statuses'][30])){
|
||
if($kafvyp==1) $who = 'Зав.вып.каф.'; else $who = 'Зав.каф.';
|
||
}
|
||
}
|
||
if($sign==1){
|
||
if(isset($_SESSION['user']['statuses'][79])){//надо сформировать PDF!
|
||
if($pr_kaf==0) {//только когда проректор!
|
||
$id_disc = $id_rpd;
|
||
$class_RPD = new class_RPD();
|
||
//получаем главную дисциплину учебного плана
|
||
$DISCIPS = $class_RPD->Disciplin_Get_Grupp($id_disc);
|
||
//echo '<pre>'.print_r($DISCIPS,1).'</pre>'; exit();
|
||
$DISCIP = $class_RPD->DISCIP_get_Main($DISCIPS);
|
||
//echo '<pre>'.print_r($DISCIP,1).'</pre>'; exit();
|
||
$fpdf = $class_RPD->RPD_GetPDF($DISCIP['id'], $id_disc, 0);
|
||
//echo '$id_disc='.$id_disc.'<pre>'.print_r($fpdf,1).'</pre>';
|
||
//echo '<pre>'.print_r($DISCIPS,1).'</pre>';
|
||
//echo '<pre>'.print_r($DISCIP,1).'</pre>';
|
||
//exit();
|
||
//$fpdf = $class_RPD->RPD_GetPDF_by_SaveID($id_disc,0,0);
|
||
|
||
$out['file_pdf'] = $fpdf['file'];
|
||
$descrsql = $out['file_pdf'];
|
||
}else{//иначе проректор подписывает как зав.каф
|
||
$descrsql = 'Подписано. '.$descr;
|
||
}
|
||
}else{
|
||
$descrsql = 'Подписано. '.$descr;
|
||
}
|
||
if($_SESSION['user']['id'] == 343 && $who == 'Проректор'){
|
||
$id_user = 565; //Задорожная Людмила Ивановна
|
||
}else{
|
||
$id_user = $_SESSION['user']['id'];
|
||
}
|
||
$sql = 'INSERT INTO '.$this->Trpdsign.' VALUES (0,'.time().','.$_SESSION['user']['id'].','.$id_rpd.',"'.$who.'","'.$descrsql.'",1)';
|
||
$rez = $this->DB->QUR($sql);
|
||
if(!$rez['err']){
|
||
$out['err']=0;
|
||
$out['msg']='Рабочую программу отправили далее на подпись';
|
||
|
||
}else{
|
||
$out['err']=1;
|
||
$out['msg']='Ошибка при сохранении!';
|
||
}
|
||
}else{
|
||
$sql = 'INSERT INTO '.$this->Trpdsign.' VALUES (0,'.time().','.$_SESSION['user']['id'].','.$id_rpd.',"'.$who.'","Не подписано. '.$descr.'",0)';
|
||
$rez = $this->DB->QUR($sql);
|
||
if(!$rez['err']){
|
||
$out['err']=0;
|
||
$out['msg']='Рабочую программу отправили на доработку!';
|
||
}else{
|
||
$out['err']=1;
|
||
$out['msg']='Ошибка при сохранении!';
|
||
}
|
||
}
|
||
//Удалим из кэша
|
||
$sql1 = 'SELECT sign FROM '.$this->Trpdsign.' WHERE id_rpd='.$id_rpd.' ORDER BY data_c DESC LIMIT 1';
|
||
$this->cache_sess($sql1,'RPDsign_Cache','del');
|
||
return $out;
|
||
}
|
||
|
||
public function HTML(){
|
||
GLOBAL $WorkDIR;
|
||
$CHPU = new class_CHPU($WorkDIR);
|
||
$URLS = $CHPU->uri();
|
||
|
||
$smartyC = new class_smarty();
|
||
$smarty = $smartyC->config(__DIR__.'\..\tpl');
|
||
|
||
//обработка АЯКС запросов
|
||
if(isset($_POST['ajdes'])){
|
||
header('Content-Type: application/json; charset=utf-8');
|
||
$out=array();
|
||
//Подпись РПД и отправка на проверку
|
||
if($_POST['ajdes']=='RPDSignURL'){
|
||
$id_disc = (int)$_POST['id_disc'];
|
||
$hr = $this->DB->rescape($_POST['hr']);
|
||
$url = $this->DB->rescape($_POST['url']);
|
||
$descrip = $hr.'|#|'.$url;
|
||
$sql = 'UPDATE '.$this->Trpdsign.' SET descrip="'.$descrip.'" WHERE id_rpd='.$id_disc.' AND sign="Проректор" AND status=1';
|
||
$rez = $this->DB->QUR($sql);
|
||
//$out['sql']=$sql;
|
||
//$out['rez']=$rez;
|
||
if(!$rez['err']){
|
||
$out['err']=0;
|
||
$out['msg']='Сохранили ссылку';
|
||
}else{
|
||
$out['err']=1;
|
||
$out['msg']='Ссылку не сохранили. ошибка!';
|
||
}
|
||
}
|
||
if($_POST['ajdes']=='RPDSign'){
|
||
$out = $this->RPD_sign_DES($_POST);
|
||
}
|
||
echo json_encode($out);
|
||
exit();
|
||
}
|
||
|
||
$view = 'all';
|
||
$out = array('name'=>'РПД','body'=>'');
|
||
//Удаление подписи РПД
|
||
if(isset($URLS[1])&&$URLS[1]=='delsign') {
|
||
$id = (int)$URLS[2];
|
||
$sql = 'DELETE FROM '.$this->Trpdsign.' WHERE id='.$id.' AND id_user='.$_SESSION['user']['id'];
|
||
$rez = $this->DB->QUR($sql);
|
||
}
|
||
//Отображение РПД
|
||
if(isset($URLS[1])&&$URLS[1]=='pdf') {
|
||
$id_disc = (int)$URLS[2];
|
||
$class_RPD = new class_RPD();
|
||
$rez = $class_RPD->RPD_GetPDF_by_SaveID($id_disc);
|
||
$out['body'] = $rez['body'];
|
||
}
|
||
$show='all'; if(isset($_SESSION['user']['statuses'][79])){ $show='rs1'; }
|
||
if($URLS[1]=='rs1') { $show='rs1'; }
|
||
if($URLS[1]=='rs2') { $show='rs2'; }
|
||
if($URLS[1]=='rs3') { $show='rs3'; }
|
||
if($URLS[1]=='rs4') { $show='rs4'; }
|
||
if(!isset($URLS[1])||$URLS[1]=='all'||$URLS[1]=='rs1'||$URLS[1]=='rs2'||$URLS[1]=='rs3'||$URLS[1]=='rs4') {
|
||
$dis = $this->Disciplins($show);
|
||
$smarty->assign('navpages', $dis['nav']);
|
||
$smarty->assign('DISCIPS', $dis['items']);
|
||
$smarty->assign('aUSER',$_SESSION['user']);
|
||
$smarty->assign('show',$show);
|
||
$smarty->assign('debug_sql',$this->debug);
|
||
$out['body'] = $smarty->fetch('page_rpds_signs.html');
|
||
}
|
||
return $out;
|
||
}
|
||
|
||
function debug_sql($sql){
|
||
$key = md5($sql);
|
||
if(!isset($this->debug[$key])) {
|
||
$this->debug[$key]['sql'] = $sql;
|
||
$this->debug[$key]['times'][] = round(microtime(),3);
|
||
}else{
|
||
$last = round(microtime(),3);
|
||
$this->debug[$key]['times'][] = $last;
|
||
$this->debug[$key]['time'] = $last - $this->debug[$key]['times'][0];
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Кэширование SQL запросов
|
||
* @param $sql1
|
||
* @param $key
|
||
* @return array|mixed|null
|
||
*/
|
||
function cache_sess($sql1,$key='RPDsign_Cache',$des='add'){
|
||
if($des=='del'){
|
||
if(isset($_SESSION[$key][md5($sql1)]))
|
||
unset($_SESSION[$key][md5($sql1)]);
|
||
}else {
|
||
if (!isset($_SESSION[$key][md5($sql1)])) {
|
||
$rez1 = $this->DB->QUR_SEL($sql1);
|
||
$_SESSION[$key][md5($sql1)] = $rez1;
|
||
} else {
|
||
$rez1 = $_SESSION[$key][md5($sql1)];
|
||
}
|
||
}
|
||
return $rez1;
|
||
}
|
||
|
||
/**
|
||
* Выбор назначенных дисциплин преподавтелю
|
||
* @param int $id_user
|
||
* @return array
|
||
*/
|
||
public function Disciplins($show=''){
|
||
GLOBAL $URLS;
|
||
$out=array(); $debug=array();
|
||
//if($id_user==0) $id_user = $_SESSION['user']['id'];
|
||
//echo '<pre>'.print_r($_SESSION,1).'</pre>';
|
||
//echo '<pre>'.print_r($URLS,1).'</pre>';exit();
|
||
$perpage = 10;
|
||
$navpage = 1; if(isset($URLS['navpage'])) $navpage = (int)$URLS['navpage'];
|
||
|
||
$start = ($navpage-1)*$perpage;
|
||
$kafname = $_SESSION['user']['teachers']['kafedra'];
|
||
$search = ''; if(isset($_POST['search'])) $search = $this->DB->rescape($_POST['search']);
|
||
$cYear = 'AND f.god_nach_podgot='.$_SESSION['year_cur'];
|
||
if(isset($_SESSION['user']['statuses'][79])){
|
||
//$sql = 'SELECT
|
||
// u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr
|
||
//FROM
|
||
// '.$this->TUchebplansPrepod.' as up,
|
||
// '.$this->TUchebplans.' as u,
|
||
// '.$this->TFile.' as f,
|
||
// '.$this->Trpdsign.' as s
|
||
//WHERE
|
||
// up.id_uchebplans=u.id AND
|
||
// u.id_file = f.id_file AND
|
||
// s.id_rpd=u.id';
|
||
//if($show=='all') $sql .= ' AND (s.sign="Зав.вып.каф." OR s.sign="Зав.каф.") AND s.status=1';
|
||
//if($show=='rs1') $sql .= ' AND (s.sign="Зав.вып.каф." AND s.status=1)';//на подпись от проректора
|
||
//if($show=='rs2') $sql .= ' AND (s.sign="Проректор") AND s.status=1';//подписанные проректором
|
||
$rpds=array();
|
||
|
||
if($show=='all') $sql = 'SELECT id_rpd FROM '.$this->Trpdsign.' WHERE (sign="Зав.вып.каф." OR sign="Зав.каф.") AND status=1 ORDER BY data_c DESC';
|
||
if($show=='rs1') $sql = 'SELECT id_rpd FROM '.$this->Trpdsign.' WHERE sign="Зав.вып.каф." AND status=1 ORDER BY data_c DESC';
|
||
if($show=='rs2') $sql = 'SELECT id_rpd FROM '.$this->Trpdsign.' WHERE sign="Проректор" AND status=1 ORDER BY data_c DESC';
|
||
if($show=='rs3') $sql = 'SELECT id_rpd FROM '.$this->Trpdsign.' WHERE (sign="Разработчик" OR sign="Зав.каф.") AND status=1 ORDER BY data_c DESC';
|
||
if($show=='rs4') $sql = 'SELECT id_rpd FROM '.$this->Trpdsign.' WHERE (sign="Проректор") AND status=1 ORDER BY data_c DESC';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//echo $sql; exit();
|
||
if(!$rez['err']&&$rez['kol']){
|
||
foreach($rez['rez'] as $key => $val){
|
||
if($show=='all'||$show=='rs2') $rpds[]=$val['id_rpd'];
|
||
if($show=='rs1'){
|
||
$sql1 = 'SELECT sign FROM '.$this->Trpdsign.' WHERE id_rpd='.$val['id_rpd'].' ORDER BY data_c DESC LIMIT 1';
|
||
$rez1 = $this->cache_sess($sql1);
|
||
if (!$rez1['err'] && $rez1['kol'] && $rez1['rez'][0]['sign'] == "Зав.вып.каф.") $rpds[] = $val['id_rpd'];
|
||
}
|
||
if($show=='rs3'){
|
||
$sql1 = 'SELECT sign FROM '.$this->Trpdsign.' WHERE id_rpd='.$val['id_rpd'].' ORDER BY data_c DESC LIMIT 1';
|
||
$rez1 = $this->cache_sess($sql1);
|
||
if(!$rez1['err']&&$rez1['kol']&&($rez1['rez'][0]['sign']=="Зав.каф."||$rez1['rez'][0]['sign']=="Разработчик")) $rpds[]=$val['id_rpd'];
|
||
}
|
||
if($show=='rs4'){
|
||
$sql1 = 'SELECT sign FROM '.$this->Trpdsign.' WHERE id_rpd='.$val['id_rpd'].' ORDER BY data_c DESC LIMIT 1';
|
||
$rez1 = $this->cache_sess($sql1);
|
||
if(!$rez1['err']&&$rez1['kol']&&($rez1['rez'][0]['sign']=="Проректор")) $rpds[]=$val['id_rpd'];
|
||
}
|
||
}
|
||
}
|
||
$kafname = $_SESSION['user']['teachers']['kafedra'];
|
||
$sql = 'SELECT
|
||
u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.profil,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr
|
||
FROM
|
||
'.$this->TUchebplansPrepod.' as up,
|
||
'.$this->TUchebplans.' as u,
|
||
'.$this->TFile.' as f
|
||
WHERE
|
||
up.id_uchebplans=u.id AND
|
||
u.id_file = f.id_file '.$cYear.' AND
|
||
u.id IN ('.implode(',',$rpds).')';
|
||
if($show=='rs3') $sql .= ' AND (u.kaf_name="'.$kafname.'" OR f.kafedra="'.$kafname.'")';
|
||
if($show=='rs4') $sql .= ' AND (u.kaf_name="'.$kafname.'" OR f.kafedra="'.$kafname.'")';
|
||
if($search!='') $sql .= ' AND (u.index1 LIKE "%'.$search.'%" OR name LIKE "%'.$search.'%")';
|
||
//echo $sql; exit();
|
||
}
|
||
else{
|
||
//тут надо разделить зав.кафов преподов и зав.кафов выпускающ кафедр!
|
||
if(isset($_SESSION['user']['statuses'][30])){
|
||
$kafname = $_SESSION['user']['teachers']['kafedra'];
|
||
|
||
if($kafname=='Кафедра госпитальной терапии и последипломного образования') $kafname='Госпитальной терапии и последипломного образования';
|
||
if($kafname=='Кафедра госпитальной хирургии и последипломного образования') $kafname='Госпитальной хирургии и последипломного образования';
|
||
//иностранного языка
|
||
//u.kaf_kod!
|
||
//SELECT
|
||
// u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr
|
||
// FROM
|
||
// acs_fshp_disciplin_prepod as up,
|
||
// acs_fshp_uchebplans as u,
|
||
// acs_fshp_file as f,
|
||
// acs_fshp_rpd_signs as s
|
||
// WHERE
|
||
// (u.kaf_name="Иностранных языков" OR f.kafedra="Иностранных языков") AND
|
||
// up.id_uchebplans=u.id AND
|
||
// u.id_file = f.id_file AND
|
||
// s.id_rpd=u.id AND
|
||
// s.id_rpd=u.id AND s.sign="Разработчик" AND s.status=1
|
||
$sql = 'SELECT
|
||
u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.profil,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr
|
||
FROM
|
||
'.$this->TUchebplansPrepod.' as up,
|
||
'.$this->TUchebplans.' as u,
|
||
'.$this->TFile.' as f,
|
||
'.$this->Trpdsign.' as s
|
||
WHERE
|
||
(u.kaf_name="'.$kafname.'" OR f.kafedra="'.$kafname.'") AND
|
||
up.id_uchebplans=u.id AND
|
||
u.id_file = f.id_file '.$cYear.' AND
|
||
s.id_rpd=u.id AND
|
||
s.id_rpd=u.id AND s.sign="Разработчик" AND s.status=1';
|
||
|
||
if($search!='') $sql .= ' AND (u.index1 LIKE "%'.$search.'%" OR name LIKE "%'.$search.'%")';
|
||
}
|
||
}
|
||
//echo '--'.$search.'<br>'.$sql;
|
||
if($search!=''){
|
||
$nav['all'] = 0;
|
||
$nav['pages'] = 0;
|
||
$sql .= ' GROUP BY u.id ORDER BY f.god_nach_podgot,f.shifr,f.naprav,f.profil, up.data_c DESC';
|
||
}else {
|
||
$nav = $this->DB->navpage($sql, 'u.id', $perpage);
|
||
|
||
if (isset($_SESSION['user']['statuses'][30]) && !isset($_SESSION['user']['statuses'][79])) {
|
||
$sql .= ' GROUP BY u.id ORDER BY f.god_nach_podgot,f.shifr,f.naprav,f.profil, up.data_c DESC LIMIT ' . $start . ',' . $perpage;
|
||
} else {//проректор
|
||
$sql .= ' GROUP BY u.id ORDER BY f.god_nach_podgot,f.shifr,f.naprav,f.profil, up.data_c DESC LIMIT ' . $start . ',' . $perpage;
|
||
//тоже работает
|
||
//$sql = 'SELECT
|
||
// u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr
|
||
//FROM '.$this->Trpdsign.' as s
|
||
//right join '.$this->TUchebplans.' as u ON s.id_rpd=u.id
|
||
//right join '.$this->TFile.' as f ON u.id_file = f.id_file
|
||
//right join '.$this->TUchebplansPrepod.' as up ON u.id=up.id_uchebplans
|
||
//WHERE ';
|
||
//if($show=='all') $sql .= ' (s.sign="Зав.вып.каф." OR s.sign="Зав.каф.") AND s.status=1';
|
||
//if($show=='rs1') $sql .= ' (s.sign="Зав.вып.каф." AND s.status=1 AND s.sign!="Проректор")';//на подпись от проректора
|
||
//if($show=='rs2') $sql .= ' (s.sign="Проректор" AND s.status=1)';//подписанные проректором
|
||
//$sql .=' ORDER BY s.status DESC, f.god_nach_podgot,f.shifr,f.naprav,f.profil, up.data_c DESC LIMIT '.$start.','.$perpage;
|
||
}
|
||
}
|
||
//echo '--'.$search.'<br>'.$sql;
|
||
//--Б1.В.08.03(К)
|
||
//SELECT u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr FROM acs_fshp_disciplin_prepod as up, acs_fshp_uchebplans as u, acs_fshp_file as f WHERE up.id_uchebplans=u.id AND u.id_file = f.id_file AND u.id IN (22425,5643,5559,19459,19453,19448,21519,22989,25664,20541,20552,19443,25610,25562,25607,25560,29307,29235,29235,24025,24025,24025,24026,22981,18268,18276,1028,4287,4283,26753,4391,4420) AND (u.index1 LIKE "%Б1.В.08.03(К)%" OR name LIKE "%Б1.В.08.03(К)%")
|
||
$out['nav'] = $nav;
|
||
$out['nav']['curpage'] = $navpage;
|
||
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//echo $sql.'<pre>'.print_r($rez,1).'</pre>';exit();
|
||
if(!$rez['err']&&$rez['kol']){
|
||
foreach ($rez['rez'] as $k => $v){
|
||
$v['saveinfo'] = $this->SaveInfo($v['id']);
|
||
$rpdsigns = $this->RPDSigns($v['id']);
|
||
if(count($rpdsigns)==0) $edit=0; else $edit=1;
|
||
|
||
//определяем зав.каф является зав.кафедрой и зав. выпускающей кафедрой
|
||
//if($v['kaf_name']==$v['kaf_name_vyp']) $v['kafvyp'] = 1; else $v['kafvyp'] = 0;
|
||
//$v['kaf_name_vyp1'] = $kafname;
|
||
if(mb_strtolower(trim($kafname))==mb_strtolower(trim($v['kaf_name_vyp']))) {
|
||
$v['kafvyp'] = 1;
|
||
} else {
|
||
$v['kafvyp'] = 0;
|
||
}
|
||
//echo '['.$kafname.'] = ['.$v['kaf_name_vyp'].'] = '.$v['kafvyp'].'<br>';
|
||
$v['pur']=0; //echo $_SESSION['user']['statuses'][30];
|
||
if(isset($_SESSION['user']['statuses'][30])&&!isset($_SESSION['user']['statuses'][79])){
|
||
if($v['kafvyp']==1){
|
||
//echo '1';
|
||
if(mb_strtolower(trim($v['kaf_name']))==mb_strtolower(trim($kafname))){//мы являемся и кафедрой препода и выпускающей
|
||
//echo '<pre>'.print_R($rpdsigns[0],1).'</pre>';
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}else{
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}
|
||
}else {
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
}
|
||
}else{
|
||
if(isset($_SESSION['user']['statuses'][79])){
|
||
//echo $k.'<pre>'.print_r($v,1).'</pre>';
|
||
//ПРОРЕКТОР ТОЖЕ ЗАВ.КАФЕДРОЙ!
|
||
if($v['kafvyp']==1){//мы являемся и кафедрой выпускающей
|
||
if(mb_strtolower(trim($v['kaf_name']))==mb_strtolower(trim($kafname))){//мы являемся и кафедрой препода и выпускающей
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) { $edit = 1; $v['pur'] = 1; }
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}else{
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}
|
||
}else {
|
||
$v['pur'] = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
}
|
||
}
|
||
}
|
||
$v['file_pdf'] = '';
|
||
if($rpdsigns[0]['sign']=='Проректор'&&$rpdsigns[0]['status']==1) {
|
||
$tmp = explode('|#|',$rpdsigns[0]['descrip']);
|
||
//$v['file_pdf'] = $rpdsigns[0]['descrip'];
|
||
$v['file_pdf'] = $tmp[0];
|
||
$v['url_pdf'] = $tmp[1];
|
||
}
|
||
$v['rpdsigns'] = $rpdsigns;
|
||
$v['edit'] = $edit;
|
||
$out['items'][] = $v;
|
||
}
|
||
}
|
||
//echo $sql.'<pre>'.print_r($out,1).'</pre>';exit();
|
||
return $out;
|
||
}
|
||
|
||
/**
|
||
* Выбор назначенных дисциплин преподавтелю
|
||
* @param int $id_user
|
||
* @return array
|
||
*/
|
||
public function Disciplins_for_ZAVYPKAF($show=''){
|
||
GLOBAL $URLS;
|
||
$out=array();
|
||
$kafname = $_SESSION['user']['teachers']['kafedra'];
|
||
$cYear = 'AND f.god_nach_podgot='.$_SESSION['year_cur'];
|
||
//тут надо разделить зав.кафов преподов и зав.кафов выпускающ кафедр!
|
||
if(isset($_SESSION['user']['statuses'][30])){
|
||
$kafname = $_SESSION['user']['teachers']['kafedra'];
|
||
|
||
if($kafname=='Кафедра госпитальной терапии и последипломного образования') $kafname='Госпитальной терапии и последипломного образования';
|
||
if($kafname=='Кафедра госпитальной хирургии и последипломного образования') $kafname='Госпитальной хирургии и последипломного образования';
|
||
$sql = 'SELECT
|
||
u.id,u.index1,u.kaf_name,u.name,f.shifr,f.program,f.naprav,f.kafedra as kaf_name_vyp,f.god_nach_podgot,f.fo,f.srok_poluch_obr
|
||
FROM
|
||
'.$this->TUchebplansPrepod.' as up,
|
||
'.$this->TUchebplans.' as u,
|
||
'.$this->TFile.' as f,
|
||
'.$this->Trpdsign.' as s
|
||
WHERE
|
||
f.kafedra="'.$kafname.'" AND
|
||
up.id_uchebplans=u.id AND
|
||
u.id_file = f.id_file '.$cYear.' AND
|
||
s.id_rpd=u.id AND
|
||
s.id_rpd=u.id AND s.sign="Разработчик" AND s.status=1';
|
||
}//(u.kaf_name="'.$kafname.'" OR f.kafedra="'.$kafname.'") AND
|
||
if (isset($_SESSION['user']['statuses'][30]) && !isset($_SESSION['user']['statuses'][79])) {
|
||
$sql .= ' GROUP BY u.id ORDER BY f.god_nach_podgot,f.shifr,f.naprav,f.profil, up.data_c DESC';
|
||
} else {//проректор
|
||
$sql .= ' GROUP BY u.id ORDER BY f.god_nach_podgot,f.shifr,f.naprav,f.profil, up.data_c DESC';
|
||
}
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//echo $sql.'<pre>'.print_r($rez,1).'</pre>'; exit();
|
||
if(!$rez['err']&&$rez['kol']){
|
||
foreach ($rez['rez'] as $k => $v){
|
||
$rpdsigns = $this->RPDSigns($v['id']);
|
||
if(count($rpdsigns)==0) $edit=0; else $edit=1;
|
||
|
||
//определяем зав.каф является зав.кафедрой и зав. выпускающей кафедрой
|
||
if(mb_strtolower($kafname)==mb_strtolower($v['kaf_name_vyp'])) $v['kafvyp'] = 1; else $v['kafvyp'] = 0;
|
||
$v['pur']=0;
|
||
if(isset($_SESSION['user']['statuses'][30])&&!isset($_SESSION['user']['statuses'][79])){
|
||
if($v['kafvyp']==1){
|
||
if(mb_strtolower($v['kaf_name'])==mb_strtolower($kafname)){//мы являемся и кафедрой препода и выпускающей
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}else{
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}
|
||
}else {
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
}
|
||
}else{
|
||
if(isset($_SESSION['user']['statuses'][79])){
|
||
//ПРОРЕКТОР ТОЖЕ ЗАВ.КАФЕДРОЙ!
|
||
if($v['kafvyp']==1){//мы являемся и кафедрой выпускающей
|
||
if(mb_strtolower($v['kaf_name'])==mb_strtolower($kafname)){//мы являемся и кафедрой препода и выпускающей
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) { $edit = 1; $v['pur'] = 1; }
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}else{
|
||
if ($rpdsigns[0]['sign'] == 'Разработчик' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 1;
|
||
}
|
||
}else {
|
||
$v['pur'] = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.каф.' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Зав.вып.каф.' && $rpdsigns[0]['status'] == 1) $edit = 1;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 1) $edit = 0;
|
||
if ($rpdsigns[0]['sign'] == 'Проректор' && $rpdsigns[0]['status'] == 0) $edit = 0;
|
||
}
|
||
}
|
||
}
|
||
$v['file_pdf'] = '';
|
||
if($rpdsigns[0]['sign']=='Проректор'&&$rpdsigns[0]['status']==1) {
|
||
$tmp = explode('|#|',$rpdsigns[0]['descrip']);
|
||
//$v['file_pdf'] = $rpdsigns[0]['descrip'];
|
||
$v['file_pdf'] = $tmp[0];
|
||
$v['url_pdf'] = $tmp[1];
|
||
}
|
||
$v['rpdsigns'] = $rpdsigns;
|
||
$v['edit'] = $edit;
|
||
$out['items'][] = $v;
|
||
}
|
||
}
|
||
return $out;
|
||
}
|
||
|
||
/**
|
||
* Получение информации о сохраненных данных
|
||
* @param $id_rpd
|
||
* @return array
|
||
*/
|
||
public function RPDSigns($id_rpd,$user=0){
|
||
$out=array();
|
||
/*acs_fshp_rpd_signs: id data_c id_user id_rpd sign descrip*/
|
||
if($user==0) {//не берем ФИО
|
||
$sql = 'SELECT * FROM ' . $this->Trpdsign . ' WHERE id_rpd=' . $id_rpd . ' ORDER BY data_c DESC';
|
||
}else{
|
||
$sql = 'SELECT s.*,u.fio,t.zvanie,t.dolgnost,t.stepen,t.fakultet,t.kafedra FROM ' . $this->Trpdsign . ' as s,'.$this->Tusers.' as u,'.$this->Tteachers.' as t WHERE s.id_rpd=' . $id_rpd . ' AND s.id_user=u.id AND u.id=t.id_user ORDER BY s.data_c DESC';
|
||
}
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
|
||
//echo $sql.'<prE>'.print_R($rez,1).'</prE>';exit();
|
||
if(!$rez['err']&&$rez['kol']){
|
||
foreach ($rez['rez'] as $k => $v){
|
||
$out[] = $v;
|
||
}
|
||
}
|
||
return $out;
|
||
}
|
||
/**
|
||
* Получение информации о сохраненных данных для PDF нужны только последние
|
||
* @param $id_rpd
|
||
* @return array
|
||
*/
|
||
public function RPDSignsPDF($id_rpd,$user=0,$kafname=''){
|
||
$out=array();
|
||
/*acs_fshp_rpd_signs: id data_c id_user id_rpd sign descrip*/
|
||
if($user==0) {//не берем ФИО
|
||
$sql = 'SELECT * FROM ' . $this->Trpdsign . ' WHERE id_rpd=' . $id_rpd . ' ORDER BY data_c DESC';
|
||
}else{
|
||
$sql = 'SELECT
|
||
s.*,u.fio,t.zvanie,t.dolgnost,t.stepen,t.fakultet,t.kafedra
|
||
FROM
|
||
' . $this->Trpdsign . ' as s,
|
||
'.$this->Tusers.' as u,
|
||
'.$this->Tteachers.' as t
|
||
WHERE
|
||
s.id_rpd=' . $id_rpd . ' AND
|
||
s.status=1 AND
|
||
s.id_user=u.id AND
|
||
u.id=t.id_user
|
||
ORDER BY s.data_c DESC';
|
||
}
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//echo $sql.'<pre>'.print_r($rez,1).'</pre>'; exit();
|
||
$wh['raz']=0;//Разработчик
|
||
$wh['zak']=0;//Зав.каф.
|
||
$wh['zvk']=0;//Зав.вып.каф.
|
||
$wh['pur']=0;//Проректор
|
||
$dubl=array();
|
||
if(!$rez['err']&&$rez['kol']){
|
||
foreach ($rez['rez'] as $k => $v){
|
||
if($v['sign']=='Разработчик'&& $wh['raz']==0) { $out['raz'] = $v; $wh['raz']=1; }
|
||
if($v['sign']=='Зав.каф.'&& $wh['zak']==0) {
|
||
if($v['fio']=='хадж мохамед риад мурадович') $v['fio']='';
|
||
$out['zak'] = $v; $wh['zak']=1;
|
||
}
|
||
if($v['sign']=='Зав.вып.каф.'&&$wh['zvk']==0) {
|
||
$out['zvk'] = $v; $wh['zvk']=1;
|
||
$dubl = $v;
|
||
$dubl['sign'] = 'Зав.каф.';
|
||
}
|
||
if($v['sign']=='Проректор'&& $wh['pur']==0) { $out['pur'] = $v; $wh['pur']=1; }
|
||
if(count($dubl)){//Дублируем зав.вып.каф на зав.каф.
|
||
$out['zak'] = $dubl;
|
||
$dubl=array();
|
||
}
|
||
}
|
||
}
|
||
//echo $sql.'<prE>'.print_R($out,1).'</prE>';exit();
|
||
//Получаем подпись библиотеки! $this->TLibCheck.id_rpd - это acs_fshp_rpd_save.id
|
||
|
||
$out['lib']['fio']='И. Б. Берберьян';
|
||
$out['lib']['zvanie']='';
|
||
$out['lib']['dolgnost']='';
|
||
$out['lib']['stepen']='';
|
||
$out['lib']['fakultet']='';
|
||
$out['lib']['kafedra']='НБ МГТУ';
|
||
$out['lib']['data_c']=$rez['rez'][0]['data_c'];
|
||
$out['lib']['sign']='НБ МГТУ';
|
||
$out['lib']['descrip']='Не проверено';
|
||
$out['lib']['status']=0;
|
||
$sql = 'SELECT id FROM ' . $this->Trpdsave . ' WHERE id_discip=' . $id_rpd . ' ORDER BY data_c DESC LIMIT 1';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
if(!$rez['err']&&$rez['kol']) {
|
||
$id_save = $rez['rez'][0]['id'];
|
||
|
||
$sql = 'SELECT * FROM ' . $this->TLibCheck . ' WHERE id_rpd=' . $id_save . ' ORDER BY data_c DESC';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//echo $sql.'<pre>'.print_r($rez,1).'</pre>';
|
||
$out['lib'] = array();
|
||
if (!$rez['err'] && $rez['kol']) {
|
||
//s.*,u.fio,t.zvanie,t.dolgnost,t.stepen,t.fakultet,t.kafedra
|
||
//Согласовано: НБ МГТУ ——также подпись простая электронная как у всех из кабинета, с выводом фамилии И. Б. Берберьян
|
||
$out['lib']['fio'] = 'И. Б. Берберьян';
|
||
$out['lib']['zvanie'] = '';
|
||
$out['lib']['dolgnost'] = '';
|
||
$out['lib']['stepen'] = '';
|
||
$out['lib']['fakultet'] = '';
|
||
$out['lib']['kafedra'] = 'НБ МГТУ';
|
||
$out['lib']['data_c'] = $rez['rez'][0]['data_c'];
|
||
$out['lib']['sign'] = 'НБ МГТУ';
|
||
$out['lib']['descrip'] = 'Проверено';
|
||
$out['lib']['status'] = 1;
|
||
}
|
||
}
|
||
$out1[] = $out['pur'];
|
||
$out1[] = $out['lib'];
|
||
$out1[] = $out['zvk'];
|
||
$out1[] = $out['zak'];
|
||
$out1[] = $out['raz'];
|
||
//echo '$out1=<pre>'.print_r($out1,1).'</pre>';exit();
|
||
|
||
return $out1;
|
||
}
|
||
|
||
/**
|
||
* Получение информации о сохраненных данных
|
||
* @param $id_rpd
|
||
* @return array
|
||
*/
|
||
public function SaveInfo($id_rpd){
|
||
$out=array('err'=>1,'msg'=>'пустой запрос');
|
||
//$polyas = array('razdel1'=>'Раздел 1','razdel2'=>'Раздел 2','razdel3'=>'Раздел 3','razdel4'=>'Раздел 4','razdel5'=>'Раздел 5','razdel5_4'=>'Раздел 5.4','razdel5_5'=>'Раздел 5.5','razdel5_6'=>'Раздел 5.6','razdel5_7'=>'Раздел 5.7','razdel5_8'=>'Раздел 5.8','razdel5_9'=>'Раздел 5.9','razdel6_1'=>'Раздел 6.1','razdel6_2'=>'Раздел 6.2','razdel7'=>'Раздел 7.1','razdel7_2'=>'Раздел 7.2','razdel7_3'=>'Раздел 7.3','razdel7_4'=>'Раздел 7.4','razdel8_1'=>'Раздел 8.1','razdel8_2'=>'Раздел 8.2','razdel8_3'=>'Раздел 8.3','razdel9'=>'Раздел 9','razdel10_1'=>'Раздел 10.1','razdel10_2'=>'Раздел 10.2','razdel11'=>'Раздел 11');
|
||
$polyas = array('razdel1'=>'1','razdel2'=>'2','razdel3'=>'3','razdel4'=>'4','razdel5'=>'5','razdel5_4'=>'5.4','razdel5_5'=>'5.5','razdel5_6'=>'5.6','razdel5_7'=>'5.7','razdel5_8'=>'5.8','razdel5_9'=>'5.9','razdel6_1'=>'6.1','razdel6_2'=>'6.2','razdel7'=>'7.1','razdel7_2'=>'7.2','razdel7_3'=>'7.3','razdel7_4'=>'7.4','razdel8_1'=>'8.1','razdel8_2'=>'8.2','razdel8_3'=>'8.3','razdel9'=>'9','razdel10_1'=>'10.1','razdel10_2'=>'10.2','razdel11'=>'11');
|
||
//TODO проблема когда назначаем одному преподавателю он делает, потом назначаем другому он делает и опять возвращаем первому, но дата сохранения остается от последнего! и сохранения возвращаем не те (не последние)
|
||
$sql = 'SELECT * FROM '.$this->Trpdsave.' WHERE id_discip='.$id_rpd.' ORDER BY data_c DESC LIMIT 1';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//$out['rez']=$rez;
|
||
if(!$rez['err']&&$rez['kol']){
|
||
$save = $rez['rez'][0];
|
||
$out['err']=0;
|
||
$out['save_id']=$save['id'];
|
||
$out['msg']='получили данные';
|
||
$out['is']=array();
|
||
$out['nul']=array();
|
||
foreach ($polyas as $k => $p){
|
||
if($save[$k]!='') $out['is'][] = $p;
|
||
else $out['nul'][] = $p;
|
||
}
|
||
}
|
||
return $out;
|
||
}
|
||
/**
|
||
* Получение информации о дисциплине
|
||
* @param $id
|
||
* @return array
|
||
*/
|
||
public function Disciplin($id){
|
||
$out = array();
|
||
$sql = 'SELECT * FROM '.$this->TUchebplans.' WHERE id='.$id.' LIMIT 1';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
if(!$rez['err']&&$rez['kol']){
|
||
$rez['rez'][0]['json'] = json_decode($rez['rez'][0]['json'],1);
|
||
$out['uchebplan'] = $rez['rez'][0];
|
||
//надо подсчитать итого
|
||
$itogs = array();
|
||
foreach ($out['uchebplan']['json'] as $kurs => $kv) {
|
||
foreach ($kv as $sem => $kzan){
|
||
foreach ($kzan as $k => $zan){
|
||
if($k!='ze') $itogs[$kurs][$sem] += $zan;
|
||
}
|
||
}
|
||
}
|
||
$out['uchebplan']['itogs'] = $itogs;
|
||
$sql = 'SELECT * FROM '.$this->TFile.' WHERE id_file='.$out['uchebplan']['id_file'].' LIMIT 1';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
if(!$rez['err']&&$rez['kol']){
|
||
$out['title'] = $rez['rez'][0];
|
||
}else{
|
||
$out['title'] = array();
|
||
}
|
||
$sql = 'SELECT c.* FROM '.$this->TUchebplans_compet.' as uc,'.$this->TCompet.' as c WHERE uc.id_uchebplans='.$id.' AND uc.id_compet=c.id ORDER BY c.index';
|
||
//GROUP BY c.index
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
//echo $sql.'<pre>'.print_r($rez,1).'</pre>';
|
||
|
||
if(!$rez['err']&&$rez['kol']){
|
||
foreach ($rez['rez'] as $k => $val){
|
||
$out['comp'][$val['index']] = $val['descrip'];
|
||
}
|
||
}else{
|
||
$out['comp'] = array();
|
||
}
|
||
|
||
}
|
||
return $out;
|
||
}
|
||
|
||
/**
|
||
* Автоподписание рпд после промежутка времени
|
||
* @param $hours
|
||
* @return void
|
||
*/
|
||
public function rpdsign_auto($hours){
|
||
|
||
$rpds = array();
|
||
//собираем все РПД с подписью от Зав.вып.каф.
|
||
$sql = 'SELECT data_c,id_rpd FROM acs_fshp_rpd_signs WHERE sign="Зав.вып.каф." AND status=1 GROUP BY id_rpd ORDER BY RAND()';
|
||
$rez = $this->DB->QUR_SEL($sql);
|
||
if(!$rez['err']&&$rez['kol']) {
|
||
foreach ($rez['rez'] as $key => $val) {
|
||
$rpds[] = $val;
|
||
}
|
||
}
|
||
//echo '<pre>'.print_r($rpds,1).'</pre>';
|
||
|
||
$rpds0 = array();
|
||
//Убираем все что уже пописано ПРОРЕКТОРОМ
|
||
foreach ($rpds as $key => $val) {
|
||
$sql1 = 'SELECT id_rpd FROM acs_fshp_rpd_signs WHERE sign="Проректор" AND status=1 AND id_rpd='.$val['id_rpd'];
|
||
$rez1 = $this->DB->QUR_SEL($sql1);
|
||
if(!$rez1['err']&&$rez1['kol']) {}else $rpds0[] = $val;
|
||
}
|
||
//echo '<pre>'.print_r($rpds0,1).'</pre>';
|
||
//проверим все ли попадают под время
|
||
$now = time();
|
||
foreach ($rpds0 as $key => $val) {
|
||
if( ($now - $val['data_c'])>=(60*60*3) ) {
|
||
//echo $val['id_rpd'] . ':' . date('H:i:s d.m.Y', $val['data_c']) . '<br>';
|
||
|
||
$class_RPD = new class_RPD();
|
||
//получаем главную дисциплину учебного плана
|
||
$DISCIPS = $class_RPD->Disciplin_Get_Grupp($val['id_rpd']);
|
||
$DISCIP = $class_RPD->DISCIP_get_Main($DISCIPS);
|
||
$fpdf = $class_RPD->RPD_GetPDF($DISCIP['id'], $val['id_rpd'], 0);
|
||
if($fpdf['file']!='') {
|
||
$sql = 'INSERT INTO ' . $this->Trpdsign . ' VALUES (0,' . time() . ',565,' . $val['id_rpd'] . ',"Проректор","' . $fpdf['file'] . '",1)';
|
||
$rez = $this->DB->QUR($sql);
|
||
if (!$rez['err']) {
|
||
//echo $val['id_rpd'] . ' - ОК';
|
||
} else {
|
||
//echo $val['id_rpd'] . ' - NO';
|
||
}
|
||
}else{
|
||
//echo $val['id_rpd'] . ' - NO FILE';
|
||
}
|
||
if ($key>=20) break;
|
||
}else{
|
||
//echo $val['id_rpd'] . ':' . date('H:i:s d.m.Y', $val['data_c']) . ' - рано<br>';
|
||
}
|
||
}
|
||
}
|
||
} |