/** * Получить кафедры дисциплин * @param array $tpds то что возвращается функцией <a href="#upDises">upDises</a> * @return array [ id_dis=>[name] ] */ public static function getKafs($tpd) { $MsSQL = RPDB::connect(); $di = RPU::reshape($tpd, false, 'id_dis'); $result = $MsSQL->prepare("select kaf.name ,dis.id id_dis from kaf,dis where dis.id_kaf=kaf.id AND dis.id IN(" . RPU::plas($di) . ")"); if (!$result->execute($di)) { throw new Exception('Ошибка получения кафедр'); } return RPU::reshape($result->fetchAll(PDO::FETCH_ASSOC), 'id_dis'); }
$week = ' (' . $v['ws'] . '-' . $v['we'] . ' недели)'; } $unvisit[$numst][] = 'C ' . RPU::convDtP($v['data_start']) . ' по ' . RPU::convDtP($v['data_end']) . $week; for ($j = $v['ws']; $j <= $v['we']; $j++) { $u[$j] = 'bg-success'; } } $pr[$numst] = $dis['started'][$numst]; $pr1 = 0; foreach ($km as $k) { if ($k['bonus'] != 1) { $pr1km['min'][$k['id']] = $k['min_ball']; $pr1km['max'][$k['id']] = $k['max_ball']; } $b = RPU::filterBy($ball[$link], array('id_km' => $k['id'], 'numst' => $numst)); $b = end(RPU::reshape($b, false, array('ball'))); $body[$i]['un'][] = $u[$k['week']]; if ($b['ball'] == '-1') { $b['ball'] = 'н'; } $pr1 += (double) $b['ball']; $b['id_km'] = $k['id']; $b['numst'] = $numst; $body[$i]['km'][$k['id']] = $b; } $grade = end(RPU::filterBy($dis['grades'], array('numst' => $numst))); $body[$i]['sum'] = $grade['b']; $body[$i]['pr1'] = $pr1; $body[$i++]['oc'] = $grade['o']; } $arResult['print']['pr1']['max'] = array_sum($pr1km['max']);
//Если балл не стоит, то нужен прочерк $km['ball']['b'] = '-'; $km['ball']['o'] = $km['week'] < $set['week'] ? 'n' : 'f'; //Если балл не стоит на будующей неделе, показываться вообще не будет } if ($km['ball']['b'] == '-1') { $km['ball']['b'] = 'н'; } $dis[$i]['kms'][$key] = $km; } $dis[$i]['kms'] = RPU::matrixSort($dis[$i]['kms'], 'week'); if (empty($dis[$i]['kms'])) { unset($dis[$i]['kms']); } } $dis = RPU::reshape($dis, 'id_link'); //Взять периоды непосещения $unvis = RPIrro::getUnvisit($gr['id'], $set); foreach ($unvis as $i => $row) { $unvis[$i]['data_start'] = RPU::convDtP($row['data_start']); $unvis[$i]['data_end'] = RPU::convDtP($row['data_end']); if ($row['ws'] == $row['we']) { $unvis[$i]['week'] = $row['ws'] . ' неделя'; } else { $unvis[$i]['week'] = $row['ws'] . ' - ' . $row['we'] . ' недели'; } } //Взять взыскания студента $sanction = RPIrro::getSanction($gr['id']); $textzamech = array('1' => "Замечание", "2" => "Выговор"); foreach ($sanction as $i => $row) {
<?php if (!RPRole::getPermitOne('journal_edit')) { RPH::errorPage("Ошибка доступа"); } $myPost = json_decode(file_get_contents('php://input'), true); $numst = RPU::reshape($myPost, 'numst', 'numst'); $id_km = RPU::reshape($myPost, 'id_km', 'id_km'); $MsSQL = RPDB::connect(); //Получаем существующие баллы в БД для измененных КМ и студентов $result = $MsSQL->prepare('select * from st_ball where id_km IN (' . RPU::plas($id_km) . ') and numst IN (' . RPU::plas($numst) . ')'); if (!$result->execute(array_merge($id_km, $numst))) { throw new Exception("Ошибка получения баллов"); } $balls = $result->fetchAll(PDO::FETCH_ASSOC); foreach ($myPost as $val) { // Убрано после новости о том, что можно удалять балл //if($val['ball']==='') continue; if ($val['ball'] === 'н') { $val['ball'] = -1; } $b = RPU::filterBy($balls, array('id_km' => $val['id_km'], 'numst' => $val['numst'])); if (!empty($b)) { if ($b['ball'] === $val['ball']) { continue; } $where = $val; unset($where['ball']); if ($val['ball'] === '') { if (!RPDB::delete('st_ball', $where)) { throw new Exception("Ошибка удаления бала");