수료관리 페이지 작업

This commit is contained in:
lch 2021-06-25 04:40:31 +00:00
parent 205e3689db
commit 8ae87d9b52
13 changed files with 6237 additions and 221 deletions

View File

@ -465,6 +465,7 @@
<Content Include="js\datepicker\bootstrap-datepicker.js" /> <Content Include="js\datepicker\bootstrap-datepicker.js" />
<Content Include="js\datepicker\datepicker.css" /> <Content Include="js\datepicker\datepicker.css" />
<Content Include="js\jquery.min.js" /> <Content Include="js\jquery.min.js" />
<Content Include="js\moment.js" />
<Content Include="js\underscore.js" /> <Content Include="js\underscore.js" />
<Content Include="js\underscore-min.js" /> <Content Include="js\underscore-min.js" />
<Content Include="js\site.js" /> <Content Include="js\site.js" />
@ -681,6 +682,8 @@
<Content Include="Views\data\learns7.cshtml" /> <Content Include="Views\data\learns7.cshtml" />
<Content Include="Views\Shared\Partial\CMScdBox.cshtml" /> <Content Include="Views\Shared\Partial\CMScdBox.cshtml" />
<Content Include="Views\croom\completions.cshtml" /> <Content Include="Views\croom\completions.cshtml" />
<Content Include="Views\Shared\Partial\AssignBox2.cshtml" />
<Content Include="Views\croom\documentspast.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />

View File

@ -1053,7 +1053,7 @@ namespace NP.BO.Controllers
"환급액","환급은행명","환급계좌" ,"환급계좌예금주","계산서이메일","교육연도","교육장"}, "환급액","환급은행명","환급계좌" ,"환급계좌예금주","계산서이메일","교육연도","교육장"},
new String[] { "pcgname", "cgname", "cshapename", "username", "userpnostr", "typemanName", "edukind", "typeeduName", "typegradeName", "typejobName", "cname", "completeno", "asname", new String[] { "pcgname", "cgname", "cshapename", "username", "userpnostr", "typemanName", "edukind", "typeeduName", "typegradeName", "typejobName", "cname", "completeno", "asname",
"companyaddr", "brno", "eino", "btype", "bkind", "ceoname", "sdateymd2","edateymd2","studytime","association","slevelName","uduty","mobile","mname","mphone", "companyaddr", "brno", "eino", "btype", "bkind", "ceoname", "sdateymd2","edateymd2","studytime","association","slevelName","uduty","mobile","mname","mphone",
"payamt","rbankamt","rbank","rbankaccnum","tbankuser","taxemail","tyear", "studyplaceName"}, "payamt","rbankamt","rbank","rbankaccnum","rbankuser","taxemail","tyear", "studyplaceName"},
vm.Completions, vm.Completions,
"수료관리", null, ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,"); "수료관리", null, ",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,");
} }

View File

@ -0,0 +1,135 @@
@model String
@{
var isone = Model.Split(';')[2] == "1";
}
<div id="assignbox" class="findbox" style="width: 600px;z-index:2001;">
<h4><i class="fa fa-bars"></i> @Model.Split(';')[1]<a href="#" class="btn btn-default btn-xs f-r" onclick="hideassignbox()">닫기</a></h4>
<br />
<input type="text" class="form-control search disp-init" placeholder="고객사명을 입력하세요." id="findboxassign" style="width: 250px" /><a href="#" class="btn btn-find btn-info btn-sm" onclick="findassign()">검색</a>
<br /><br />
<section class="panel panel-default" style="max-height: 300px; overflow: auto; min-height: 67px;">
<div class="table-responsive" id="excel1">
<table class="table table-striped b-t b-light" style="table-layout: fixed; white-space: nowrap;">
<thead>
<tr>
@Html.Raw(isone ? "" : "<th width=\"50\"><input type=\"checkbox\" onclick=\"javascript: checkall('excel1', this);\" /></th>")
<th>고객사명</th>
<th>사업자등록번호</th>
@Html.Raw(isone ? "<th>선택</th>" : "")
</tr>
</thead>
<tbody class="data" id="assignlistbox"></tbody>
</table>
</div>
</section>
<div style="text-align: right;">
<ul id="assignpaging"></ul>
</div>
<div style="text-align: right; @(isone ?"display:none;":"")"><a href="#" class="btn btn-primary btn-xs" onclick="selectassign()">선택</a></div>
<br /><br />
</div>
<style type="text/css">
ul#assignpaging li{float: left;}
ul#assignpaging li a{margin-left: 1px;}
</style>
<script>
var _assignpno = 1;
var _assignptc = 0;
var _assignlastpno = 1;
function selectassign() {
if ($("#assignlistbox tr td input.autocheck:checked").length < 1) {
msg2("고객사를 선택해주세요.");
}
else {
var v = "";
$.each($("#assignlistbox tr td input.autocheck:checked"), function (i, c) {
v += ";" + $(c).val();
});
$("#assignlistbox tr").remove();
hideassignbox();
eval("@(Model.Split(';')[0])" + "('" + v.substr(1) + "')");
}
}
function assignboxselectone(v){
hideassignbox();
@(Model.Split(';')[0])(capResult.obj[v]);
}
function assignboxviewregbox() {
if ($('#assignboxregbox:visible').length < 1) {
$('#assignboxregbox').show();
}
else {
$('#assignboxregbox').hide();
}
}
function findassignshow() {
$("#assignlistbox tr").remove();
$("#assignpaging").html("");
bglayer2();
$("#assignbox").slideDown("fast");
}
function findassign() {
$("#assignlistbox").html("");
//if (val("findboxassign") == "") {
// alert("이름을 입력해주세요.");
//}
capp("/acommon/assignfind2", { asname: val("findboxassign"), pno: _assignpno }, "cbfindassign", null, null, true, false);
}
function cbfindassign() {
if (capResult.code == 1000) {
$.each($(capResult.obj), function (i, r) {
$("#assignlistbox").append("<tr>" + ('@(isone?1:0)' == '1' ? "" : ("<td><input type=\"checkbox\" class=\"autocheck\" value=\"" + r.asno + ":" + r.asname.replace(/:/gi, '|').replace(/;/gi, '|') + "\" /></td>")) + "<td>" + r.asname + "</td><td>" + getdb(r.brnofmt).replace(/:/gi, '|').replace(/;/gi, '|') + "</td>" + ('@(isone?1:0)' == '1' ? "<td><a href=\"#\" class=\"btn btn-xxs btn-select\" onclick=\"assignboxselectone(" + i + ")\">선택</a></td>":"")+"</tr>");
});
$("#assignpaging").html("");
_assignptc = capResult.obj.length < 1 ? 0 : capResult.obj[0].pagetotalcount;
if (_assignptc > 10) {
if (_assignpno > 10) {
$("#assignpaging").append("<li><a data-pageno=\"-1\" class=\"pagea btn btn-xxs btn-default\"><<</a></li>");
}
if (_assignpno > 1) {
$("#assignpaging").append("<li><a data-pageno=\"-2\" class=\"pagea btn btn-xxs btn-default\"><</a></li>");
}
_assignlastpno = (getint(_assignptc / 10) + (_assignptc % 10 > 0 ? 1 : 0));
var pstart = getint((_assignpno - 1) / 10) * 10 + 1;
for (var i = pstart; i < pstart + 10; i++) {
$("#assignpaging").append("<li><a data-pageno=\"" + i + "\" class=\"pagea btn btn-xxs btn-default " + (_assignpno == i ? "active" : "") + " \">" + i + "</a></li>");
if (i == _assignlastpno) {
break;
}
}
if (_assignpno < _assignlastpno) {
$("#assignpaging").append("<li><a data-pageno=\"-3\" class=\"pagea btn btn-xxs btn-default\">></a></li>");
$("#assignpaging").append("<li><a data-pageno=\"-4\" class=\"pagea btn btn-xxs btn-default\">>></a></li>");
}
}
}
}
function hideassignbox() {
$('#assignbox').slideUp('fast'); $('#bglayer2').hide();
}
$(document).ready(function () {
$("#findboxassign").on("keyup", function () {
_assignpno = 1;
});
$("body").on("click", "#assignpaging a.btn.pagea", function () {
if (!$(this).hasClass("active")) {
if ($(this).attr("data-pageno") == "-1") {
_assignpno = 1;
}
else if ($(this).attr("data-pageno") == "-2") {
_assignpno -= 1;
}
else if ($(this).attr("data-pageno") == "-3") {
_assignpno += 1;
}
else if ($(this).attr("data-pageno") == "-4") {
_assignpno = _assignlastpno;
}
else {
_assignpno = getint($(this).attr("data-pageno"));
}
findassign();
}
});
});
</script>

View File

@ -22,7 +22,8 @@
var element_layer;// = document.getElementById('postlayer'); var element_layer;// = document.getElementById('postlayer');
function closeDaumPostcode() { function closeDaumPostcode() {
// iframe을 넣은 element를 안보이게 한다. // iframe을 넣은 element를 안보이게 한다.
element_layer.style.display = 'none'; element_layer.style.display = 'none';
document.getElementById('bglayer2').style.display = 'none';
} }
function getpost2(a) { function getpost2(a) {
@ -65,6 +66,7 @@
// iframe을 넣은 element를 안보이게 한다. // iframe을 넣은 element를 안보이게 한다.
// (autoClose:false 기능을 이용한다면, 아래 코드를 제거해야 화면에서 사라지지 않는다.) // (autoClose:false 기능을 이용한다면, 아래 코드를 제거해야 화면에서 사라지지 않는다.)
element_layer.style.display = 'none'; element_layer.style.display = 'none';
document.getElementById('bglayer2').style.display = 'none';
}, },
width: '100%', width: '100%',
height: '100%', height: '100%',

View File

@ -16,7 +16,7 @@
<div class="col-md-12"> <div class="col-md-12">
<select id="stringval" name="stringval" class="form-control"> <select id="stringval" name="stringval" class="form-control">
<option value="">-년도선택</option> <option value="">-년도선택</option>
@for (int i = 2021; i <= DateTime.Now.Year; i++) @for (int i = 2021; i <= DateTime.Now.Year; i++)
{ {
<option value="@i" @(Model.stringval == i.ToString() ? "selected" : "")>@(i)년</option> <option value="@i" @(Model.stringval == i.ToString() ? "selected" : "")>@(i)년</option>
} }
@ -54,7 +54,7 @@
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "style", "width: 100%" }, { "df", ":-교육장구분" } }) @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "studyplace"), new ViewDataDictionary { { "name", "stringval6" }, { "selected", Model.stringval6 }, { "style", "width: 100%" }, { "df", ":-교육장구분" } })
</div> </div>
</td> </td>
<th>직무분야</th> <th>직무분야</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@ -62,7 +62,7 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>학습기간</th> <th>학습기간</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@ -70,20 +70,20 @@
@Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval9) ? (DateTime?)null : Convert.ToDateTime(Model.stringval9), new ViewDataDictionary { { "name", "stringval9" } }) @Html.Partial("./Partial/Date", string.IsNullOrEmpty(Model.stringval9) ? (DateTime?)null : Convert.ToDateTime(Model.stringval9), new ViewDataDictionary { { "name", "stringval9" } })
</div> </div>
</td> </td>
<th>등급</th> <th>등급</th>
<td> <td>
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "stringval10" }, { "selected", Model.stringval10 }, { "style", "width: 100%" }, { "df", ":-등급" } }) @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "stringval10" }, { "selected", Model.stringval10 }, { "style", "width: 100%" }, { "df", ":-등급" } })
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>검색단어</th> <th>검색단어</th>
<td> <td>
<div class="col-md-4"> <div class="col-md-4">
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "username:이름;userpno:주민등록번호;completeno:수료번호;asname:업체명;brno:사업자등록번호" }, { "name", "searchtype" }, { "selected", Model.searchtype }, { "style", "width: 100%" }, { "df", ":-유형선택" } }) @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "username:이름;userpno:주민등록번호;completeno:수료번호;asname:업체명;brno:사업자등록번호" }, { "name", "searchtype" }, { "selected", Model.searchtype }, { "style", "width: 100%" }, { "df", ":-유형선택" } })
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
@Html.Partial("./Partial/Text", Model.stringval12, Helpers.DicText(new NP.Model.TextDic() { Name = "searchtext", Value = Model.searchtext, PH = "단어를 입력하세요.", CssClass = "ff" })) @Html.Partial("./Partial/Text", Model.stringval12, Helpers.DicText(new NP.Model.TextDic() { Name = "searchtext", Value = Model.searchtext, PH = "단어를 입력하세요.", CssClass = "ff" }))
</div> </div>
@ -93,7 +93,7 @@
<div class="col-md-12"> <div class="col-md-12">
@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "stringval11" }, { "selected", Model.stringval11 }, { "style", "width: 100%" }, { "df", ":-교육목적" } }) @Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "stringval11" }, { "selected", Model.stringval11 }, { "style", "width: 100%" }, { "df", ":-교육목적" } })
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
@ -111,7 +111,7 @@
<table class="table table-striped b-t b-light" style="width:5000px"> <table class="table table-striped b-t b-light" style="width:5000px">
<thead> <thead>
<tr> <tr>
<th>수정</th> <th>수정</th>
<th>교육상위분류</th> <th>교육상위분류</th>
<th>교육하위분류</th> <th>교육하위분류</th>
<th>교육유형</th> <th>교육유형</th>
@ -134,7 +134,7 @@
<th>대표자</th> <th>대표자</th>
<th>교육시작일</th> <th>교육시작일</th>
<th>교육종료일</th> <th>교육종료일</th>
<th>교육이수시간</th> <th>교육이수시간</th>
<th>소속협회</th> <th>소속협회</th>
<th>학력</th> <th>학력</th>
<th>직위</th> <th>직위</th>
@ -155,14 +155,14 @@
@foreach (var item in Model.Completions) @foreach (var item in Model.Completions)
{ {
<tr> <tr>
<td class="link"><a href="#" onclick="viewdocument(@item.lectno)">[수정]</a></td> <td class="link"><a href="#" onclick="viewcompletion(@item.lectno)">[수정]</a></td>
<td>@item.pcgname</td> <td>@item.pcgname</td>
<td>@item.cgname</td> <td>@item.cgname</td>
<td>@item.cshapename</td> <td>@item.cshapename</td>
<td>@item.userid</td> <td>@item.userid</td>
<td>@item.username</td> <td>@item.username</td>
<td>@item.userpnostr</td> <td>@item.userpnostr</td>
<td>@item.typemanName</td> <td>@item.typemanName</td>
<td>@item.edukind</td> <td>@item.edukind</td>
<td>@item.typeeduName</td> <td>@item.typeeduName</td>
<td>@item.typegradeName</td> <td>@item.typegradeName</td>
@ -178,7 +178,7 @@
<td>@item.ceoname</td> <td>@item.ceoname</td>
<td>@Convert.ToDateTime(@item.sdate).ToShortDateString()</td> <td>@Convert.ToDateTime(@item.sdate).ToShortDateString()</td>
<td>@Convert.ToDateTime(@item.edate).ToShortDateString()</td> <td>@Convert.ToDateTime(@item.edate).ToShortDateString()</td>
<td>@item.studytime</td> <td>@item.studytime</td>
<td>@item.association</td> <td>@item.association</td>
<td>@item.slevelName</td> <td>@item.slevelName</td>
<td>@item.uduty</td> <td>@item.uduty</td>
@ -189,7 +189,7 @@
<td>@item.rbankamt</td> <td>@item.rbankamt</td>
<td>@item.rbank</td> <td>@item.rbank</td>
<td>@item.rbankaccnum</td> <td>@item.rbankaccnum</td>
<td>@item.tbankuser</td> <td>@item.rbankuser</td>
<td>@item.taxemail</td> <td>@item.taxemail</td>
<td>@item.tyear</td> <td>@item.tyear</td>
<td>@item.studyplaceName</td> <td>@item.studyplaceName</td>
@ -201,208 +201,233 @@
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount) @Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
</section> </section>
</form> </form>
<div id="documentbox" class="findbox draggable regbox" style="width: 800px; z-index: 1041; top: 60px;bottom: 30px; overflow: auto;"> <div id="completionbox" class="findbox draggable regbox" style="width: 800px; z-index: 1041; top: 60px;bottom: 30px; overflow: auto;">
<h4><i class="fa fa-bars"></i> <span id="pcap">과거 증빙서류 수정</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4> <h4><i class="fa fa-bars"></i> <span id="pcap">수료관리 수정</span><a href="#" class="btn btn-default btn-xs f-r closethisbox">닫기</a></h4>
<input type="hidden" id="document_no" name="document.no" /> <input type="hidden" id="completion_lectno" name="completion.lectno" />
<input type="hidden" id="completion_userno" name="completion.userno" />
<input type="hidden" id="completion_pino" name="completion.pino" />
<input type="hidden" id="completion_pplno" name="completion.pplno" />
<input type="hidden" id="completion_asno" name="completion.asno" />
<h5>ㆍ강좌정보/수료정보</h5>
<table class="regtable"> <table class="regtable">
<colgroup> <colgroup>
<col style="width:20%" /> <col style="width:20%" />
<col style="width:30%" /> <col style="width:30%" />
<col style="width:20%" /> <col style="width:20%" />
<col /> <col style="width:30%" />
</colgroup> </colgroup>
<tr> <tr>
<th>과정분류</th> <th>교육상위분류</th>
<td> <td id="completion_pcgname"></td>
<th>교육하위분류</th>
</td> <td id="completion_cgname"></td>
</tr>
<tr>
<th>교육유형</th> <th>교육유형</th>
<td> <td id="completion_cshapename"></td>
</td>
</tr>
<tr>
<th>이름</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.username", Style = "width:100%;" }))
</td>
<th>주민번호</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.userpno", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>기술인분류</th>
<td>
</td>
<th>교육구분</th>
<td>
</td>
</tr>
<tr>
<th>교육목적</th>
<td>
</td>
<th>등급</th>
<td>
</td>
</tr>
<tr>
<th>직무분야</th>
<td>
</td>
<th>과정명</th> <th>과정명</th>
<td> <td id="completion_cname"></td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.cgname", Style = "width:100%;" })) </tr>
</td> <tr>
<th>교육이수시간</th>
<td id="completion_studytime"></td>
<th>교육장</th>
<td id="completion_studyplaceName"></td>
</tr> </tr>
<tr> <tr>
<th>수료번호</th> <th>수료번호</th>
<td> <td id="completion_completeno"></td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.completeno", Style = "width:100%;" })) <th>교육연도</th>
</td> <td id="completion_tyear"></td>
</tr>
</table>
<h5>ㆍ사용자정보</h5>
<table class="regtable">
<colgroup>
<col style="width:20%" />
<col style="width:30%" />
<col style="width:20%" />
<col style="width:30%" />
</colgroup>
<tr>
<th>사용자ID</th>
<td id="completion_userid"></td>
<th>이름 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.username", Style = "width:100%;" }))</td>
</tr>
<tr>
<th>주민번호 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.userpno", Style = "width:100%;" }))</td>
<th>학력</th>
<td>@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "0:기타;1:고졸;2:학사;3:석사;4:박사" }, { "name", "completion.slevel" }, { "style", "width: 100%" }, { "df", ":-선택" } })</td>
</tr>
<tr>
<th>직위</th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.uduty", Style = "width:100%;" }))</td>
<th>연락처 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.mobile", Style = "width:100%;" ,CssClass="mobilefmt nocomma" }))</td>
</tr>
<tr>
<th>소속협회</th>
<td colspan="3">@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.association", Style = "width:100%;" }))</td>
</tr>
</table>
<h5>ㆍ신청정보</h5>
<table class="regtable">
<colgroup>
<col style="width:20%" />
<col style="width:30%" />
<col style="width:20%" />
<col style="width:30%" />
</colgroup>
<tr>
<th>교육시작일 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Date", null, new ViewDataDictionary { { "name", "completion.sdate" } })</td>
<th>교육종료일 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Date", null, new ViewDataDictionary { { "name", "completion.edate" } })</td>
</tr>
<tr>
<th>기술인분류 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeman"), new ViewDataDictionary { { "name", "completion.typeman" }, { "style", "width: 100%" }, { "df", ":-기술인분류" } })</td>
<th>직무분야 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typejob"), new ViewDataDictionary { { "name", "completion.typejob" }, { "style", "width: 100%" }, { "df", ":-직무분야" } })</td>
</tr>
<tr>
<th>교육목적 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typeedu"), new ViewDataDictionary { { "name", "completion.typeedu" }, { "style", "width: 100%" }, { "df", ":-교육목적" } })</td>
<th>등급 <spn style="color:red;">*</spn></th>
<td>@Html.Partial("./Partial/Select", Model.ComCodes.Where(w => w.cgroup == "typegrade"), new ViewDataDictionary { { "name", "completion.typegrade" }, { "style", "width: 100%" }, { "df", ":-등급" } })</td>
</tr>
<tr>
<th>결제금액</th>
<td id="completion_payamt"></td>
<th>교육구분</th>
<td id="completion_edukind"></td>
</tr>
<tr>
<th>수료여부 <spn style="color:red;">*</spn></th>
<td colspan="3">@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "0:미수료;1:수료" }, { "name", "completion.iscomplete" }, { "style", "width: 100%" }})</td>
</tr>
</table>
<h5>ㆍ환급정보</h5>
<table class="regtable">
<colgroup>
<col style="width:20%" />
<col style="width:30%" />
<col style="width:20%" />
<col style="width:30%" />
</colgroup>
<tr>
<th>환급액</th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.rbankamt", Style = "width:100%;" , CssClass="int" }))</td>
<th>환급은행명</th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.rbank", Style = "width:100%;" }))</td>
</tr>
<tr>
<th>환급계좌</th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.rbankaccnum", Style = "width:100%;" }))</td>
<th>환급계좌예금주</th>
<td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.rbankuser", Style = "width:100%;" }))</td>
</tr>
</table>
<h5>ㆍ회사정보</h5>
<table class="regtable">
<colgroup>
<col style="width:20%" />
<col style="width:30%" />
<col style="width:20%" />
<col style="width:30%" />
</colgroup>
<tr>
<th>업체명</th> <th>업체명</th>
<td> <td colspan="3">
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.companyname", Style = "width:100%;" })) <div class="col-sm-8" style="padding-left:0px;">
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.asname", Style = "width:100%;", IsReadOnly = true }))
</div>
<div class="col-sm-4" style="padding-left: 0px;margin-top: 4px;margin-left: -10px;">
<a href="#" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="findassignshow()"><i class="fa fa-search"></i></a>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>업체주소</th> <th>업체주소</th>
<td colspan="3"> <td colspan="3" class="postbox">
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.companyaddr", Style = "width:100%;" })) <div class="col-md-2" style="padding-left:0px;padding-right:5px;">
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.post", Style = "width:100%;", IsReadOnly = true, CssClass = "postno" }))
</div>
<div class="col-sm-9" style="padding-left:0px;padding-right:0px;">
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.address1", Style = "width:100%;", IsReadOnly = true, CssClass = "postadr" }))
</div>
<div class="col-sm-1" style="padding-left:5px;margin-top:4px;">
<a href="#" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="getpost2(this);bglayer2();"><i class="fa fa-search"></i></a>
</div>
<div class="col-sm-12" style="padding-left:0px;padding-top:5px;padding-right:0px;">
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.address2", Style = "width:100%;", CssClass = "postadrsub" }))
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th>사업자등록번호</th> <th>사업자등록번호</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.brno", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.brno", Style = "width:100%;" }))
</td>
<th>고용보험관리번호</th> <th>고용보험관리번호</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.eino", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.eino", Style = "width:100%;" }))
</td>
</tr> </tr>
<tr> <tr>
<th>업태</th> <th>업태</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.btype", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.btype", Style = "width:100%;" }))
</td>
<th>종목</th> <th>종목</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.bkind", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.bkind", Style = "width:100%;" }))
</td>
</tr> </tr>
<tr> <tr>
<th>대표자</th> <th>대표자</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.ceoname", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.ceoname", Style = "width:100%;" }))
</td>
<th>교육일시작일</th>
<td>
@Html.Partial("./Partial/Date", null, new ViewDataDictionary { { "name", "document.ssdate" } })
</td>
</tr>
<tr>
<th>교육일종료일</th>
<td>
@Html.Partial("./Partial/Date", null, new ViewDataDictionary { { "name", "document.sedate" } })
</td>
<th>교육이수시간</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.sctime", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>소속협회</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.assign", Style = "width:100%;" }))
</td>
<th>학력</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.slevel", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>직위</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.uduty", Style = "width:100%;" }))
</td>
<th>교육생연락처</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.phone", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>업체담당자</th> <th>업체담당자</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.mname", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.mname", Style = "width:100%;" })) </tr>
</td> <tr>
<th>업체담당자연락처</th> <th>업체담당자연락처</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.mphone", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.mphone", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>교육비</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.sprice", Style = "width:100%;" }))
</td>
<th>환급액</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rprice", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>환급은행명</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rbank", Style = "width:100%;" }))
</td>
<th>환급계좌</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rbankno", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>환급계좌예금주</th>
<td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.rbankuser", Style = "width:100%;" }))
</td>
<th>계산서이메일</th> <th>계산서이메일</th>
<td> <td>@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "completion.taxemail", Style = "width:100%;" }))</td>
@Html.Partial("./Partial/Text", null, Helpers.DicText(new NP.Model.TextDic() { Name = "document.taxemail", Style = "width:100%;" }))
</td>
</tr>
<tr>
<th>교육연도</th>
<td>
</td>
<th>구분</th>
<td>
</td>
</tr> </tr>
</table> </table>
<div class="findboxbtnbox" id="btnsave"> <div class="findboxbtnbox" id="btnsave">
<a href="#" class="btn btn-primary" onclick="update();">수정</a> <a href="#" class="btn btn-primary" onclick="update();">수정</a>
</div> </div>
</div> </div>
<div id="postlayer" class="daumpost">
<a href="#" class="btn btn-xxs btn-select closedaumpost" onclick="closeDaumPostcode();">close</a>
</div>
@Html.Partial("./Partial/AssignBox2", "bindAssign;고객사 검색;1")
@section scriptsHeader{ @section scriptsHeader{
@Html.Partial("./Partial/ScriptDate") @Html.Partial("./Partial/ScriptDate")
@Html.Partial("./Partial/ScriptPost")
} }
@section scripts{ @section scripts{
<script src="~/js/moment.js"></script>
<script> <script>
var _cgs = '@(string.Join(";", Model.CGs.Select(s=>string.Format("{0}:{1}:{2}", s.pcgno??0, s.cgno, s.cgname))))'; var _cgs = '@(string.Join(";", Model.CGs.Select(s=>string.Format("{0}:{1}:{2}", s.pcgno??0, s.cgno, s.cgname))))';
$(document).ready(function () { $(document).ready(function () {
$("#stringval2").on("change", function () { $("#stringval2").on("change", function () {
bindcgno("stringval2", "stringval3"); bindcgno("stringval2", "stringval3");
}); });
}); });
function bindAssign(data) {
$("#completion_asno").val(data.asno);
$("#completion_asname").val(data.asname);
$("#completion_post").val(data.post);
$("#completion_address1").val(data.address1);
$("#completion_address2").val(data.address2);
$("#completion_brno").val(data.brno);
$("#completion_eino").val(data.eino);
$("#completion_bkind").val(data.bkind);
$("#completion_btype").val(data.btype);
$("#completion_ceoname").val(data.ceoname);
$("#completion_mname").val(data.mname);
$("#completion_mphone").val(data.mphone);
$("#completion_taxemail").val(data.taxemail);
}
var _bindcdnocid = ""; var _bindcdnocid = "";
function bindcgno(id, cid) { function bindcgno(id, cid) {
_bindcdnocid = cid; _bindcdnocid = cid;
@ -415,81 +440,114 @@
}); });
} }
} }
function jsonDateToString(jsonDate) { function jsonDateToString(jsonDate) {
var date = new Date(parseInt(jsonDate.replace(/(^.*\()|([+-].*$)/g, ''))); var date = new Date(parseInt(jsonDate.replace(/(^.*\()|([+-].*$)/g, '')));
var yyyy = String(date.getFullYear()); var yyyy = String(date.getFullYear());
var MM = (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : String(date.getMonth() + 1); var MM = (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : String(date.getMonth() + 1);
var dd = date.getDate() < 10 ? "0" + date.getDate() : String(date.getDate()); var dd = date.getDate() < 10 ? "0" + date.getDate() : String(date.getDate());
return yyyy + "-" + MM + "-" + dd;; return yyyy + "-" + MM + "-" + dd;;
} }
function viewdocument(no) { function viewcompletion(lectno) {
//capp("/acommon/DocumnetsPast", { no: no }, "cbviewdocument",null,null,true); capp("/acommon/completion", { lectno: lectno }, "cbviewcompletion",null,null,true);
} }
function cbviewdocument() { function cbviewcompletion() {
if (capResult.code == 1000) { if (capResult.code == 1000) {
for (key in capResult.obj) { for (key in capResult.obj) {
if (key == "ssdate" || key == "sedate") { if (key == "sdate" || key == "edate") {
capResult.obj[key] = jsonDateToString(capResult.obj[key]); capResult.obj[key] = jsonDateToString(capResult.obj[key]);
} else if (key == "userpno") { } else if (key == "userpno") {
capResult.obj[key] = capResult.obj[key].substr(0, 6) + "-" + capResult.obj[key].substr(6); capResult.obj[key] = capResult.obj[key].substr(0, 6) + "-" + capResult.obj[key].substr(6);
} else if (key == "payamt") {
capResult.obj[key] = bindComma3(capResult.obj[key]);
} }
$("#document_" + key).val(capResult.obj[key]); if ($("#completion_" + key).prop('tagName') == "TD") {
} $("#completion_" + key).html(capResult.obj[key]);
bglayer(); $("#documentbox").slideDown("fast"); } else {
$("#completion_" + key).val(capResult.obj[key]);
}
}
bglayer(); $("#completionbox").slideDown("fast");
} else { } else {
msgadmin2(); msgadmin2();
} }
} }
function update() { function update() {
if ($("#document_username").val() == "") { if ($("#completion_username").val() == "") {
$("#document_username").focus(); $("#completion_username").focus();
msg2("이름을 입력해주세요."); msg2("이름을 입력해주세요.");
} else if ($("#document_userpno").val() == "") { } else if ($("#completion_userpno").val() == "") {
$("#document_userpno").focus(); $("#completion_userpno").focus();
msg2("주민번호를 입력해주세요."); msg2("주민번호를 입력해주세요.");
} else if (!$.isNumeric($("#document_userpno").val().replace(/-/gi, "")) || $("#document_userpno").val().replace(/-/gi, "").length != 13) { } else if (!$.isNumeric($("#completion_userpno").val().replace(/-/gi, "")) || $("#completion_userpno").val().replace(/-/gi, "").length != 13) {
$("#document_userpno").focus(); $("#completion_userpno").focus();
msg2("잘못된 주민번호입니다."); msg2("잘못된 주민번호입니다.");
} else if (!$.isNumeric($("#document_brno").val())) { } else if (!moment($("#completion_userpno").val().substr(0,6), 'YYMMDD',true).isValid()) {
$("#document_brno").focus(); $("#completion_userpno").focus();
msg2("사업자등록번호는 숫자만 입력가능합니다."); msg2("잘못된 주민번호입니다.");
} else if (!$.isNumeric($("#document_eino").val())) { } else if ($("#completion_mobile").val() == "") {
$("#document_eino").focus(); $("#completion_mobile").focus();
msg2("고용보험관리번호는 숫자만 입력가능합니다."); msg2("연락처를 입력해주세요.");
} else if (!$.isNumeric($("#document_sctime").val())) { } else if (!ismobile($("#completion_mobile").val()) && !isphone($("#completion_mobile").val())) {
$("#document_sctime").focus(); $("#completion_mobile").focus();
msg2("교육이수시간은 숫자만 입력가능합니다."); msg2("잘못된 연락처입니다.");
} else if (!$.isNumeric($("#document_sprice").val())) { } else if ($("#completion_sdate").val() == "") {
$("#document_sprice").focus(); $("#completion_sdate").focus();
msg2("교육비는 숫자만 입력가능합니다."); msg2("교육시작일을 입력해주세요.");
} else if (!$.isNumeric($("#document_rprice").val())) { } else if ($("#completion_edate").val() == "") {
$("#document_rprice").focus(); $("#completion_edate").focus();
msg2("교육종료일을 입력해주세요.");
} else if ($("#completion_typeman").val() == "") {
$("#completion_typeman").focus();
msg2("기술인분류를 선택해주세요.");
} else if ($("#completion_typejob").val() == "") {
$("#completion_typejob").focus();
msg2("직무분야를 선택해주세요.");
} else if ($("#completion_typeedu").val() == "") {
$("#completion_typeedu").focus();
msg2("교육목적을 선택해주세요.");
} else if ($("#completion_typegrade").val() == "") {
$("#completion_typegrade").focus();
msg2("등급을 선택해주세요.");
} else if (!$.isNumeric($("#completion_rbankamt").val().replace(/,/gi, ""))) {
$("#completion_rbankamt").focus();
msg2("환급액은 숫자만 입력가능합니다."); msg2("환급액은 숫자만 입력가능합니다.");
} else if (!$.isNumeric($("#document_rbankno").val())) { } else if ($("#completion_rbankaccnum").val() != "" && !$.isNumeric($("#completion_rbankaccnum").val())) {
$("#document_rbankno").focus(); $("#completion_rbankaccnum").focus();
msg2("환급계좌는 숫자만 입력가능합니다."); msg2("환급계좌는 숫자만 입력가능합니다.");
} else if (!$.isNumeric($("#document_syear").val())) { } else if ($("#completion_brno").val() != "" && !$.isNumeric($("#completion_brno").val())) {
$("#document_syear").focus(); $("#completion_brno").focus();
msg2("교육년도는 숫자만 입력가능합니다."); msg2("사업자등록번호는 숫자만 입력가능합니다.");
} else { } else if ($("#completion_eino").val() != "" && !$.isNumeric($("#completion_eino").val())) {
if (confirm("과거 증빙서류를 수정하시겠습니까??")) { $("#completion_eino").focus();
msg2("고용보험관리번호는 숫자만 입력가능합니다.");
} else if ($("#completion_mphone").val() != "" && !ismobile($("#completion_mphone").val()) && !isphone($("#completion_mphone").val())) {
$("#completion_mphone").focus();
msg2("잘못된 업체담당자연락처입니다.");
} else if ($("#completion_taxemail").val() != "" && !isemail($("#completion_taxemail").val())) {
$("#completion_taxemail").focus();
msg2("잘못된 계산서이메일입니다.");
} else {
if (confirm("수료정보를 수정하시겠습니까??")) {
var data = {}; var data = {};
$.each($("#documentbox input, #documentbox select"), function () { $.each($("#completionbox input, #completionbox select"), function () {
data[this.name.replace(/document./gi, "")] = this.value; if (this.name == "completion.rbankamt") {
}); data[this.name.replace(/completion./gi, "")] = this.value.replace(/,/gi, "");
capp("/acommon/DocumnetsPastUpdate", data, "cbupdate"); } else {
data[this.name.replace(/completion./gi, "")] = this.value;
}
});
capp("/acommon/completionupdate", data, "cbupdate");
} }
} }
} }
function cbupdate() { function cbupdate() {
if (capResult.code == 1000) { if (capResult.code == 1000) {
msgok(1, "", true); msgok(1, "", true);
submit("mform", 800, true); submit("mform", 800, true);
} else { } else {
msgadmin2(); msgadmin2(capResult.msg);
} }
} }
</script> </script>
} }

5670
BO/js/moment.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1276,5 +1276,78 @@ namespace NP.Base.Controllers
document.uip = GetUserIP(); document.uip = GetUserIP();
return JsonOK(Dao.Save("cr.documnetspast.up", document)); return JsonOK(Dao.Save("cr.documnetspast.up", document));
} }
[HttpPost]
public JsonResult Completion(Int64 lectno)
{
var comCodes = GetComCodes("typeman,typeedu,typegrade,typejob,studyplace");
var completion = Dao.Get<Completion>("cr.completions", new Hashtable() { { "lectno", lectno } }).First();
completion.typeeduName = comCodes.Where(w => w.ccode == completion.typeedu).FirstOrDefault()?.cname;
completion.typegradeName = comCodes.Where(w => w.ccode == completion.typegrade).FirstOrDefault()?.cname;
completion.typejobName = comCodes.Where(w => w.ccode == completion.typejob).FirstOrDefault()?.cname;
completion.typemanName = comCodes.Where(w => w.ccode == completion.typeman).FirstOrDefault()?.cname;
completion.studyplaceName = comCodes.Where(w => w.ccode == completion.studyplace).FirstOrDefault()?.cname;
return JsonBack(completion);
}
[HttpPost]
public JsonResult CompletionUpdate(Completion completion)
{
completion.uno = SUserInfo.UserNo;
completion.uip = GetUserIP();
completion.userpno = completion.userpno.Replace("-", "");
if (completion.userpno != null && completion.userpno.Length == 13)
{
switch (completion.userpno.Substring(6, 1))
{
case "1":
completion.birthday = "19";
break;
case "2":
completion.birthday = "19";
break;
case "3":
completion.birthday = "20";
break;
case "4":
completion.birthday = "20";
break;
case "5":
completion.birthday = "19";
break;
case "6":
completion.birthday = "19";
break;
case "7":
completion.birthday = "20";
break;
case "8":
completion.birthday = "20";
break;
default:
break;
}
completion.birthday += completion.userpno.Substring(0, 2) + "-" + completion.userpno.Substring(2, 2) + "-" + completion.userpno.Substring(4, 2);
}
if (completion.sdate != null)
{
completion.sdate = new DateTime(completion.sdate.Value.Year, completion.sdate.Value.Month, completion.sdate.Value.Day, 0, 0, 0);
}
if (completion.edate != null)
{
completion.edate = new DateTime(completion.edate.Value.Year, completion.edate.Value.Month, completion.edate.Value.Day, 23, 59, 59);
}
var check = Dao.Get<int>("users.checkuser", new Hashtable() { { "usernonot", completion.userno }, { "mobile", completion.mobile }, { "userpno", completion.userpno } }).First();
if (check == 3)
{
return JsonError(JSONCode.Error, "이미 해당 휴대폰번호로 등록된 회원이 존재합니다.", false);
}
else if (check == 4)
{
return JsonError(JSONCode.Error, "이미 해당 주민번호로 등록된 회원이 존재합니다.", false);
}
return JsonOK(Dao.Save("cr.completion.up", completion));
}
} }
} }

View File

@ -31,6 +31,11 @@ namespace NP.Base.Controllers
return JsonBackList(Dao.Get<Assign>("users.assigns", new Hashtable() { { "asname", asname }, { "status", 1 }, { "pagenum", pno }, { "pagerowsize", 10 } })); return JsonBackList(Dao.Get<Assign>("users.assigns", new Hashtable() { { "asname", asname }, { "status", 1 }, { "pagenum", pno }, { "pagerowsize", 10 } }));
} }
[HttpPost] [HttpPost]
public JsonResult AssignFind2(String asname, int pno)
{
return JsonBackList(Dao.Get<Assign>("users.assigns2", new Hashtable() { { "asname", asname }, { "status", 1 }, { "excel1", ",a.post" }, { "orderby", "a.asname" }, { "pagenum", pno }, { "pagerowsize", 10 } }));
}
[HttpPost]
[ValidateInput(false)] [ValidateInput(false)]
public JsonResult UserSave(VMUser vm) public JsonResult UserSave(VMUser vm)
{ {

View File

@ -34,6 +34,10 @@ public static class Helpers
vdd.Add("onchange", dic.OnChange); vdd.Add("onchange", dic.OnChange);
vdd.Add("ph", dic.PH); vdd.Add("ph", dic.PH);
vdd.Add("style", dic.Style); vdd.Add("style", dic.Style);
if (dic.IsReadOnly)
{
vdd.Add("read", "1");
}
return vdd; return vdd;
} }
public static System.Web.Mvc.ViewDataDictionary DicSelect(NP.Model.SelectDic dic) public static System.Web.Mvc.ViewDataDictionary DicSelect(NP.Model.SelectDic dic)

View File

@ -1526,7 +1526,7 @@
,CAST(AES_DECRYPT(UNHEX(u.userpno), <include refid="sql.digest"></include>) AS char) as userpno ,CAST(AES_DECRYPT(UNHEX(u.userpno), <include refid="sql.digest"></include>) AS char) as userpno
,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) as mobile ,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) as mobile
,CAST(AES_DECRYPT(UNHEX(u.email), <include refid="sql.digest"></include>) AS char) as email ,CAST(AES_DECRYPT(UNHEX(u.email), <include refid="sql.digest"></include>) AS char) as email
,pi.tbankuser as tbankuser,pi.rbank,pi.pino,pi.rbankamt ,pi.tbankuser as rbankuser,pi.rbank,pi.pino,pi.rbankamt
,CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), <include refid="sql.digest"></include>) AS char) as rbankaccnum ,CAST(AES_DECRYPT(UNHEX(pi.rbankaccnum), <include refid="sql.digest"></include>) AS char) as rbankaccnum
,p.payamt ,p.payamt
,pp.pplno,pp.typeman,pp.typeedu,pp.typegrade,pp.typejob ,pp.pplno,pp.typeman,pp.typeedu,pp.typegrade,pp.typejob
@ -1545,6 +1545,7 @@
left outer join payitem pi on pi.payno = p.payno left outer join payitem pi on pi.payno = p.payno
left outer join pplog pp on pp.pplno = p.pplno left outer join pplog pp on pp.pplno = p.pplno
where l.iscomplete = 1 where l.iscomplete = 1
<isNotNull property="lectno" prepend="and">l.lectno = #lectno#</isNotNull>
<isNotNull property="sdate" prepend="and">l.sdate &gt;= #sdate#</isNotNull> <isNotNull property="sdate" prepend="and">l.sdate &gt;= #sdate#</isNotNull>
<isNotNull property="edate" prepend="and">l.edate &lt;= #edate#</isNotNull> <isNotNull property="edate" prepend="and">l.edate &lt;= #edate#</isNotNull>
<isNotNull property="tyear" prepend="and">t.tyear=#tyear#</isNotNull> <isNotNull property="tyear" prepend="and">t.tyear=#tyear#</isNotNull>
@ -1571,5 +1572,55 @@
<include refid="sql.pagedynamic"></include> <include refid="sql.pagedynamic"></include>
order by a.rno order by a.rno
</select> </select>
<update id="cr.completion.up" parameterClass="completion">
update users
set <include refid="sql.up"></include>
<isNotNull property="username">,username=#username#</isNotNull>
<isNotNull property="userpno">,userpno=HEX(AES_ENCRYPT(#userpno#, <include refid="sql.digest"></include>))</isNotNull>
<isNotNull property="slevel">,slevel=#slevel#</isNotNull>
<isNotNull property="uduty">,uduty=#uduty#</isNotNull>
<isNotNull property="mobile">,mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>))</isNotNull>
<isNotNull property="birthday">,birthday=HEX(AES_ENCRYPT(#birthday#, <include refid="sql.digest"></include>))</isNotNull>
where userno=#userno#;
update lect
set <include refid="sql.up"></include>
<isNotNull property="iscomplete">,iscomplete=#iscomplete#</isNotNull>
<isNotNull property="sdate">,sdate=#sdate#</isNotNull>
<isNotNull property="edate">,edate=#edate#</isNotNull>
where lectno=#lectno# and userno=#userno#;
update payitem
set <include refid="sql.up"></include>
<isNotNull property="rbank">,rbank=#rbank#</isNotNull>
<isNotNull property="rbankaccnum">,rbankaccnum=HEX(AES_ENCRYPT(#rbankaccnum#, <include refid="sql.digest"></include>))</isNotNull>
<isNotNull property="rbankuser">,tbankuser=#rbankuser#</isNotNull>
<isNotNull property="rbankamt">,rbankamt=#rbankamt#</isNotNull>
where pino=#pino# and userno=#userno#;
update pplog
set <include refid="sql.up"></include>
<isNotNull property="typeman">,typeman=#typeman#</isNotNull>
<isNotNull property="typejob">,typejob=#typejob#</isNotNull>
<isNotNull property="typeedu">,typeedu=#typeedu#</isNotNull>
<isNotNull property="typegrade">,typegrade=#typegrade#</isNotNull>
<isNotNull property="rbank">,rbankname=#rbank#</isNotNull>
<isNotNull property="rbankaccnum">,rbankacc=HEX(AES_ENCRYPT(#rbankaccnum#, <include refid="sql.digest"></include>))</isNotNull>
<isNotNull property="rbankuser">,rbankowner=#rbankuser#</isNotNull>
<isNotNull property="association">,association=#association#</isNotNull>
<isNotNull property="asname">,asname=#asname#</isNotNull>
<isNotNull property="post">,post=#post#</isNotNull>
<isNotNull property="address1">,address1=#address1#</isNotNull>
<isNotNull property="address2">,address2=#address2#</isNotNull>
<isNotNull property="brno">,brno=#brno#</isNotNull>
<isNotNull property="eino">,eino=#eino#</isNotNull>
<isNotNull property="btype">,btype=#btype#</isNotNull>
<isNotNull property="bkind">,bkind=#bkind#</isNotNull>
<isNotNull property="ceoname">,ceoname=#ceoname#</isNotNull>
<isNotNull property="mname">,mname=#mname#</isNotNull>
<isNotNull property="mphone">,mphone=HEX(AES_ENCRYPT(#mphone#, <include refid="sql.digest"></include>))</isNotNull>
<isNotNull property="taxemail">,taxemail=HEX(AES_ENCRYPT(#taxemail#, <include refid="sql.digest"></include>))</isNotNull>
where pplno=#pplno# and userno=#userno#;
</update>
</statements> </statements>
</sqlMap> </sqlMap>

View File

@ -294,9 +294,19 @@
select min(case when b.userid=#userid# then 1 select min(case when b.userid=#userid# then 1
else case when b.usertype = 1 and #email# is not null and b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)) then 2 else case when b.usertype = 1 and #email# is not null and b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)) then 2
else case when b.usertype = 1 and #mobile# is not null and b.mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)) then 3 else case when b.usertype = 1 and #mobile# is not null and b.mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>)) then 3
else 9 end end end) else case when b.usertype = 1 and #userpno# is not null and b.userpno=HEX(AES_ENCRYPT(#userpno#, <include refid="sql.digest"></include>)) then 4
else case when b.usertype = 1 and #di# is not null and b.di=#di# then 5
else 9 end end end end end)
from (select 1 col1) a from (select 1 col1) a
left outer join users b on b.userno &gt; 0 <isNotNull property="usernonot">and b.userno &lt;&gt;#usernonot#</isNotNull> and (b.userid=#userid# or b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>)) or b.mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>))) left outer join users b on b.userno &gt; 0
<isNotNull property="usernonot">and b.userno &lt;&gt;#usernonot#</isNotNull>
and (
b.userid=#userid#
or b.email=HEX(AES_ENCRYPT(#email#, <include refid="sql.digest"></include>))
or b.mobile=HEX(AES_ENCRYPT(#mobile#, <include refid="sql.digest"></include>))
or b.userpno=HEX(AES_ENCRYPT(#userpno#, <include refid="sql.digest"></include>))
or b.di=HEX(AES_ENCRYPT(#di#, <include refid="sql.digest"></include>))
)
</select> </select>
<insert id="users.in" parameterClass="hashtable"> <insert id="users.in" parameterClass="hashtable">
insert into users(usertype,userkind,userid,userpass,username,usernameeng insert into users(usertype,userkind,userid,userpass,username,usernameeng

View File

@ -315,6 +315,7 @@ namespace NP.Model
public String Style { get; set; } public String Style { get; set; }
public String Special { get; set; } public String Special { get; set; }
public String PH { get; set; } public String PH { get; set; }
public bool IsReadOnly { get; set; }
} }

View File

@ -3589,6 +3589,10 @@ namespace NP.Model
} }
} }
/// <summary> /// <summary>
/// 생년월일
/// </summary>
public String birthday { get; set; }
/// <summary>
/// 교육생연락처 /// 교육생연락처
/// </summary> /// </summary>
public String mobile { get; set; } public String mobile { get; set; }
@ -3803,7 +3807,7 @@ namespace NP.Model
/// <summary> /// <summary>
/// 환급계좌예금주 /// 환급계좌예금주
/// </summary> /// </summary>
public String tbankuser { get; set; } public String rbankuser { get; set; }
/// <summary> /// <summary>
/// 환급액 /// 환급액
/// </summary> /// </summary>