//Добавить информацию о выборе студентов
$inTitle = '';
$dis = end(RPIrro::upgradeChoise(array($dis), false, array($gr['id'])));
if ($dis['vdv']) {
    if (empty($dis['numsts'])) {
        RPH::errorPage('Ни один студент не выбрал дисциплину "' . $dis['name'] . '"');
    }
    $inTitle = ' (по выбору)';
}
$dis = end(RPIrro::upgradeGroups(array($dis), array($gr)));
/*Проверка на доступ к журналу*/
$role = RPRole::getRole();
if (stripos($role['sh'], '_pr')) {
    //Если препод - проверяем
    /*берем логин*/
    $teach = RPRole::userID();
    $dis = array($dis);
    $dis = end(RPIrro::upgradePreps($dis, false, true));
    $dis['preps'] = end(RPU::filterBy($dis['preps'][$gr['id']], array('id_tutor' => $teach)));
    if (empty($dis['preps'])) {
        RPH::errorPage('Вы не ведете предмет у этой группы');
    }
}
//Добавить информацию о перезачетах
$dis = RPIrro::upgradeOffset(array($dis), array($gr['id']));
//Берем все КМ для ТУП+Д
$dis = end(RPIrro::getKMS($dis, array($gr['id'])));
if (!$dis['kms'][$gr['id']]) {
    RPH::errorPage('Нет ни одного КМ. <a class="btn btn-info" href="/prepare/tpd/schedule/?tupd=' . $link . '">График КМ</a>');
}
$dis = RPU::e($dis);
Example #2
0
<?php

if (!RPRole::is('stud')) {
    throw new Exception("Ошибка доступа");
}
$numst = RPRole::userID();
$gr = RPIrro::getGroup($numst);
$gr = $gr['gr'];
//Взять информацию о группе
$gr = end(RPIrro::getGroups($gr, 'group', true));
if (empty($gr)) {
    throw new Exception('Не найдена информация о группе');
}
//Расчитываем семестр
if ($_GET['sem']) {
    $sem = RPU::getAbsSem($gr['year'], $_GET['sem']);
} else {
    $sem = RPU::getNowSem();
}
//Взять информацию о дисциплинах
$dis = RPIrro::upDises($gr['tup_id'], 'tup', $sem);
//Удалить дисциплины, которые студент не выбрал
$dis = RPIrro::upgradeChoise($dis, true, array($gr['id']));
foreach ($dis as $k => $d) {
    if ($d['vdv'] and !in_array($numst, $d['numsts'])) {
        unset($dis[$k]);
    } else {
        $dis[$k]['numsts'] = array($numst);
    }
}
//Добавить информацию о перезачетах
<?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("Ошибка удаления бала");