311 lines
19 KiB
HTML
311 lines
19 KiB
HTML
{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>
|
||
|