DB = $DB; $this->Tusers = $ST['dbpf'].'_users'; $this->Tachievements = $ST['dbpf'].'_achievements'; //acs_achievements: id, name, kind, region, status, organis, count_m, link_doc, link_group, date_p, file, id_user, place, status_is $this->Tstip = $ST['dbpf'].'_stip'; //acs_stip: id, id_user, facultet, specialnost, grupp, date_create, type, status, semestr, uch_year $this->Tstip_dost = $ST['dbpf'].'_stip_dost'; //acs_stip_dost: id, id_stip, id_achievement, status, commento //достижения авторизованного человека //$sql = 'SELECT * FROM '.$ST['dbpf'].'_achievements WHERE id_user = "'.$id_user.'" '; //'INSERT INTO '.$ST['dbpf'].'_achievements (`name`, `kind`, `region`, `status`, `organis`, `count_m`, `link_doc`, `link_group`, `date_p`, `file`, `id_user`, `place`) VALUES ("'.$name.'", "'.$kind.'", "'.$region.'", "'.$status.'", "'.$organis.'", "'.$count.'", "'.$link_doc.'", "'.$link_group.'", "'.$date_p.'", "'.$file.'", "'.$id_user.'", "'.$place.'") //создание новой заявки - пустой, без достижений //'INSERT INTO '.$ST['dbpf'].'_stip (`id_user`, `facultet`, `specialnost`, `grupp`, `date_create`, `type`, `semestr`, `uch_year`) VALUES ("'.$id_user.'", "'.$facultet.'", "'.$area.'", "'.$grupp.'", "'.$date_create.'", "'.$grant.'", "'.$semestr.'", "'.$uch_year.'") //добавление нового достижения к заявке // 'INSERT INTO '.$ST['dbpf'].'_stip_dost (id_stip, id_achievement) VALUES ("'.$id_stip.'", "'.$ach.'") } function info(){ $SYS = new class_SYSTEM(); $out = '

Выгрузка стипендий

'; $url = 'https://eios.mkgtu.ru/integration/api.php?step=stipendii_get_zayavki&format='; $out .= '
'; $out .= '
'; $out .= '

JSON формат:

'; $out .= '

CSV формат:

'; $out .= '
'; $out .= '
'; $data['dir'] = 'upload/stipendii/'; $out .= $SYS->info_last_files($data); $out .= '
'; $out .= '
'; return $out; } function get_zayavki($data){ $facultet=urlencode('Лечебный факультет'); $year_start=2022; $semestr=1; $json = file_get_contents('https://eios.mkgtu.ru/api_loc.php?step=stipendii_get&facultet='.$facultet.'&year_start='.$year_start.'&semestr='.$semestr); $stip = json_decode($json,1); $out = array(); foreach($stip as $k => $v){ foreach($v as $k1 => $v1){ if(is_array($v1)){ foreach($v1 as $k2 => $v2) { $out[$k][$k1.'_'.$k2] = $v2; } }else{ $out[$k][$k1] = $v1; } } } //echo '
'.print_r($out,1).'
';exit(); //[id] => 514 //[id_user] => 1244 //[facultet] => Лечебный факультет //[specialnost] => 31.05.01 Лечебное дело //[grupp] => ЛД-62 ОФО //[date_create] => 1676406735 //[type] => государственная академическая стипендия в повышенном размере студентам, имеющим достижения в учебной, научно-исследовательской, общественной, культурно-творческой и спортивной деятельности //[status] => 0 //[semestr] => 1 //[uch_year] => 2022 //[preim] => Культурно-творческая //[score] => 55 //[user_id] => 1244 //[user_data_c] => 1505805604 //[user_data_u] => 1683972955 //[user_email] => zureta96@mail.ru //[user_pass] => 981d44bffa4b0cf7e64a9b7b64ddb82f //[user_status] => 0 //[user_fio] => Ципинова Зурят Муратовна //[user_foto] => 1244_ava_orig.jpg //[user_high_school] => 1 //[user_phone] => //[user_polis] => //[user_snils] => //[user_guid] => $SYS = new class_SYSTEM(); $data['filename'] = 'stipendii_'.$SYS->translit_text($facultet).'_'.date('His_dmY').'.csv'; $data['items'] = $out; $data['dir'] = 'stipendii'; $data['head'] = array( 'facultet'=>array('name' => 'Факультет','type'=>'string'), 'date_create'=>array('name' => 'Дата','type'=>'data'), 'type'=>array('name' => 'Тип','type'=>'string'), 'semestr'=>array('name' => 'Семестр','type'=>'string'), 'uch_year'=>array('name' => 'Уч.год','type'=>'string'), 'data_nv'=>array('name' => 'Дата начала выплаты','type'=>'string'), 'data_kv'=>array('name' => 'Дата окончания выплаты','type'=>'string'), 'preim'=>array('name' => 'Область достижений','type'=>'string'), 'score'=>array('name' => 'Баллы','type'=>'string'), 'user_fio'=>array('name' => 'ФИО','type'=>'string'), 'specialnost'=>array('name' => 'Специальность','type'=>'string'), 'grupp'=>array('name' => 'Группа','type'=>'string'), 'user_email'=>array('name' => 'Емаил','type'=>'string'), 'user_guid'=>array('name' => 'GUID','type'=>'string') ); $data['file_get'] = 1;//для получения файла $file = $SYS->format($data); $curl['url']='https://mkgtu.ru/1c-integration/api.php'; $curl['post']['auth']='seCre#Pas3245'; $curl['post']['step']='stipendii_upload'; $pi = pathinfo($file); $curl['post']['files'][]=array('path'=>'/home/admin/web/eios.mkgtu.ru/public_html/integration/'.$file,'mime'=>'text/csv','name'=>$pi['basename']); $rez = $SYS->cCurl($curl); echo json_encode($rez); echo '
'.print_r($pi,1).'
'; } /** * Отображение всех заявок и их баллов * @param $data * @return void */ function get_zayavki_old($data){ $sql = 'SELECT st.id,st.facultet, st.specialnost, st.grupp, st.date_create, st.type, st.semestr, st.uch_year, u.fio, u.guid FROM '.$this->Tstip.' as st, '.$this->Tusers.' as u WHERE st.id_user=u.id'; $rez = $this->DB->QUR_SEL($sql); $out = array(); foreach ($rez['rez'] as $key => $val) { $sql1 = 'SELECT a.id,a.kind,a.region,a.status,a.place,a.name FROM '.$this->Tachievements.' as a, '.$this->Tstip_dost.' as std WHERE std.id_achievement=a.id AND std.status=1 AND std.id_stip='.$val['id']; $rez1 = $this->DB->QUR_SEL($sql1); $val['points'] = 0; foreach($rez1['rez'] as $key1 => $val1){ $val['points'] = $val['points'] + $this->pointsAch($val1); } $out[] = $val; } //$out = $this->array_orderby($out, 'points', SORT_DESC); //echo '
'.print_r($out,1).'
'; $data['items'] = $out; $data['dir'] = 'stipendii'; $data['head'] = array( 'id'=>array('name' => '№','type'=>'string'), 'facultet'=>array('name' => 'Факультет','type'=>'string'), 'specialnost'=>array('name' => 'Специальность','type'=>'string'), 'grupp'=>array('name' => 'Группа','type'=>'string'), 'date_create'=>array('name' => 'Дата','type'=>'data'), 'type'=>array('name' => 'Тип','type'=>'string'), 'semestr'=>array('name' => 'Семестр','type'=>'string'), 'uch_year'=>array('name' => 'Уч.год','type'=>'string'), 'fio'=>array('name' => 'ФИО','type'=>'string'), 'guid'=>array('name' => 'GUID','type'=>'string'), 'points'=>array('name' => 'Баллы','type'=>'string') ); $SYS = new class_SYSTEM(); $SYS->format($data); } /** * Функция для авто подсчета баллов за конкурс * @param $data (array) * @return int */ function pointsAch($data){ /* kind - вид деятельности region - область достижения status - статус мероприятия count - численность place - место */ $points = 0; //$sql = 'SELECT * FROM '.$ST['dbpf'].'_achievements WHERE id = "'.$id_ach.'" '; //$rez = $DB->QUR_SEL($sql); //if ($rez){ $kind = $data['kind']; $region = $data['region']; $status = $data['status']; $count = $data['count_m']; $place = $data['place']; $name = $data['name']; //ОБЛАСТЬ ДОСТИЖЕНИЙ if ($region == 'Учебная'){ if (($kind == 'Олимпиада')||($kind == 'Проектная деятельность')){ if ($status == 'Международный'){ if ($place == 'победитель') $points = 20; if ($place == 'призер (2 место)') $points = 15; if ($place == 'призер (3 место)') $points = 15; if ($place == 'участник') $points = 10; } if ($status == 'Федеральный'){ if ($place == 'победитель') $points = 15; if ($place == 'призер (2 место)') $points = 10; if ($place == 'призер (3 место)') $points = 10; if ($place == 'участник') $points = 5; } if ($status == 'Региональный'){ if ($place == 'победитель') $points = 10; if ($place == 'призер (2 место)') $points = 5; if ($place == 'призер (3 место)') $points = 5; if ($place == 'участник') $points = 3; } if ($status == 'Образовательной организации'){ if ($place == 'победитель') $points = 5; if ($place == 'призер (2 место)') $points = 3; if ($place == 'призер (3 место)') $points = 3; if ($place == 'участник') $points = 1; } } } elseif ($region == 'Научно-исследовательская'){ if ($kind == 'Научное мероприятие'){ if ($place == 'победитель') $points = 10; if ($place == 'призер (2 место)') $points = 8; if ($place == 'призер (3 место)') $points = 6; if ($place == 'участник') $points = 1; } elseif ($kind == 'Научная публикация'){ if (strpos($name, 'патент')!==false) $points = 20; if (strpos($name, 'свидетельство')!==false) $points = 20; if ($status == 'Международный') $points = 24; elseif ($status == 'Федеральный') $points = 12; elseif ($status == 'Межрегиональный') $points = 6; } else $points = 4; } elseif ($region == 'Общественная'){ if ($status == 'Международный') $points = 20; elseif ($status == 'Федеральный') $points = 10; elseif ($status == 'Региональный') $points = 8; elseif ($status == 'Окружной') $points = 6; elseif ($status == 'Межрегиональный') $points = 6; elseif ($status == 'Муниципальный') $points = 5; else $points = 3; } elseif ($region == 'Культурно-творческая'){ $points = 16; } elseif ($region == 'Спортивная'){ if ($status == 'Международный'){ if ($place == 'победитель') $points = 20; if ($place == 'призер (2 место)') $points = 15; if ($place == 'призер (3 место)') $points = 15; if ($place == 'участник') $points = 10; } if ($status == 'Федеральный'){ if ($place == 'победитель') $points = 15; if ($place == 'призер (2 место)') $points = 10; if ($place == 'призер (3 место)') $points = 10; if ($place == 'участник') $points = 5; } if ($status == 'Региональный'){ if ($place == 'победитель') $points = 10; if ($place == 'призер (2 место)') $points = 5; if ($place == 'призер (3 место)') $points = 5; if ($place == 'участник') $points = 3; } if ($status == 'Образовательной организации'){ if ($place == 'победитель') $points = 5; if ($place == 'призер (2 место)') $points = 3; if ($place == 'призер (3 место)') $points = 3; if ($place == 'участник') $points = 1; } //просто физкультурное мероприятие if ($kind == 'Физкультурное мероприятие') $points = 5; //если ГТО if ($kind == 'Физкультурное мероприятие') if (strpos($name, 'ГТО')!==false) $points = 15; //$points = 32; } //} return $points; } /** * Сортировка массива * @return mixed|null */ function array_orderby(){ $args = func_get_args(); $data = array_shift($args); foreach ($args as $n => $field) { if (is_string($field)) { $tmp = array(); foreach ($data as $key => $row) $tmp[$key] = $row[$field]; $args[$n] = $tmp; } } $args[] = &$data; call_user_func_array(array($this,'array_multisort'), $args); return array_pop($args); } }