EIOS/rabprog/tpl/rpd_praktik/mod_rpd_razdel5.html

311 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{function razdel_5_tr fo='' del=1 copy=0}
<tr class="table_5_tr" data-fo="{$fo}">
<td>
{if $del==1}<a href="#" class="btn btn-secondary btn-sm table_5_del_tr" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Удаление строки из таблицы, не забывайте сохранять!"><i class="bi bi-trash"></i></a>{/if}
</td>
<td><input type="text" class="form-control form-control-sm table_5_tdinps table_5_td_{$fo}_sem table_5_td_{$fo}" data-fo="{$fo}" data-name="sem" value="{if isset($data.sem)}{$data.sem}{/if}"></td>
<td><input type="text" class="form-control form-control-sm td5{$fo}_razdel table_5_td_{$fo}" data-fo="{$fo}" data-name="razdel" value="{if isset($data.razdel)}{$data.razdel|escape}{/if}{if $copy==1}%RAZDEL%{/if}"></td>
{if $fo!='zao'}<td><input type="text" class="form-control form-control-sm table_5_td_{$fo}" data-fo="{$fo}" data-name="sem_ned" value="{if isset($data.sem_ned)}{$data.sem_ned}{/if}"></td>{/if}
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="lek" value="{if isset($data.lek)}{$data.lek}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="lab" value="{if isset($data.lab)}{$data.lab}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="pr" value="{if isset($data.pr)}{$data.pr}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="srp" value="{if isset($data.srp)}{$data.srp}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="krat" value="{if isset($data.krat)}{$data.krat}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="kontrol" value="{if isset($data.kontrol)}{$data.kontrol}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="sr" value="{if isset($data.sr)}{$data.sr}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_5_tdinp table_5_td_{$fo}" data-fo="{$fo}" data-name="sz" value="{if isset($data.sz)}{$data.sz}{/if}"></td>
{if $fo!='zao'}<td><input type="text" class="form-control form-control-sm table_5_td_{$fo} inputModal" data-fo="{$fo}" data-name="forma_control" value="{if isset($data.sem)}{$data.forma_control|escape}{/if}"></td>{/if}
</tr>
{/function}
{literal}<script>
$(document).ready(function(){
function checkSave(fo){
let name = '',val=0,valI='', check=1;
let lek=0, lab=0, pr=0, srp=0, krat=0, kontrol=0, sr=0, sz=0;
$(".table_5_td_"+fo).each(function( index ) {
name = $(this).data('name');
if($(this).val()=='') val=0; else val = parseFloat($(this).val().replace(',','.'));
if(name=='lek') lek = lek + val;
if(name=='lab') lab = lab + val;
if(name=='pr') pr = pr + val;
if(name=='srp') srp = srp + val;
if(name=='krat') krat = krat + val;
if(name=='kontrol') kontrol = kontrol + val;
if(name=='sr') sr = sr + val;
if(name=='sz') sz = sz + val;
});
lek = +lek.toFixed(3);
lab = +lab.toFixed(3);
pr = +pr.toFixed(3);
srp = +srp.toFixed(3);
krat = +krat.toFixed(3);
kontrol = +kontrol.toFixed(3);
sr = +sr.toFixed(3);
sz = +sz.toFixed(3);
console.log('lek='+lek+';lab='+lab+';pr='+pr+';srp='+srp+';krat='+krat+';kontrol='+kontrol+';sr='+sr+';sz='+sz+';');
let lekI = 0;
valI = $(".table_5itogo_"+fo+"_lek").html().replace(',','.'); if(valI=='') lekI = 0; else lekI = parseFloat(valI);
let labI = 0;
valI = $(".table_5itogo_"+fo+"_lab").html().replace(',','.'); if(valI=='') labI = 0; else labI = parseFloat(valI);
let prI = 0;
valI = $(".table_5itogo_"+fo+"_pr").html().replace(',','.'); if(valI=='') prI = 0; else prI = parseFloat(valI);
let srpI = 0;
valI = $(".table_5itogo_"+fo+"_srp").html().replace(',','.'); if(valI=='') srpI = 0; else srpI = parseFloat(valI);
let kratI = 0;
valI = $(".table_5itogo_"+fo+"_krat").html().replace(',','.'); if(valI=='') kratI = 0; else kratI = parseFloat(valI);
let kontrolI = 0;
valI = $(".table_5itogo_"+fo+"_kontrol").html().replace(',','.'); if(valI=='') kontrolI = 0; else kontrolI = parseFloat(valI);
let srI = 0;
valI = $(".table_5itogo_"+fo+"_sr").html().replace(',','.'); if(valI=='') srI = 0; else srI = parseFloat(valI);
let szI = 0;
valI = $(".table_5itogo_"+fo+"_sz").html().replace(',','.'); if(valI=='') szI = 0; else szI = parseFloat(valI);
if (lek!=lekI){ $(".table_5itogo_"+fo+"_lek").css({'color':'#dc3545'}); check=0; slek=+(lekI-lek).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_lek").css({'color':'#198754'}); slek=0; }
if (lab!=labI){ $(".table_5itogo_"+fo+"_lab").css({'color':'#dc3545'}); check=0; slab=+(labI-lab).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_lab").css({'color':'#198754'}); slab=0; }
if (pr!=prI){ $(".table_5itogo_"+fo+"_pr").css({'color':'#dc3545'}); check=0; spr=+(prI-pr).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_pr").css({'color':'#198754'}); spr=0; }
if (srp!=srpI){ $(".table_5itogo_"+fo+"_srp").css({'color':'#dc3545'}); check=0; ssrp=+(srpI-srp).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_srp").css({'color':'#198754'}); ssrp=0; }
if (krat!=kratI){ $(".table_5itogo_"+fo+"_krat").css({'color':'#dc3545'}); check=0; skrat=+(kratI-krat).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_krat").css({'color':'#198754'}); skrat=0; }
if (kontrol!=kontrolI){ $(".table_5itogo_"+fo+"_kontrol").css({'color':'#dc3545'}); check=0; skontrol=+(kontrolI-kontrol).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_kontrol").css({'color':'#198754'}); skontrol=0; }
if (sr!=srI){ $(".table_5itogo_"+fo+"_sr").css({'color':'#dc3545'}); check=0; ssr=+(srI-sr).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_sr").css({'color':'#198754'}); ssr=0; }
if (sz!=szI){ $(".table_5itogo_"+fo+"_sz").css({'color':'#dc3545'}); check=0; ssz=+(szI-sz).toFixed(3); }
else{ $(".table_5itogo_"+fo+"_sz").css({'color':'#198754'}); ssz=0; }
if(check==1) {
$(".table_5_td_"+fo+"_btnsave").show();
}else {
$(".table_5_td_"+fo+"_btnsave").hide();
let mes='';
if(slek!="0") mes += "Лекций: "+slek+"<br>";
if(slab!="0") mes += "Лабораторных: "+slab+"<br>";
if(spr!="0") mes += "Практических: "+spr+"<br>";
if(ssrp!="0") mes += "СРП: "+ssrp+"<br>";
if(skrat!="0") mes += "КРАт: "+skrat+"<br>";
if(skontrol!="0") mes += "Контроль: "+skontrol+"<br>";
if(ssr!="0") mes += "СР: "+ssr+"<br>";
if(ssz!="0") mes += "СЗ: "+ssz+"<br>";
window.ToastShow1("Данные по часам, осталось ввести:",mes,1);
}
}
//надо проверить семестр и количество часов в 4 таблице
function checkHours4(fo,name,sem,val){
let znach = parseFloat($("#tabl4vz_"+fo+"_"+sem+"_"+name).text());
val = parseFloat(val);
let sum = 0;
let semc=0;
let tr = null;
let valc = 0;
$(".table_5_tr[data-fo="+fo+"]").each(function(){
tr = $(this);
semc = parseFloat(tr.find("[data-name=sem]").val()); //текущий семестр
if(semc == parseFloat(sem)){
valc = parseFloat(tr.find("[data-name="+name+"]").val());
sum += valc;
}
//console.log(znach+"="+semc+":"+sum);
})
let rus = '';
if(name=='lek') rus = 'Лек.';
if(name=='lab') rus = 'Лаб.';
if(name=='pr') rus = 'ПР.';
if(name=='srp') rus = 'СРП';
if(name=='krat') rus = 'КРАт.';
if(name=='kontrol') rus = 'Контроль';
if(name=='sr') rus = 'СР';
if(name=='sz') rus = 'СЗ';
if (sum>znach){
window.ToastShow1("Ошибка часов!","В текущей позиции '"+rus+"' для семестра "+sem+"<br>не может быть больше "+znach+"<br>Сумма введенных часов равна <b>"+sum+"</b>",1);
return 0;
}else{
return 1;
}
}
//Изменение полей в таблице семестр, проверка на существование
$(document).on("change", ".table_5_tdinps", function() {
let fo = $(this).data('fo');
let sem = $(this).val();
if($("#tabl4s_"+fo+"_"+sem).length){}else{
window.ToastShow1("Ошибка семестра!","Семестра "+sem+" нет в таблице 4, введите существующий семестр!",1);
$(this).val("");
}
});
//Изменение полей в таблице
$(document).on("change", ".table_5_tdinp", function(){
let fo = $(this).data('fo');
let name = $(this).data('name');
let sem = $(this).closest('tr').find(".table_5_td_"+fo+"_sem").val();
let val = $(this).val();
let err = checkHours4(fo,name,sem,val);
//console.log(fo+':'+name+':'+sem+':'+val+'='+err);
if(err==0) $(this).val(0);
checkSave(fo);
});
//Добавление строки в таблицу
$(document).on("click", ".btn_add_tr", function(){
let fo = $(this).data('fo');
let tr = $('#table_5_orig_'+fo).val(); //получили оригинал
$('#table_5_'+fo).append(tr); //добавили
return false;
});
//Удаление строки из таблицы
$(document).on("click", ".table_5_del_tr", function(){
let fo = $(this).closest(".table_5_tr").data("fo");
$(this).closest(".table_5_tr").remove();
checkSave(fo);
$(".tooltip").hide();
return false;
});
//Копирование данных в таблицы
$(document).on("click", ".btncopy_table", function() {
let razdel = "";
let fo = "";
let tr = "";
$(".td5och_razdel").each(function( index ) {
razdel = $(this).val();
if(razdel!=""){
fo = "zao";
if($("#table_5_orig_"+fo).length) {
tr = $('#table_5_origc_' + fo).val(); //получили оригинал
tr = tr.replace("%RAZDEL%", razdel);
$('#table_5_' + fo).append(tr); //добавили
}
fo = "ochzao";
if($("#table_5_orig_"+fo).length) {
tr = $('#table_5_origc_' + fo).val(); //получили оригинал
tr = tr.replace("%RAZDEL%", razdel);
$('#table_5_' + fo).append(tr); //добавили
}
}
});
return false;
});
})</script>{/literal}
{function razdel_5}
<div>
{assign var=fo value=''}
{if $title=='Очная'}{assign var=fo value='och'}{/if}
{if $title=='Заочная'}{assign var=fo value='zao'}{/if}
{if $title=='Очно-заочная'}{assign var=fo value='ochzao'}{/if}
<p>{if $fo=='och'}5.1{/if}{if $fo=='zao'}5.2{/if}{if $fo=='ochzao'}5.3{/if} Структура практики для {if $fo=='och'}очной{/if}{if $fo=='zao'}заочной{/if}{if $fo=='ochzao'}очно-заочной{/if} формы обучения.</p>
<textarea id="table_5_orig_{$fo}" style="display: none;">{razdel_5_tr fo=$fo}</textarea>
<textarea id="table_5_origc_{$fo}" style="display: none;">{razdel_5_tr fo=$fo copy=1}</textarea>
<table class="table table-bordered table-sm">
<thead>
<tr>
<th rowspan="2"></th>
<th rowspan="2">Сем</th>
<th rowspan="2"><div>Раздел практики</div></th>
{if $fo!='zao'}<th rowspan="2" class="rotate" style="height:120px;width: 60px;"><div>Неделя семестра</div></th>{/if}
<th colspan="8" class="text-center">Виды учебной работы, включая самостоятельную работу и трудоемкость (в часах)</th>
{if $fo!='zao'}<th rowspan="2" class="text-center"><div data-bs-toggle="tooltip" data-bs-placement="bottom" title="текущего (по неделям семестра), промежуточной аттестации (по семестрам)">Формы текущего/промежуточной контроля успеваемости</div></th>{/if}
</tr>
<tr>
<th class="rotate" style="height:90px;"><div>Лек</div></th>
<th class="rotate" style="height:90px;"><div>Лаб</div></th>
<th class="rotate" style="height:90px;"><div>ПР</div></th>
<th class="rotate" style="height:90px;"><div>СРП</div></th>
<th class="rotate" style="height:90px;"><div>КРАт</div></th>
<th class="rotate" style="height:90px;"><div>Контроль</div></th>
<th class="rotate" style="height:90px;"><div>СР</div></th>
<th class="rotate" style="height:90px;"><div>СЗ</div></th>
</tr>
<tr>
<th style="width: 20px;">
<a href="#" class="btn btn-sm btn-warning btn_add_tr" data-fo="{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Добавление строки"><i class="bi bi-plus-square"></i></a>
</th>
<th style="width: 20px;">1</th>
<th class="col-2 text-center">2</th>
{if $fo!='zao'}
<th class="col-1 text-center">3</th>
<th class="col-1 text-center">4</th>
<th class="col-1 text-center">5</th>
<th class="col-1 text-center">6</th>
<th class="col-1 text-center">7</th>
<th class="col-1 text-center">8</th>
<th class="col-1 text-center">9</th>
<th class="col-1 text-center">10</th>
<th class="col-1 text-center">11</th>
<th class="col-1 text-center">12</th>
{else}
<th class="col-1 text-center">3</th>
<th class="col-1 text-center">4</th>
<th class="col-1 text-center">5</th>
<th class="col-1 text-center">6</th>
<th class="col-1 text-center">7</th>
<th class="col-1 text-center">8</th>
<th class="col-1 text-center">9</th>
<th class="col-1 text-center">10</th>
{/if}
</tr>
</thead>
<tbody id="table_5_{$fo}">
{if isset($save)&&count($save)&&count($save.razdel5)&&isset($save.razdel5[$fo])}
{foreach from=$save.razdel5[$fo] item=ss}
{razdel_5_tr fo=$fo data=$ss}
{/foreach}
{/if}
{razdel_5_tr fo=$fo del=0}
</tbody>
<tfoot>
{assign var=sum_lek value=0}
{assign var=sum_lab value=0}
{assign var=sum_pr value=0}
{assign var=sum_srp value=0}
{assign var=sum_krat value=0}
{assign var=sum_kontrol value=0}
{assign var=sum_sr value=0}
{assign var=sum_sz value=0}
{foreach from=$DISCIPS.uchebplan.json item=Kurss key=kurs}
{foreach from=$Kurss item=Sems key=sem}
{if isset($Sems.lekcii)}{assign var=sum_lek value=$sum_lek+$Sems.lekcii}{/if}
{if isset($Sems.labs)}{assign var=sum_lab value=$sum_lab+$Sems.labs}{/if}
{if isset($Sems.pr)}{assign var=sum_pr value=$sum_pr+$Sems.pr}{/if}
{if isset($Sems.srp)}{assign var=sum_srp value=$sum_srp+$Sems.srp}{/if}
{if isset($Sems.krat)}{assign var=sum_krat value=$sum_krat+$Sems.krat}{/if}
{if isset($Sems.kontrol)}{assign var=sum_kontrol value=$sum_kontrol+$Sems.kontrol}{/if}
{if isset($Sems.sr)}{assign var=sum_sr value=$sum_sr+$Sems.sr}{/if}
{if isset($Sems.sz)}{assign var=sum_sz value=$sum_sz+$Sems.sz}{/if}
{/foreach}
{/foreach}
<tr>
<td>
<a href="#" class="btn btn-sm btn-danger table_5_td_{$fo}_btnsave btnsave_table" data-tds="table_5_td_{$fo}" data-form="table_5_{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="сохранение таблицы" style="display: none;"><i class="bi bi-save"></i></a>
</td>
<td>{if $fo=="och"}
<a href="#" class="btn btn-sm btn-info table_5_td_{$fo}_btncopy btncopy_table" data-tds="table_5_td_{$fo}" data-form="table_5_{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Копирование столбца 2 в таблицы ниже (ЗФО,ОЗФО)" ><i class="bi bi-files"></i></a>
{/if}
</td>
<td>ИТОГО:</td>
{if $fo!='zao'}<td></td>{/if}
<td class="table_5itogo_{$fo}_lek">{if $sum_lek!=0}{$sum_lek}{/if}</td>
<td class="table_5itogo_{$fo}_lab">{if $sum_lab!=0}{$sum_lab}{/if}</td>
<td class="table_5itogo_{$fo}_pr">{if $sum_pr!=0}{$sum_pr}{/if}</td>
<td class="table_5itogo_{$fo}_srp">{if $sum_srp!=0}{$sum_srp}{/if}</td>
<td class="table_5itogo_{$fo}_krat">{if $sum_krat!=0}{$sum_krat}{/if}</td>
<td class="table_5itogo_{$fo}_kontrol">{if $sum_kontrol!=0}{$sum_kontrol}{/if}</td>
<td class="table_5itogo_{$fo}_sr">{if $sum_sr!=0}{$sum_sr}{/if}</td>
<td class="table_5itogo_{$fo}_sz">{if $sum_sz!=0}{$sum_sz}{/if}</td>
{if $fo!='zao'}<td></td>{/if}
</tr>
</tfoot>
</table>
{*<pre>{print_r($DISCIPS.uchebplan)}</pre>*}
{*<pre>{print_r($save)}</pre>*}
</div>
{/function}
<div class="col-md-12">
<h3>5. Структура и содержание практики</h3>
{if isset($DISCIPS['Очная'])}{razdel_5 DISCIPS=$DISCIPS['Очная'] title='Очная'}{else}5.1 Очная форма обучения не реализуется{/if}
{if isset($DISCIPS['Заочная'])}{razdel_5 DISCIPS=$DISCIPS['Заочная'] title='Заочная'}{else}5.2 Заочная форма обучения не реализуется{/if}
{if isset($DISCIPS['Очно-заочная'])}{razdel_5 DISCIPS=$DISCIPS['Очно-заочная'] title='Очно-заочная'}{else}5.3 Очно-заочная форма обучения не реализуется{/if}
</div>