function print_hours($year, $part) { global $hour_kind_name, $hour_kind_code; global $total_year; //для расчета общего итога global $total_year_fil; global $part_num; global $kind_type_defaults; global $lect_control; global $lect_id; global $multy_ptypes; global $kadri_id; $hours_kind_type_selected = ''; //среди чего выборка по типу нагрузки $query = 'select id from hours_kind_type order by id'; $res = mysql_query($query); while ($a = mysql_fetch_array($res)) { //$select_val=''; if (isset($_GET['kind_type' . $a['id']]) && $_GET['kind_type' . $a['id']] == 'on') { if ($hours_kind_type_selected == '') { $hours_kind_type_selected = $a['id']; } else { $hours_kind_type_selected = $hours_kind_type_selected . ',' . $a['id']; } } //echo '<option value="'.$a['id'].'"'.$select_val.'>'.$a['name'].'</option>'; } $q_fields_list = ''; for ($i = 0; $i < sizeof($hour_kind_code); $i++) { $q_fields_list .= ', ' . $hour_kind_code[$i] . ', ' . $hour_kind_code[$i] . '_add'; } $query_all = 'SELECT hours_kind.id,hours_kind.stud_cnt,hours_kind.stud_cnt_add, subjects.name as subj_name, specialities.name as spec_name, levels.name as level_name, study_groups.name as group_name, study_groups.man_cnt as man_cnt,hours_kind.hours_kind_type,hours_kind.groups_cnt,hours_kind.comment,hours_kind.year_id,hours_kind.part_id' . $q_fields_list . ', time_intervals.name as year_name, time_parts.name as part_name,hours_kind_type.name as hours_kind_type_name,hours_kind.on_filial FROM hours_kind left join subjects on hours_kind.subject_id=subjects.id left join specialities on specialities.id=hours_kind.spec_id left join levels on levels.id=hours_kind.level_id left join study_groups on study_groups.id=hours_kind.group_id left join time_intervals on time_intervals.id=hours_kind.year_id left join time_parts on time_parts.id=hours_kind.part_id left join hours_kind_type on hours_kind_type.id=hours_kind.hours_kind_type where kadri_id=' . $kadri_id . ' and time_intervals.name="' . $year . '" and time_parts.name="' . $part . '" and hours_kind_type in(' . $hours_kind_type_selected . ') limit 0,100 '; //echo $query_all; if ($res_all = mysql_query($query_all) and mysql_numrows($res_all) > 0) { /*echo '<hr><font size=-1> Найдено записей: '.mysql_numrows($res_all).'</font><br>';*/ } else { if (!isset($_GET['save']) && !isset($_GET['print'])) { echo '<hr><font color="red" size=-1>Записей за указанный семестр нет</font>'; } } //echo $query_all; //для расчета нагрузки - список показателей видов часов echo '<div align="center"> ' . $part . ' СЕМЕСТР</div>'; $cols_disable = 0; //число скрытых столцов $not_print_cols = 0; //число непечатаемых столбцов (в нумерации столбцов) //echo ' kind_type_defaults='.$kind_type_defaults; echo '<form name="h_copy_' . $part_num . '" method="POST" action="?kadri_id=' . $kadri_id . '&year=' . $_GET['year'] . '&export=' . $kind_type_defaults . '"><table name=tab1 border=1 cellpadding="0" cellspacing="0" width=""> <tr align="center" class="title">'; if (!isset($_GET['save']) && !isset($_GET['print']) && $_SESSION['task_rights_id'] >= 3) { echo '<td width="50"><input type=checkbox name="checkbox_del_all' . $part_num . '" title="для копирования нагрузки" onClick="javascript:mark_all(this.name,' . $part_num . ');"> </td> <td width="50"><img src="images/todelete.png" title="Удалить"> <img src="images/toupdate.png" title="Правка"></td>'; } if ($_SESSION['task_rights_id'] <= 2) { $cols_disable = 2; } echo '<td width="20">№</td>'; echo '<td width="230">НАИМЕНОВАНИЕ ДИСЦИПЛИН</td>'; //250 echo '<td width="40"><img src="images/hours_pics/facul.gif" border=0 title="Факультет"></td>'; echo '<td width="40"><img src="images/hours_pics/special.gif" border=0 title="Cпециальность"></td>'; echo '<td width="40"><img src="images/hours_pics/kurs.gif" border=0 title="Курс"></td>'; echo '<td width="40"><img src="images/hours_pics/gr_number.gif" border=0 title="Число групп"></td>'; echo '<td width="40"><img src="images/hours_pics/stud_number.gif" border=0 title="Количество студентов"></td>'; if (!isset($_GET['save']) && !isset($_GET['print'])) { //echo '<td width="60">группа</td>'; echo '<td width="100">тип нагрузки</td>'; echo '<td width="60">комментарий</td>'; } else { $not_print_cols = 4; } //вывод видов часов (лекция, практ, лабор...) for ($i = 0; $i < sizeof($hour_kind_name); $i++) { echo '<td width=35><img src="images/hours_pics/' . $hour_kind_code[$i] . '.gif" alt="' . $hour_kind_name[$i] . '"></td>'; } echo '<td width=40><img src="images/hours_pics/sum.gif" alt="Всего часов"></td>'; $add_col = 0; //добавочный номер для столбца if (isset($_GET['filial_flag']) && $_GET['filial_flag'] == 'on') { echo '<td><img src="images/hours_pics/add_filials.gif" alt="надбавка 50% к всего"></td>'; //$cols_disable--;$not_print_cols--; $add_col = 1; } echo '</tr><tr align="center" class="main_">'; // нумерация столбцов списочной таблицы if (!isset($_GET['save']) && !isset($_GET['print'])) { for ($i = 1; $i < sizeof($hour_kind_name) + 13 - $cols_disable + $add_col; $i++) { echo '<td>' . $i . '</td>'; } } else { for ($i = 1; $i < sizeof($hour_kind_name) + 13 - $not_print_cols + $add_col; $i++) { echo '<td>' . $i . '</td>'; } } echo '</tr>'; // echo '<h3>$total='.$total.'</h3>'; $total = 0; $sumCol = array(); //итоги по столбцам for ($i = 0; $i < sizeof($hour_kind_code); $i++) { $sumCol[$i] = 0; } $j = 0; $sumColFilial = 0; while ($tmpval = mysql_fetch_array($res_all)) { $sum = 0; $j++; echo '<tr align="left" class="main_">'; if (!isset($_GET['save']) && !isset($_GET['print']) && $_SESSION['task_rights_id'] >= 3) { echo ' <td width="50"><input type=checkbox name="checkbox_h_copy_' . $tmpval['id'] . '" title="для копирования нагрузки"> </td> <td align="center"> <a href=javascript:del_confirm(' . $kadri_id . ',' . $tmpval['id'] . ',' . $tmpval['year_id'] . ') title="Удалить"> <img src="images/todelete.png" alt="Удалить" border="0"></a> <a href="s_hours.php?kadri_id=' . $kadri_id . '&hours_id=' . $tmpval['id'] . '&tab=2" title="Правка"> <img src="images/toupdate.png" alt="Правка" border="0"></a></td>'; } //else {} echo '<td width="">' . $j . ' </td>'; echo '<td width="230" align=left>' . $tmpval['subj_name'] . ' </td>'; echo '<td width="30"> ИРТ</td>'; echo '<td width="30" align=center>' . $tmpval['spec_name'] . ' </td>'; echo '<td width="30" align=right>' . $tmpval['level_name'] . ' </td>'; if (trim($tmpval['man_cnt']) != '') { $tmpval['man_cnt'] = ' ( ' . $tmpval['man_cnt'] . 'чел. )'; } else { $tmpval['man_cnt'] = ''; } if ($tmpval['groups_cnt'] == 0) { $tmpval['groups_cnt'] = ''; } echo '<td align=right>' . $tmpval['groups_cnt'] . ' </td>'; if ($tmpval['stud_cnt'] == 0) { $tmpval['stud_cnt'] = ''; } echo '<td align=right>' . numLocal($tmpval['stud_cnt'] + $tmpval['stud_cnt_add']) . ' </td>'; //число студентов if (!isset($_GET['save']) && !isset($_GET['print'])) { //echo '<td>'.$tmpval['group_name'].$tmpval['man_cnt'].' </td>'; /*if ($tmpval['hours_kind_type']==0) {$tmpval['hours_kind_type']='основная';} else {$tmpval['hours_kind_type']='дополнительная';}*/ echo '<td>' . $tmpval['hours_kind_type_name'] . ' </td>'; echo '<td>' . $tmpval['comment'] . ' </td>'; } // вывод видов нагрузки (лекции, практики ...) $kind_code_join = 0; // нагрука бюджетная и коммерческая for ($i = 0; $i < sizeof($hour_kind_code); $i++) { $kind_code_join = $tmpval[$hour_kind_code[$i]] + $tmpval[$hour_kind_code[$i] . '_add']; echo '<td align="center">' . numLocal(number_format($kind_code_join, 1)) . ' </td>'; $sum += $kind_code_join; $sumCol[$i] += $kind_code_join; } echo '<td align="center">' . number_format($sum, 1, ',', '') . ' </td>'; if (isset($_GET['filial_flag']) && $_GET['filial_flag'] == 'on') { //вывод с учетом выезда if ($tmpval['on_filial'] == 1) { echo '<td align="center">' . number_format($sum * 0.5, 1, ',', '') . ' </td>'; $sumColFilial += $sum * 0.5; } else { echo '<td align="center"> </td>'; } } echo '</tr>'; $total += $sum; $part_id = $tmpval['part_id']; $year_id = $tmpval['year_id']; } echo '<tr class=text style="font-weight:bold;white-space:nowrap;">'; //<td> </td><td> </td>'; if (!isset($_GET['save']) && !isset($_GET['print']) && $_SESSION['task_rights_id'] >= 3) { echo '<td colspan=2> </td>'; } echo '<td align="center" colspan=2> Итого часов: </td><td> </td>'; for ($i = 0; $i < 6 - $not_print_cols / 2; $i++) { echo '<td align="center"> </td>'; } $sumTimeTibleCheck = 0; //для сверки с расписанием for ($i = 0; $i < sizeof($hour_kind_code); $i++) { if ($sumCol[$i] > 0) { //подсчет суммы (Лекции+ЛабРаб+Практики) для сверки с расписанием if ($i < 3 && !isset($_GET['save']) && !isset($_GET['print'])) { $sumTimeTibleCheck += $sumCol[$i]; //------------------------- $sum_l_h = 0; //.$hour_kind_name[$i] switch ($hour_kind_name[$i]) { case 'лаборатор. занятий': // $sum_l_h = hour_cnt($lect_id, $year_id, $part_id, 'л/р'); break; case 'лекции': // $sum_l_h = hour_cnt($lect_id, $year_id, $part_id, 'л'); break; case 'практич.': // $sum_l_h = hour_cnt($lect_id, $year_id, $part_id, 'пр'); break; } //------------------------- if ($sumCol[$i] != $sum_l_h) { echo '<td align="center">' . number_format($sumCol[$i], 1, ',', '') . '<span class=warning><sup>' . $sum_l_h . '</sup></span></td>'; } else { echo '<td align="center">' . number_format($sumCol[$i], 1, ',', '') . '</td>'; } } else { echo '<td align="center">' . number_format($sumCol[$i], 1, ',', '') . '</td>'; } } else { echo '<td align="center"> </td>'; } } echo '<td align="center">' . number_format($total, 1, ',', '') . '</td>'; //учет при выборе "с учетом Филиалов" if (isset($_GET['filial_flag']) && $_GET['filial_flag'] == 'on') { $total_year_fil += $total + $sumColFilial; if ($sumColFilial > 0) { echo '<td align="center">' . $sumColFilial . ' </td>'; } else { echo '<td align="center"> </td>'; } } echo '</tr>'; $total_year += $total; echo '</table>'; //окончание формы часов if (!isset($_GET['save']) && !isset($_GET['print']) && $lect_control) { ?> <select name=type_copy style="width:300;"> <option value=0> копировать с перемещением (удаляем у одного- добавляем другому) </option> <option value=1> только копирование (сохраняем у одного и добавляем другому)</option> </select> <select id="teach_name" name="teach_name" style="width:200;"><?php if ($_SESSION['task_rights_id'] == 4) { $listQuery = 'select k.id,k.fio from kadri k left join kadri_in_ptypes kpt on k.id = kpt.kadri_id left join person_types pt on pt.id=kpt.person_type_id where pt.name_short like "%ППС%" order by k.fio '; } else { $listQuery = 'select k.id,k.fio from kadri k left join kadri_in_ptypes kpt on k.id = kpt.kadri_id left join person_types pt on pt.id=kpt.person_type_id where pt.name_short like "%ППС%" and k.id="' . $kadri_id . '" order by k.fio '; } echo getFrom_ListItemValue($listQuery, 'id', 'fio', 'kadri_id'); ?> </select> <select name="year_list" style="width:100;"> <option value="0">год</option> <?php $query = 'select id,name from time_intervals order by name desc'; $res = mysql_query($query); while ($a = mysql_fetch_array($res)) { $select_val = ''; if (isset($tmpval)) { if ($tmpval['year_id'] == $a['id']) { $select_val = ' selected'; } } else { if (isset($_POST['year_list'])) { if ($_POST['year_list'] == $a['id']) { $select_val = ' selected'; } } else { if (isset($def_settings)) { if ($def_settings['year_id'] == $a['id']) { $select_val = ' selected'; } } } } echo '<option value="' . $a['id'] . '"' . $select_val . '>' . $a['name'] . '</option>'; } ?> </select> <select name="part_list" style="width:100;"> <option value="0">семестр</option> <?php $query = 'select id,name from time_parts order by name desc '; $res = mysql_query($query); while ($a = mysql_fetch_array($res)) { $select_val = ''; if (isset($tmpval)) { if ($tmpval['part_id'] == $a['id']) { $select_val = ' selected'; } } else { if (isset($_POST['part_list'])) { if ($_POST['part_list'] == $a['id']) { $select_val = ' selected'; } } else { if (isset($def_settings)) { if ($def_settings['part_id'] == $a['id']) { $select_val = ' selected'; } } } } echo '<option value="' . $a['id'] . '"' . $select_val . '>' . $a['name'] . '</option>'; } ?> </select> <input type=button value="Ok" onClick="javascript:test_copy(<?php echo $part_num; $part_num++; ?> );"> </form> <?php $sum_l_h = 0; $sum_l_h = hour_cnt($lect_id, $year_id, $part_id, ''); //echo 'lect_id='.$lect_id.', year='.$tmpval['year_id'].', part='.$tmpval['part_id'].', sum_l_h='.$sum_l_h; if ($sum_l_h != $sumTimeTibleCheck) { echo '<div class=warning> за <u>' . $part . '</u> семестр ошибка сверки с расписанием. в расписании=' . $sum_l_h . ', в нагрузке=' . $sumTimeTibleCheck . '</div>'; } else { echo '<div class=success>за <u>' . $part . '</u> семестр сверено с расписанием</div>'; } } //echo '<div align="left"> Итого часов: '.$total.'</div>'; }
echo '<td class=numb> ' . numLocal(round($a['hours_sum'] / $a['rate'], 2)) . '</td>'; } else { echo '<td class=numb> </td>'; } // </abarmin> echo ' <td class=numb> ' . numLocal($a_orders['rate_sum']) . '<sup>' . numLocal($a_orders['ord_cnt']) . '</sup></td> <td class=numb> ' . numLocal($a['groups_cnt_sum_']) . '</td> <td class=numb> ' . numLocal($a['stud_cnt_sum_']) . '</td> <td class=numb> ' . numLocal($a['lects_sum_']) . '</td> <td class=numb> ' . numLocal($a['dipl_sum_']) . '</td> <td class=numb> ' . numLocal(number_format($a['hours_sum1_'], 1, ',', '')) . '</td> <td class=numb> ' . numLocal(number_format($a['hours_sum2_'], 1, ',', '')) . '</td> <td class=numb> ' . numLocal(number_format($a['hours_sum3_'], 1, ',', '')) . '</td> <td class=numb> ' . numLocal(number_format($a['hours_sum4_'], 1, ',', '')) . '</td> <td class=numb> ' . numLocal(number_format($a['hours_sum'], 1, ',', '')) . '</td></tr>'; $i++; } ?> </table> </form> <div class=text><b>Примечание:</b> <a href="#top">перейти наверх</a><br> <ul> <li><a name="redmark"></a><span style="color:#ff0000;font-weight:bold;"> Красным </span> отмечаны сотрудники ППС, у которых нет нагрузки (=0) в выбранном учебном году</li> <li><a name="ratedetail"></a><b>ставка фактическая</b> рассчитывается путем деления (Всего часов в году) на (Плановые часы по указанной должности ППС) и округления до 2-х знаков после запятой </li> <li><a name="rateplan"></a><b>ставка плановая</b> рассчитывается путем суммирования ставок по всем <u>действующим</u> (дата окончания приказа не истекла) приказам сотрудника. <br/>Дополнительно <sup>верхним индексом</sup> указывается число расчетных для ставки приказов</li> </ul> </div> </div> <p><a href="lect_anketa.php?kadri_id=<?php