/**
  * Получить кафедры дисциплин
  * @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']);
Exemple #3
0
            //Если балл не стоит, то нужен прочерк
            $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("Ошибка удаления бала");