示例#1
0
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="Удалить">&nbsp;&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;
				<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 . '&nbsp;</td>';
        echo '<td width="230" align=left>' . $tmpval['subj_name'] . '&nbsp</td>';
        echo '<td width="30">&nbsp; ИРТ</td>';
        echo '<td width="30" align=center>' . $tmpval['spec_name'] . '&nbsp</td>';
        echo '<td width="30" align=right>' . $tmpval['level_name'] . '&nbsp</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'] . '&nbsp</td>';
        if ($tmpval['stud_cnt'] == 0) {
            $tmpval['stud_cnt'] = '';
        }
        echo '<td align=right>' . numLocal($tmpval['stud_cnt'] + $tmpval['stud_cnt_add']) . '&nbsp</td>';
        //число студентов
        if (!isset($_GET['save']) && !isset($_GET['print'])) {
            //echo '<td>'.$tmpval['group_name'].$tmpval['man_cnt'].'&nbsp</td>';
            /*if ($tmpval['hours_kind_type']==0) {$tmpval['hours_kind_type']='основная';}
            		else {$tmpval['hours_kind_type']='дополнительная';}*/
            echo '<td>' . $tmpval['hours_kind_type_name'] . '&nbsp</td>';
            echo '<td>' . $tmpval['comment'] . '&nbsp</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)) . '&nbsp</td>';
            $sum += $kind_code_join;
            $sumCol[$i] += $kind_code_join;
        }
        echo '<td align="center">' . number_format($sum, 1, ',', '') . '&nbsp</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, ',', '') . '&nbsp</td>';
                $sumColFilial += $sum * 0.5;
            } else {
                echo '<td align="center">&nbsp</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>&nbsp;</td><td>&nbsp;</td>';
    if (!isset($_GET['save']) && !isset($_GET['print']) && $_SESSION['task_rights_id'] >= 3) {
        echo '<td colspan=2>&nbsp;</td>';
    }
    echo '<td  align="center" colspan=2>&nbsp; Итого часов: </td><td>&nbsp;</td>';
    for ($i = 0; $i < 6 - $not_print_cols / 2; $i++) {
        echo '<td  align="center">&nbsp;</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">&nbsp;</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 . '&nbsp;</td>';
        } else {
            echo '<td  align="center">&nbsp;</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>';
}
示例#2
0
        echo '<td class=numb>&nbsp;' . numLocal(round($a['hours_sum'] / $a['rate'], 2)) . '</td>';
    } else {
        echo '<td class=numb>&nbsp;</td>';
    }
    // </abarmin>
    echo '
	<td class=numb>&nbsp;' . numLocal($a_orders['rate_sum']) . '<sup>' . numLocal($a_orders['ord_cnt']) . '</sup></td>
	<td class=numb>&nbsp;' . numLocal($a['groups_cnt_sum_']) . '</td>
	<td class=numb>&nbsp;' . numLocal($a['stud_cnt_sum_']) . '</td>
	<td class=numb>&nbsp;' . numLocal($a['lects_sum_']) . '</td>
	<td class=numb>&nbsp;' . numLocal($a['dipl_sum_']) . '</td>
	<td class=numb>&nbsp;' . numLocal(number_format($a['hours_sum1_'], 1, ',', '')) . '</td>
	<td class=numb>&nbsp;' . numLocal(number_format($a['hours_sum2_'], 1, ',', '')) . '</td>
	<td class=numb>&nbsp;' . numLocal(number_format($a['hours_sum3_'], 1, ',', '')) . '</td>
	<td class=numb>&nbsp;' . numLocal(number_format($a['hours_sum4_'], 1, ',', '')) . '</td>
	<td class=numb>&nbsp;' . 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