Пример #1
0
 public static function get_kug_html($kug = [], $attestaciya = [], $max_week_num = 0)
 {
     $weekly_hours = [];
     //масси, в котром будет накапливаться недельные часы
     for ($i = 1; $i <= $max_week_num; $i++) {
         $weekly_hours[$i] = 0;
     }
     $kug_tb = '<table class="tb">
     <thead>
     <tr class="thead">
        <td rowspan="2">Номер</td>
        <td  rowspan="2">Наименование</td>
        <td  rowspan="2">Всего часов</td>
        <td colspan="3">В том числе</td>
        <td  rowspan="2">Форма контроля</td>
        ' . ($max_week_num ? '<td class="center" colspan="' . $max_week_num . '">Неделя</td>' : '') . '
     </tr>
     <tr class="thead">
       <td>ЛК</td>
       <td>ПР</td>
       <td>СРС</td>
       ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num, 'is_head' => true]) : '') . '
     </tr>
     </thead>
     <tbody>';
     $all_lk = 0;
     $all_pr = 0;
     $all_srs = 0;
     //        $current_razdel_tip = '';
     $razdel_num = 1;
     foreach ($kug as $tip_razdela => $razdeli) {
         $razdels = '';
         foreach ($razdeli as $k => $v) {
             $razdel_lk = 0;
             $razdel_pr = 0;
             $razdel_srs = 0;
             $podrazdeli = '';
             $podrazdeli_s_temami = '';
             $for_kug = '';
             $for_plan = '';
             $podrazdel_num = 1;
             $first_podrazdel = key($v['podrazdels']);
             foreach ($v['podrazdels'] as $pr => $pri) {
                 $podrazdel_lk = 0;
                 $podrazdel_pr = 0;
                 $podrazdel_srs = 0;
                 $podrazdel_kontrol = [];
                 $tem_num = 1;
                 $temi = '';
                 //var_dump($pri);
                 //$first_elem = reset($pri['themes']);
                 foreach ($pri['themes'] as $tema_key => $tema_item) {
                     $week_hours = $tema_item['lk'] + $tema_item['pr'] + $tema_item['srs'];
                     $temi .= '<tr>
                         <td>' . $razdel_num . '.' . $podrazdel_num . '.' . $tem_num . '.</td>
                         <td>' . $tema_item['nazvanie'] . '</td>
                         <td class="center">' . ($week_hours ? $week_hours : '') . '</td>
                         <td class="center">' . ($tema_item['lk'] ? $tema_item['lk'] : '') . '</td>
                         <td class="center">' . ($tema_item['pr'] ? $tema_item['pr'] : '') . '</td>
                         <td class="center">' . ($tema_item['srs'] ? $tema_item['srs'] : '') . '</td>
                         <td class="center">' . (isset($tema_item['forma_kontrolya_temi']) ? $tema_item['forma_kontrolya_temi'] : '') . '</td>
                         ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num, 'cur_week' => $tema_item['nedelya'], 'chasy' => $week_hours]) : '') . '
                     </tr>';
                     //var_dump($temi);
                     if (isset($tema_item['forma_kontrolya_temi'])) {
                         $podrazdel_kontrol[] = $tema_item['forma_kontrolya_temi'];
                     }
                     //if ($pri['razdel']=='var' and )
                     $podrazdel_lk += $tema_item['lk'];
                     $podrazdel_pr += $tema_item['pr'];
                     $podrazdel_srs += $tema_item['srs'];
                     if ($v['tip_razdela'] == 7 and $first_podrazdel == $pr or $v['tip_razdela'] != 7) {
                         $weekly_hours[$tema_item['nedelya']] += $week_hours;
                     }
                     $tem_num++;
                 }
                 $podrzdel_kf = '';
                 if ($pri['podrazdel_fk_name']) {
                     $podrzdel_kf = '<tr class="sub2head">
                         <td></td>
                         <td>Итоговая аттестация по ' . ($v['tip_kursa'] == 'pk' ? 'блоку тем' : 'дисциплине') . '</td>
                         <td class="center">' . ($pri['podrazdel_chasy_fk'] ? $pri['podrazdel_chasy_fk'] : '') . '</td>
                         <td class="center"></td>
                         <td class="center">' . ($pri['podrazdel_chasy_fk'] ? $pri['podrazdel_chasy_fk'] : '') . '</td>
                         <td class="center"></td>
                         <td class="center">' . $pri['podrazdel_fk_name'] . '</td>
                         ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num]) : '') . '
                     </tr>';
                     $podrazdel_pr += $pri['podrazdel_chasy_fk'];
                 }
                 $podrazdeli = '<tr class="sub2head">
                         <td>' . $razdel_num . '.' . $podrazdel_num . '.</td>
                         <td>' . $pri['nazvanie'] . '</td>
                         <td class="center">' . ($podrazdel_lk + $podrazdel_pr + $podrazdel_srs ? $podrazdel_lk + $podrazdel_pr + $podrazdel_srs : '') . '</td>
                         <td class="center">' . ($podrazdel_lk ? $podrazdel_lk : '') . '</td>
                         <td class="center">' . ($podrazdel_pr ? $podrazdel_pr : '') . '</td>
                         <td class="center">' . ($podrazdel_srs ? $podrazdel_srs : '') . '</td>
                         <td class="center">' . implode(',', $podrazdel_kontrol) . '</td>
                         ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num]) : '') . '
                     </tr>';
                 $podrazdeli_s_temami = $podrazdeli . $temi . $podrzdel_kf;
                 $for_kug .= $podrazdeli_s_temami;
                 if ($v['tip_razdela'] == 7 and $first_podrazdel == $pr or $v['tip_razdela'] != 7) {
                     $razdel_lk += $podrazdel_lk;
                     $razdel_pr += $podrazdel_pr;
                     $razdel_srs += $podrazdel_srs;
                 }
                 $podrazdel_num++;
             }
             $razdels .= '<tr class="subhead razdel-tr">
                         <td></td>
                         <td>' . $v['nazvanie'] . '</td>
                         <td class="center">' . ($razdel_lk + $razdel_pr + $razdel_srs ? $razdel_lk + $razdel_pr + $razdel_srs : '') . '</td>
                         <td class="center">' . ($razdel_lk ? $razdel_lk : '') . '</td>
                         <td class="center">' . ($razdel_pr ? $razdel_pr : '') . '</td>
                         <td class="center">' . ($razdel_srs ? $razdel_srs : '') . '</td>
                         <td></td>
                         ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num]) : '') . '
                     </tr>';
             $razdels .= $for_kug;
             $razdel_num++;
             $all_lk += $razdel_lk;
             $all_pr += $razdel_pr;
             $all_srs += $razdel_srs;
         }
         $kug_tb .= '<tr>
                     <td class="center" colspan="7">' . KursGlobals::get_tip_razdela_name($tip_razdela) . '</td>
                     ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num]) : '') . '
                    </tr>';
         $kug_tb .= $razdels;
     }
     if ($attestaciya) {
         $kug_tb .= '<tr class="subhead attestatsiya-tr">
                         <td></td>
                         <td>Итоговая аттестация</td>
                         <td class="center">' . ($attestaciya['chasy'] ? $attestaciya['chasy'] : '') . '</td>
                         <td class="center"></td>
                         <td class="center">' . ($attestaciya['chasy'] ? $attestaciya['chasy'] : '') . '</td>
                         <td class="center"></td>
                         <td class="center">' . $attestaciya['forma_attestacii'] . '</td>
                         ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num, 'cur_week' => $attestaciya['nedelya'], 'chasy' => $attestaciya['chasy']]) : '') . '
                     </tr>';
         $all_pr += $attestaciya['chasy'];
         $weekly_hours[$attestaciya['nedelya']] += $attestaciya['chasy'];
     }
     $kug_tb .= '<tr class="summary bold-tr">
                     <td></td>
                     <td>Итого</td>
                     <td class="center">' . ($all_lk + $all_pr + $all_srs ? $all_lk + $all_pr + $all_srs : '') . '</td>
                     <td class="center">' . ($all_lk ? $all_lk : '') . '</td>
                     <td class="center">' . ($all_pr ? $all_pr : '') . '</td>
                     <td class="center">' . ($all_srs ? $all_srs : '') . '</td>
                     <td></td>
                     ' . ($max_week_num ? KursGlobals::get_week_row(['week_num' => $max_week_num, 'weekly_hours' => $weekly_hours]) : '') . '
                 </tr>';
     $kug_tb .= '</tbody></table>';
     return $kug_tb;
 }