2020-10-12 14:39:23 +09:00
|
|
|
@model NP.Model.VMCRoom
|
|
|
|
|
@{
|
|
|
|
|
|
|
|
|
|
}
|
2021-08-23 15:10:15 +09:00
|
|
|
@*<div class="lrnSch">
|
2020-10-12 14:39:23 +09:00
|
|
|
<a href="#" onclick="showatt()">출결이력조회</a>
|
2021-08-23 15:10:15 +09:00
|
|
|
</div>*@
|
2021-09-10 14:02:05 +09:00
|
|
|
<div class="lctcScore" style="text-align:center; background:#ffdfdf;">
|
2021-11-03 15:19:08 +09:00
|
|
|
<span>현재 오늘 학습 가능한 10차시 중 <span style="color:red;">@(Model.intval2 - Model.intval)</span>차시가 학습가능 합니다.</span><br />
|
2021-09-10 14:02:05 +09:00
|
|
|
<span>※ 관련 법령에 의해 일일 최대 학습시간은 학습중인 모든 과정에 대하여 10시간(10차시)입니다.</span>
|
|
|
|
|
</div>
|
|
|
|
|
@*<h3>오늘의 학습회차(@Model.intval/@Model.intval2)</h3>*@
|
2021-09-03 16:15:35 +09:00
|
|
|
<br/>
|
2020-10-12 14:39:23 +09:00
|
|
|
<div class="lctcWeek lrnList">
|
2020-12-03 09:00:31 +09:00
|
|
|
<input type="hidden" id="mobile" name="mobile" value="@(ViewBag.Mobile)" />
|
2020-10-12 14:39:23 +09:00
|
|
|
<table>
|
|
|
|
|
<tbody>
|
|
|
|
|
@foreach (var d in Model.LectInnings)
|
|
|
|
|
{
|
2021-07-01 10:48:25 +09:00
|
|
|
<tr>
|
2021-07-01 09:36:31 +09:00
|
|
|
<th style="display:none;"><em style="background:url(@(d.isonline == 0 ? "/img/lecture/week_thumb02.jpg" : (string.IsNullOrEmpty(d.tasteurl)?"/img/lecture/week_thumb01.jpg":(Model.Files + d.tasteurl))))no-repeat center center"></em></th>
|
2020-10-12 14:39:23 +09:00
|
|
|
<td>
|
|
|
|
|
<h5>[@(d.iseq)회] @d.ititle</h5>
|
2021-07-01 10:48:25 +09:00
|
|
|
@if (d.cshape == 2 && d.isonline == 0)
|
|
|
|
|
{
|
|
|
|
|
<dl></dl>
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
<dl>
|
2021-08-23 15:10:15 +09:00
|
|
|
<dt>@(d.edate < DateTime.Now ? "학습기간종료" : d.isonline == 0 && d.istatus == 2 ? "출석완료" : d.isonline == 0 && d.idate < DateTime.Now ? "결석" : d.isonline == 0 ? "출석전" : d.stime == null ? "학습전(0%)" : d.istatus == 2 ? "학습완료" : string.Format("학습중({0}%)", d.sttime > 0 ? (d.totstudy * 100 / (d.sttime * 60)) : 0))</dt>
|
2021-12-07 11:24:41 +09:00
|
|
|
@*<dt style="color:#888888"><span style="color:red;">@(d.isonline == 0 ? (d.cshape != 2 ? "강의시작일" : "집체교육") : "교육기간")</span> : @(d.isonline == 0 ? (d.cshape != 2 ? string.Format("{0} {1}:{2}", d.idate.ToString("MM/dd"), d.ist.Substring(0, 2), d.ist.Substring(2, 2)) : d.eend.ToString("MM/dd")) : d.cshape != 1 ? (d.cdt.ToString("MM/dd")+" ~ "+d.estart.ToString("MM/dd")) : (d.sdate.ToString("MM/dd") + " ~ " + d.edate.ToString("MM/dd")))</dt>*@
|
|
|
|
|
<dt style="color:#888888"><span style="color:red;">@(d.isonline == 0 ? (d.cshape != 2 ? "강의시작일" : "집체교육") : "교육기간")</span> : @(d.isonline == 0 ? (d.cshape != 2 ? string.Format("{0} {1}:{2}", d.idate.ToString("MM/dd"), d.ist.Substring(0, 2), d.ist.Substring(2, 2)) : d.eend.ToString("MM/dd")) : (d.sdate.ToString("MM/dd") + " ~ " + d.edate.ToString("MM/dd")))</dt>
|
2021-08-23 15:10:15 +09:00
|
|
|
@if(d.cshape != 1 && d.isonline == 1)
|
|
|
|
|
{
|
|
|
|
|
<dd><span>복습기간</span> : @(d.edate.AddYears(1).ToString("yy-MM-dd"))</dd>
|
|
|
|
|
}
|
2021-07-01 10:48:25 +09:00
|
|
|
@if (d.isonline == 0)
|
2021-01-27 17:23:51 +09:00
|
|
|
{
|
2021-07-01 10:48:25 +09:00
|
|
|
if (d.cshape != 2)
|
|
|
|
|
{
|
2021-08-23 15:10:15 +09:00
|
|
|
<dd><span style="color:#222">강의실</span> : @(d.icontent ?? "-")</dd>
|
2021-07-01 10:48:25 +09:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2021-08-23 15:10:15 +09:00
|
|
|
<dd><span style="color:#222">장소</span> : @(d.cname ?? "-")</dd>
|
2021-07-01 10:48:25 +09:00
|
|
|
}
|
2021-01-27 17:23:51 +09:00
|
|
|
}
|
2021-07-01 10:48:25 +09:00
|
|
|
</dl>
|
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<ul>
|
|
|
|
|
<li class="lctc1">
|
|
|
|
|
@if (d.fileno > 0)
|
|
|
|
|
{
|
|
|
|
|
<a href="/focommon/downfile?fno=@d.fileno" class="lctcBook">교안보기</a>
|
|
|
|
|
}
|
|
|
|
|
@if (d.fileno < 1 && !string.IsNullOrEmpty(d.tfurl))
|
|
|
|
|
{
|
|
|
|
|
<a href="@d.tfurl" target="_blank" class="lctcBook">교안보기</a>
|
|
|
|
|
}
|
|
|
|
|
</li>
|
2020-12-24 08:21:34 +09:00
|
|
|
<li class="lctc2">
|
|
|
|
|
@if (d.isonline == 1)
|
|
|
|
|
{
|
2021-01-26 10:17:53 +09:00
|
|
|
//학습기간 종료후에도 시청은 가능하고, 출석인정은 되지않도록 변경 2021-01-25
|
2021-07-13 15:18:18 +09:00
|
|
|
<a href="#" onclick="playerOpen(@d.cmino, @(d.sdate < DateTime.Now && d.edate.AddYears(1) > DateTime.Now ? 1 : 0), @(d.isseq == 1 && d.iseq != 1 && d.preistatus < 2 ? 0 : 1), @(d.istatus != 2 && Model.intval >= d.daylectinninglimit ? 0 : 1), @(d.daylectinninglimit));" class="lctcStdy">학습하기</a>
|
2020-12-24 08:21:34 +09:00
|
|
|
}
|
|
|
|
|
</li>
|
2020-10-12 14:39:23 +09:00
|
|
|
</ul>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lctPop lctPopFull" id="pop1" style="display: none;">
|
|
|
|
|
<div>
|
|
|
|
|
<div>
|
|
|
|
|
<div class="lctPopWrap wdth1140">
|
|
|
|
|
<div class="lctPopTitle">
|
|
|
|
|
<h5>개인별 출결이력조회</h5>
|
|
|
|
|
<a href="#" onclick="lctPopClose();"></a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lctPopScroll">
|
|
|
|
|
<div class="lctPopCont">
|
|
|
|
|
|
|
|
|
|
<ul class="lctpTab col2">
|
|
|
|
|
<li class="current"><a href="javascript:lctpTab('01');">출결이력</a></li>
|
|
|
|
|
<li><a href="javascript:lctpTab('02');">활동이력</a></li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<div class="lctpCont" id="lctpCont01">
|
|
|
|
|
<table class="atdTable">
|
|
|
|
|
<colgroup>
|
|
|
|
|
<col width="60px;" />
|
|
|
|
|
<col width="60px;" />
|
|
|
|
|
<col width="200px;" />
|
|
|
|
|
<col width="100px;" />
|
|
|
|
|
<col width="130px;" />
|
|
|
|
|
<col width="*" />
|
|
|
|
|
<col width="*" />
|
|
|
|
|
<col width="90px;" />
|
|
|
|
|
</colgroup>
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>회차</th>
|
|
|
|
|
<th>방식</th>
|
|
|
|
|
<th>강의주제</th>
|
|
|
|
|
<th>인정시간</th>
|
|
|
|
|
<th>학습시간</th>
|
|
|
|
|
<th>학습시작일(IP)</th>
|
|
|
|
|
<th>학습종료일(IP)</th>
|
|
|
|
|
<th>상태</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody id="tbody1"></tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="lctpCont" id="lctpCont02">
|
|
|
|
|
<div class="atdDate">
|
|
|
|
|
<input type="text" class="datepicker" placeholder="yyyy-MM-dd" value="@DateTime.Now.ToString("yyyy-MM-01")" id="d1" readonly />
|
|
|
|
|
<span>~</span>
|
|
|
|
|
<input type="text" class="datepicker" placeholder="yyyy-MM-dd" value="@DateTime.Now.ToString("yyyy-MM-dd")" id="d2" readonly />
|
|
|
|
|
<a href="#" onclick="pagelog()">검색</a>
|
|
|
|
|
</div>
|
|
|
|
|
<table class="atdTable">
|
|
|
|
|
<colgroup>
|
|
|
|
|
<col width="200px;" />
|
|
|
|
|
<col width="160px;" />
|
|
|
|
|
<col width="*" />
|
|
|
|
|
</colgroup>
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>접속시간</th>
|
|
|
|
|
<th>접속IP</th>
|
|
|
|
|
<th>페이지</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody id="tbody2"></tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div><!-- clsPopCont -->
|
|
|
|
|
</div>
|
|
|
|
|
</div><!-- clsPopWrap -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2020-12-03 09:00:31 +09:00
|
|
|
@Html.Partial("./Partial/MobileChk", null, new ViewDataDictionary { { "bindmethod", "cbchkmobile" } })
|
2021-06-08 18:30:02 +09:00
|
|
|
@Html.Partial("./Partial/OkCert3", null, new ViewDataDictionary { })
|
2020-10-12 14:39:23 +09:00
|
|
|
@section scriptsHeader{
|
|
|
|
|
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
2020-12-03 09:00:31 +09:00
|
|
|
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
|
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
@section scripts{
|
|
|
|
|
<script>
|
2020-12-03 09:00:31 +09:00
|
|
|
var _cmino = 0;
|
2021-06-08 18:30:02 +09:00
|
|
|
var _authplatform = 0;
|
2020-10-12 14:39:23 +09:00
|
|
|
$(document).ready(function () {
|
|
|
|
|
$("body").on("click", ".atdOpen", function () {
|
|
|
|
|
var atdNum = $(this).attr('atdOpen');
|
|
|
|
|
if ($(this).is('.on')) {
|
|
|
|
|
$('.atdOpen').removeClass('on');
|
|
|
|
|
$('.atdDown').css('display', 'none');
|
|
|
|
|
} else {
|
|
|
|
|
$('.atdOpen').removeClass('on');
|
|
|
|
|
$('.atdDown').css('display', 'none');
|
|
|
|
|
$(this).addClass('on');
|
|
|
|
|
$('.atdDown' + atdNum).css('display', 'table-row');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
$('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' });
|
|
|
|
|
});
|
2021-07-13 15:18:18 +09:00
|
|
|
function playerOpen(cmino, timeflag, preflag, notoverflag, daylectinninglimit) {
|
2020-10-12 14:39:23 +09:00
|
|
|
if (timeflag < 1) {
|
|
|
|
|
msg("학습기간이 아닙니다.");
|
|
|
|
|
} else if (preflag < 1) {
|
|
|
|
|
msg("이전 회차 학습을 완료한 이후 학습이 가능합니다.");
|
|
|
|
|
} else if (notoverflag < 1) {
|
2021-11-03 15:19:08 +09:00
|
|
|
msg("관련 법령에 의해 일일 최대 학습가능한 시간은 10시간(10차시)입니다.");
|
2020-10-12 14:39:23 +09:00
|
|
|
} else {
|
2020-12-03 09:00:31 +09:00
|
|
|
_cmino = cmino;
|
|
|
|
|
chkcontent();
|
|
|
|
|
//viewcontents(cmino, false, @Model.croomlectno);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function chkcontent() {
|
2021-06-08 18:30:02 +09:00
|
|
|
capp("/fcommon/attcertcheckforlectinning", {lectno : @Model.croomlectno, cmino : _cmino}, "cbchkcontent");
|
2020-12-03 09:00:31 +09:00
|
|
|
}
|
|
|
|
|
function cbchkcontent() {
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
if (capResult.obj == 1) {
|
2021-08-23 15:10:15 +09:00
|
|
|
msg("학습을 시작합니다.", null, null, null, "viewcontents("+_cmino+",false,@(Model.croomlectno))");
|
|
|
|
|
return false;
|
|
|
|
|
//viewcontents(_cmino, false,@Model.croomlectno);
|
2020-12-03 09:00:31 +09:00
|
|
|
} else if (capResult.obj == 2) {
|
2021-08-23 15:10:15 +09:00
|
|
|
msg("학습을 시작합니다.", null, null, null, "viewcontents("+_cmino+",false,@(Model.croomlectno))");
|
|
|
|
|
return false;
|
|
|
|
|
//viewcontents(_cmino, false,@Model.croomlectno);
|
2020-12-03 09:00:31 +09:00
|
|
|
} else {
|
2021-06-08 18:30:02 +09:00
|
|
|
_authplatform = capResult.msg;
|
2021-06-09 10:12:11 +09:00
|
|
|
if(_authplatform == "0"){
|
|
|
|
|
msg("학습인증수단이 없는 회원입니다. 정보수정을 통해 학습인증수단을 입력해주세요.");
|
|
|
|
|
} else if (_authplatform == "1") {
|
2021-06-15 15:02:43 +09:00
|
|
|
confirmtoggle(true, "학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 회차 당 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?", "chkipin()");
|
2021-06-09 10:12:11 +09:00
|
|
|
} else if (_authplatform == "2") {
|
2021-06-15 15:02:43 +09:00
|
|
|
confirmtoggle(true, "학습을 처음 시작할 때 본인인증이 필요합니다. 본인인증은 회차 당 1회에 한 해 진행됩니다.<br/> 본인인증을 하시겠습니까?", "chkmobile()");
|
2021-08-23 15:10:15 +09:00
|
|
|
}
|
2020-12-03 09:00:31 +09:00
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
msg("휴대폰 번호가 공란입니다.<br/>정보수정을 통해 번호를 입력해주세요.");
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-06-08 18:30:02 +09:00
|
|
|
function chkipin() {
|
|
|
|
|
certok3reqview('IPIN', 'LectinningAuth', @Model.croomlectno, _cmino);
|
|
|
|
|
bglayer(false);
|
|
|
|
|
}
|
2020-12-03 09:00:31 +09:00
|
|
|
function chkmobile() {
|
|
|
|
|
setv("mobile", val("mobile").replace(/ /, '').replace(/ /, ''));
|
|
|
|
|
setv("mobile", formatmobile(val("mobile")));
|
|
|
|
|
if (!ismobilenumber(val("mobile"))) {
|
|
|
|
|
focus("mobile");
|
|
|
|
|
msg("핸드폰번호를 확인해주세요.");
|
|
|
|
|
} else {
|
|
|
|
|
capp("/focommon/sendlakey", { lectno: @Model.croomlectno, mobile: $("#mobile").val()}, "sendkey");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function cbchkmobile() {
|
|
|
|
|
if (capResult.code == 1000) {
|
|
|
|
|
//msg("인증이 성공하였습니다.\n 확인 버튼을 클릭하시면 학습이 가능합니다.");
|
|
|
|
|
$("#mobile").css("background", "#ddd");
|
|
|
|
|
mobilechkclose();
|
2021-08-23 15:10:15 +09:00
|
|
|
msg("학습을 시작합니다.", null, null, null, "viewcontents("+_cmino+",false,@(Model.croomlectno))");
|
|
|
|
|
return false;
|
|
|
|
|
//viewcontents(_cmino, false,@Model.croomlectno);
|
2020-12-03 09:00:31 +09:00
|
|
|
} else if (capResult.code == 1) {
|
|
|
|
|
msg("유효시간이 만료되었습니다.\n 창을 닫고 인증을 다시 진행해주세요.");
|
|
|
|
|
} else {
|
|
|
|
|
msg("인증이 실패하였습니다.\n 다시 확인해주세요.");
|
2020-10-12 14:39:23 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function lctpTab(num) {
|
|
|
|
|
$('.lctpCont').hide();
|
|
|
|
|
$('.lctpTab li').removeClass('current');
|
|
|
|
|
$('.lctpTab li:nth-child(' + num + ')').addClass('current');
|
|
|
|
|
if (num == '02') {
|
|
|
|
|
if ($("#tbody2 tr").length < 1) {
|
|
|
|
|
pagelog();
|
|
|
|
|
} else {
|
|
|
|
|
$("#lctpCont" + num).fadeIn();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$('#lctpCont' + num).fadeIn();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function pagelog() {
|
|
|
|
|
capp("/fcommon/pagelogs", { d1: val("d1"), d2: val("d2") }, "cbpagelog");
|
|
|
|
|
}
|
|
|
|
|
function cbpagelog() {
|
|
|
|
|
$("#tbody2").html("");
|
|
|
|
|
$.each(capResult.obj, function (i, d) {
|
|
|
|
|
$("#tbody2").append("<tr><td>" + d.cdtymdhm+"</td><td>" + d.uip + "</td><td class=\"left\">" + d.loginfo + "</td></tr>");
|
|
|
|
|
});
|
|
|
|
|
if (capResult.obj.length < 1) {
|
|
|
|
|
$("#tbody2").append("<tr><td colspan=\"3\">-활동이력이 없습니다.</td></tr>");
|
|
|
|
|
}
|
|
|
|
|
$("#lctpCont02").fadeIn();
|
|
|
|
|
}
|
|
|
|
|
function lctPopClose() {
|
|
|
|
|
$('#pop1').hide();
|
|
|
|
|
$('html, body').removeClass('lock');
|
|
|
|
|
}
|
|
|
|
|
function showatt() {
|
|
|
|
|
$("#tbody1").html("");
|
|
|
|
|
capp("/fcommon/getattend", { lectno: @Model.croomlectno}, "cbgetatt");
|
|
|
|
|
}
|
|
|
|
|
function cbgetatt() {
|
|
|
|
|
var h = capResult.obj.h;
|
|
|
|
|
if (h.length > 0) {
|
|
|
|
|
$.each(h, function (i, hd) {
|
|
|
|
|
if (hd.isonline == 1) {
|
|
|
|
|
$("#tbody1").append("" +
|
|
|
|
|
"<tr>"
|
|
|
|
|
+ "<td>" + hd.iseq + "</td>"
|
|
|
|
|
+ "<td>" + hd.isonlinename2 + "</td>"
|
|
|
|
|
+ "<td>" + hd.ititle + "</td>"
|
|
|
|
|
+ "<td>" + hd.atimename + "</td>"
|
|
|
|
|
+ (getdb(hd.istatus)=="0" || getdb(hd.istatus) != "" ? ("<td><span class=\"atdOpen\" atdOpen=\"" + i + "\">" + hd.litotstudymin + "분(" + hd.ccount + ")</span></td>"
|
|
|
|
|
+ "<td>" + hd.listimeymdhms + " <span class=\"atdIp\">(" + hd.liispcsname + ":" + hd.lisips + ")</span></td>"
|
|
|
|
|
+ "<td>" + hd.lietimeymdhms + " <span class=\"atdIp\">(" + hd.liispcename + ":" + hd.lieips + ")</span></td>") : "<td>-</td><td>-</td><td>-</td>")
|
|
|
|
|
+"<td>" + hd.istatusname2 + "</td></tr>");
|
|
|
|
|
if (getdb(hd.istatus) != "" || getdb(hd.istatus)=="0") {
|
|
|
|
|
$.each(capResult.obj.d, function (i2, d) {
|
|
|
|
|
if (d.iseq == hd.iseq) {
|
|
|
|
|
$("#tbody1").append("<tr class=\"atdDown atdDown" + i + "\">"
|
|
|
|
|
+ "<td>-</td>"
|
|
|
|
|
+ "<td>-</td>"
|
|
|
|
|
+ "<td>-</td>"
|
|
|
|
|
+ "<td>-</td > "
|
|
|
|
|
+ "<td>" + d.totstudymin2 + "(" + d.pseqname + ")</td>"
|
|
|
|
|
+ "<td>" + d.stimeymdhms + " <span class=\"atdIp\">(" + d.ispcsname + ":" + d.sip + ")</span></td>"
|
|
|
|
|
+ "<td>" + d.etimeymdhms + " <span class=\"atdIp\">(" + d.eip + ")</span></td>"
|
|
|
|
|
+"<td>-</td ></tr > ");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$("#tbody1").append("" +
|
|
|
|
|
"<tr><td>" + hd.iseq + "</td><td>" + hd.isonlinename2 + "</td><td>" + hd.ititle + "</td><td>-</td>" +
|
|
|
|
|
"<td>-</td><td>-</td><td>-</td><td>" + hd.istatusname + "</td></tr>");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
$('html, body').addClass('lock'); lctpTab('01'); $('#pop1').show();
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
}
|