EIOS/rabprog/tpl/mod_rpd_razdel5_8.html

242 lines
13 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_58_tr fo=''}
<tr class="table_58_tr" data-fo="{$fo}">
<td>
<a href="#" class="btn btn-secondary btn-sm table_58_del_tr" data-fo="{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Удаление строки из таблицы, не забывайте сохранять!"><i class="bi bi-trash"></i></a>
</td>
<td><input type="text" class="form-control form-control-sm table_58_td_{$fo} table_58_tdinps table_58_td_{$fo}_sem" 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 table_58_td_{$fo} inputModal" data-fo="{$fo}" data-name="razdtemRPsami" value="{if isset($data.razdtemRPsami)}{$data.razdtemRPsami|escape}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_58_td_{$fo} inputModal" data-fo="{$fo}" data-name="peredomzad" value="{if isset($data.peredomzad)}{$data.peredomzad|escape}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_58_td_{$fo} inputModal" data-fo="{$fo}" data-name="srokivyp" value="{if isset($data.srokivyp)}{$data.srokivyp|escape}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_58_td_{$fo} table_58_tdinp" data-fo="{$fo}" data-name="ofo" value="{if isset($data.ofo)}{$data.ofo}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_58_td_{$fo} table_58_tdinp" data-fo="{$fo}" data-name="zfo" value="{if isset($data.zfo)}{$data.zfo}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_58_td_{$fo} table_58_tdinp" data-fo="{$fo}" data-name="ozfo" value="{if isset($data.ozfo)}{$data.ozfo}{/if}"></td>
</tr>
{/function}
{literal}<script>$(document).ready(function(){
function checkHours4_58(fo0,fo1,sem,val){
let znach0 = 0; if($("#tabl4vz_"+fo1+"_"+sem+"_sr").length&&$("#tabl4vz_"+fo1+"_"+sem+"_sr").text()!="")
znach0 = parseFloat($("#tabl4vz_"+fo1+"_"+sem+"_sr").text());
let znach1 = 0; if($("#tabl4vz_"+fo1+"_"+sem+"_srp").length&&$("#tabl4vz_"+fo1+"_"+sem+"_srp").text()!="")
znach1 = parseFloat($("#tabl4vz_"+fo1+"_"+sem+"_srp").text());
let znach = znach0+znach1;
val = parseFloat(val);
//console.log("fo0="+fo0+"; fo1="+fo1+"; sem="+sem+"; val="+sem+"; znach="+znach+"; sr="+znach0+"; srp="+znach1);
let sum1 = 0;
let semc=0;
let tr = null;
let valc = 0;
$(".table_58_tr[data-fo=1]").each(function(){
//$(".table_58_tr[data-name="+fo0+"]").each(function(){
tr = $(this);
semc = parseFloat(tr.find("[data-name=sem]").val()); //текущий семестр
if(semc == parseFloat(sem)){
valc = 0;
if (tr.find("[data-name="+fo0+"]").val()!="") valc = parseFloat(tr.find("[data-name="+fo0+"]").val());
sum1 += valc;
//console.log("semc="+semc+"; valc="+valc+"; sum1="+sum1+";");
}
})
if (sum1>znach){
window.ToastShow1("Ошибка часов!","В текущей позиции для семестра "+sem+"<br>не может быть больше "+znach+"<br>Сумма введенных часов равна <b>"+sum1+"</b>",1);
return 0;
}else{
return 1;
}
}
//Изменение полей в таблице семестр, проверка на существование
$(document).on("change", ".table_58_tdinps", function() {
let fo = $(this).data('fo'); if(fo=='1') fo='och';
let sem = $(this).val().split(',');
$ise=0;
if(Array.isArray(sem)){
sem.forEach(function(item, i, arr) {
if ($("#tabl4s_och_" + item).length) {
$ise = 1;
}
if ($("#tabl4s_zao_" + item).length) {
$ise = 1;
}
if ($("#tabl4s_ochzao_" + item).length) {
$ise = 1;
}
});
}else {
if ($("#tabl4s_och_" + sem).length) {
$ise = 1;
}
if ($("#tabl4s_zao_" + sem).length) {
$ise = 1;
}
if ($("#tabl4s_ochzao_" + sem).length) {
$ise = 1;
}
}
if($ise==0){
window.ToastShow1("Ошибка семестра!","Семестра "+sem+" нет в таблице 4, введите существующий семестр!",1);
$(this).val("");
}
});
//Удаление строк из таблицы
$(document).on("click", ".table_58_del_tr", function(){
let fo = $(this).data('fo');
$(this).closest( "tr" ).remove();
calc58(fo);
$(".tooltip").hide();
return false;
});
//Изменение полей в таблице
$(document).on("change", ".table_58_tdinp", function(){
let fo = $(this).data('fo');
let fo0 = $(this).data('name');
let fo1 = ''; if(fo0=='ofo') fo1 = 'och'; if(fo0=='zfo') fo1 = 'zao'; if(fo0=='ozfo') fo1 = 'ochzao';
let val = $(this).val();
let sem = $(this).closest('tr').find(".table_58_td_"+fo+"_sem").val().split(',');
let err = 0;
// console.log(fo0+"="+fo);
if(Array.isArray(sem)){
sem.forEach(function(item, i, arr) {
err = checkHours4_58(fo0, fo1, item, val);
});
}else {
let err = checkHours4_58(fo0, fo1, sem, val);
}
if(err==0) $(this).val(0);
calc58(fo);
});
function calc58(fo){
let name = '',check=1;
let ofo=0, zfo=0, ozfo=0, val=0;
$(".table_58_td_"+fo).each(function( index ) {
name = $(this).data('name');
if($(this).val()=='') val=0; else val = parseFloat($(this).val().replace(',','.'));
if(name=='ofo') ofo = ofo + val;
if(name=='zfo') zfo = zfo + val;
if(name=='ozfo') ozfo = ozfo + val;
});
let ofoI = 0; valI = $(".table_58itogo_"+fo+"_ofo").html().replace(',','.'); if(valI=='') ofoI = 0; else ofoI = parseFloat(valI);
let zfoI = 0; valI = $(".table_58itogo_"+fo+"_zfo").html().replace(',','.'); if(valI=='') zfoI = 0; else zfoI = parseFloat(valI);
let ozfoI = 0; valI = $(".table_58itogo_"+fo+"_ozfo").html().replace(',','.'); if(valI=='') ozfoI = 0; else ozfoI = parseFloat(valI);
ofo = parseFloat(ofo).toFixed(2);
zfo = parseFloat(zfo).toFixed(2);
ozfo = parseFloat(ozfo).toFixed(2);
ofoI = parseFloat(ofoI).toFixed(2);
zfoI = parseFloat(zfoI).toFixed(2);
ozfoI = parseFloat(ozfoI).toFixed(2);
console.log("ofo:"+ofo+"="+ofoI);
console.log("zfo:"+zfo+"="+zfoI);
console.log("ozfo:"+ozfo+"="+ozfoI);
if (ofo!=ofoI){ $(".table_58itogo_"+fo+"_ofo").css({'color':'#dc3545'}); check=0; }
else{ $(".table_58itogo_"+fo+"_ofo").css({'color':'#198754'}); }
if (zfo!=zfoI){ $(".table_58itogo_"+fo+"_zfo").css({'color':'#dc3545'}); check=0; }
else{ $(".table_58itogo_"+fo+"_zfo").css({'color':'#198754'}); }
if (ozfo!=ozfoI){ $(".table_58itogo_"+fo+"_ozfo").css({'color':'#dc3545'}); check=0; }
else{ $(".table_58itogo_"+fo+"_ozfo").css({'color':'#198754'}); }
if(check==1) $(".table_58_td_"+fo+"_btnsave").show(); else $(".table_58_td_"+fo+"_btnsave").hide();
}
//Добавление строки в таблицу
$(document).on("click", ".btn_add_table_58_tr", function(){
let fo = $(this).data('fo');
let tr = $('#table_58_orig_'+fo).val(); //получили оригинал
$('#table_58_'+fo).append(tr); //добавили
return false;
});
})</script>{/literal}
{function razdel_58}
<div>
{assign var=fo value='1'}
<textarea id="table_58_orig_{$fo}" style="display: none;">{razdel_58_tr fo=$fo}</textarea>
<table class="table table-bordered table-sm">
<thead>
<tr>
<th class="text-center" rowspan="2"></th>
<th class="text-center" rowspan="2" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Семестры можно указать через запятую! без пробелов!">Сем</th>
<th class="text-center" rowspan="2">Разделы и темы рабочей программы самостоятельного изучения</th>
<th class="text-center" rowspan="2">Перечень домашних заданий и других вопросов для самостоятельного изучения</th>
<th class="text-center" rowspan="2">Сроки выполнения</th>
<th class="text-center" colspan="3">Объем в часах</th>
</tr>
<tr>
<th class="text-center">ОФО</th>
<th class="text-center">ЗФО</th>
<th class="text-center">ОЗФО</th>
</tr>
<tr>
<th class="text-center" style="width: 20px;">
<a href="#" class="btn btn-sm btn-warning btn_add_table_58_tr" data-fo="{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Добавление строки"><i class="bi bi-plus-square"></i></a>
</th>
<th class="text-center" style="width: 20px;">1</th>
<th class="col-3 text-center">2</th>
<th class="col-3 text-center">3</th>
<th class="col-2 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>
</tr>
</thead>
<tbody id="table_58_{$fo}">
{if isset($save)&&count($save)&&count($save.razdel5_8)&&isset($save.razdel5_8[$fo])}
{foreach from=$save.razdel5_8[$fo] item=ss}
{razdel_58_tr fo=$fo data=$ss}
{/foreach}
{/if}
{razdel_58_tr fo=$fo}
</tbody>
<tfoot>
<tr>
<td>
<a href="#" class="btn btn-sm btn-danger table_58_td_{$fo}_btnsave btnsave_table" data-tds="table_58_td_{$fo}" data-form="table_58_{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="сохранение таблицы" style="display: none;"><i class="bi bi-save"></i></a>
</td>
<td></td>
<td class="fw-bolder">ИТОГО:</td>
<td></td>
<td></td>
<td class="table_58itogo_{$fo}_ofo fw-bolder">{if $sum_ofo!=0}{$sum_ofo}{/if}</td>
<td class="table_58itogo_{$fo}_zfo fw-bolder">{if $sum_zfo!=0}{$sum_zfo}{/if}</td>
<td class="table_58itogo_{$fo}_ozfo fw-bolder">{if $sum_ozfo!=0}{$sum_ozfo}{/if}</td>
</tr>
</tfoot>
</table>
</div>
{/function}
<div class="col-md-12">
<h4>5.8. Самостоятельная работа студентов</h4>
<p>Содержание и объем самостоятельной работы студентов</p>
{assign var=sum_ofo value=0}
{assign var=sum_zfo value=0}
{assign var=sum_ozfo value=0}
{foreach from=$DISCIPS item=discipsfo key=fo}
{assign var=summ value=0}
{foreach from=$discipsfo.uchebplan.json item=Kurss key=kurs}
{foreach from=$Kurss item=Sems key=sem}
{*if isset($Sems.lekcii)}{assign var=summ value=$summ+$Sems.lekcii}{/if}
{if isset($Sems.lab)}{assign var=summ value=$summ+$Sems.lab}{/if}
{if isset($Sems.pr)}{assign var=summ value=$summ+$Sems.pr}{/if*}
{if isset($Sems.srp)}{assign var=summ value=$summ+$Sems.srp}{/if}
{if isset($Sems.sr)}{assign var=summ value=$summ+$Sems.sr}{/if}
{*if isset($Sems.krat)}{assign var=summ value=$summ+$Sems.krat}{/if}
{if isset($Sems.kontrol)}{assign var=summ value=$summ+$Sems.kontrol}{/if*}
{/foreach}
{/foreach}
{if $fo=='Очная'}{assign var=sum_ofo value=$sum_ofo+$summ}{/if}
{if $fo=='Заочная'}{assign var=sum_zfo value=$sum_zfo+$summ}{/if}
{if $fo=='Очно-заочная'}{assign var=sum_ozfo value=$sum_ozfo+$summ}{/if}
{/foreach}
{if isset($DISCIPS['Очная'])}
{razdel_58 DISCIPS=$DISCIPS['Очная'] title='Очная' sum_ofo=$sum_ofo sum_zfo=$sum_zfo sum_ozfo=$sum_ozfo}
{else}
{if isset($DISCIPS['Заочная'])}
{razdel_58 DISCIPS=$DISCIPS['Заочная'] title='Заочная' sum_ofo=$sum_ofo sum_zfo=$sum_zfo sum_ozfo=$sum_ozfo}
{else}
{if isset($DISCIPS['Очно-заочная'])}{razdel_58 DISCIPS=$DISCIPS['Очно-заочная'] title='Очно-заочная' sum_ofo=$sum_ofo sum_zfo=$sum_zfo sum_ozfo=$sum_ozfo}{/if}
{/if}
{/if}
<a href="#" class="btn btn-sm btn-info copy_51" data-to="table_58" data-fo="1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Копирование строк из таблицы 5.1 только названия">Скопировать из 5.1</a>
</div>