EIOS/rabprog/tpl/mod_rpd_razdel5_8.html

242 lines
13 KiB
HTML
Raw Normal View History

2023-12-28 15:39:22 +03:00
{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>