교육생 개별등록 추가

This commit is contained in:
lch 2021-06-04 09:01:04 +00:00
parent 0e43995a57
commit 437ec9f033
10 changed files with 351 additions and 253 deletions

View File

@ -47,10 +47,6 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Castle.DynamicProxy, Version=1.1.5.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\LMS_TSTI\Source\Web\SMU.LMS.Web\bin\Castle.DynamicProxy.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=3.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL"> <Reference Include="Common.Logging, Version=3.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll</HintPath> <HintPath>..\packages\Common.Logging.3.0.0\lib\net40\Common.Logging.dll</HintPath>

View File

@ -95,7 +95,14 @@
+ getint(r.outfee) + ":" + getint(r.outfee) + ":"
+ r.ismaster + ":" + r.ismaster + ":"
+ r.ismastername + ":" + r.ismastername + ":"
+ r.ssseterm + r.ssseterm + ":"
+ r.cshape + ":"
+ r.typeman + ":"
+ r.typeedu + ":"
+ r.typegrade + ":"
+ r.typejob + ":"
+ r.typejob + ":"
+ r.isaccommodation
+ "\" /></td><td>" + r.rnorvt + "</td><td>" + r.cmno + "</td><td>" + r.pcgname + " | " + r.cgname + "</td><td>" + r.tmname + "</td><td>" + r.cshapename + "</td>" + + "\" /></td><td>" + r.rnorvt + "</td><td>" + r.cmno + "</td><td>" + r.pcgname + " | " + r.cgname + "</td><td>" + r.tmname + "</td><td>" + r.cshapename + "</td>" +
(@(issingle?1:0)== 1 ? ("<td class=\"text-left link\"><a href=\"#\" onclick=\"$(this).closest('tr').find('input.autocheck').prop('checked', true);selectcm()\">[" + r.ismastername + "] " + r.cnameclassno.replace(/:/gi, '|').replace(/;/gi, '|') + "</a></td>"): ("<td class=\"text-left\">" + r.cnameclassno.replace(/:/gi, '|').replace(/;/gi, '|') + "</td>")) + (@(issingle?1:0)== 1 ? ("<td class=\"text-left link\"><a href=\"#\" onclick=\"$(this).closest('tr').find('input.autocheck').prop('checked', true);selectcm()\">[" + r.ismastername + "] " + r.cnameclassno.replace(/:/gi, '|').replace(/;/gi, '|') + "</a></td>"): ("<td class=\"text-left\">" + r.cnameclassno.replace(/:/gi, '|').replace(/;/gi, '|') + "</td>")) +
"</tr>"); "</tr>");

View File

@ -108,7 +108,8 @@
r.isjoin + ":" + r.isjoin + ":" +
getdb(r.isjoinname) + ":" + getdb(r.isjoinname) + ":" +
getdb(r.asname) + ":" + getdb(r.asname) + ":" +
getdb(r.userid) + "\" /></td>" + getdb(r.userid) + ":" +
getdb(r.asno) + "\" /></td>" +
"<td>" + r.usertypestr + "</td>" + "<td>" + r.usertypestr + "</td>" +
"<td>" + getdb((r.usertype == 11 ? r.pasname : r.asname)).replace(/:/gi, '|').replace(/;/gi, '|') + "</td>" + "<td>" + getdb((r.usertype == 11 ? r.pasname : r.asname)).replace(/:/gi, '|').replace(/;/gi, '|') + "</td>" +
(@(issingle?1:0) == 1 ? (@(issingle?1:0) == 1 ?

View File

@ -24,43 +24,42 @@
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">기술인분류</label> <label class="col-sm-4 col-md-2 control-label">기술인분류</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10" id="div-typemans">
@Html.Partial("./Partial/Radio", Model.ComCodes.Where(w => w.cgroup.ToString() == "typeman"), new ViewDataDictionary() { { "name", "typeman" } })
</div> </div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">교육목적</label> <label class="col-sm-4 col-md-2 control-label">교육목적</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10" id="div-typeedus">
@Html.Partial("./Partial/Radio", Model.ComCodes.Where(w => w.cgroup.ToString() == "typeedu"), new ViewDataDictionary() { { "name", "typeedu" } })
</div> </div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">등급</label> <label class="col-sm-4 col-md-2 control-label">등급</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10" id="div-typegrades">
@Html.Partial("./Partial/Radio", Model.ComCodes.Where(w => w.cgroup.ToString() == "typegrade"), new ViewDataDictionary() { { "name", "typegrade" } })
</div> </div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">직무분야</label> <label class="col-sm-4 col-md-2 control-label">직무분야</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10" id="div-typejobs">
@Html.Partial("./Partial/Radio", Model.ComCodes.Where(w => w.cgroup.ToString() == "typejob"), new ViewDataDictionary() { { "name", "typejob" } })
</div> </div>
</div> </div>
<div class="div-isaccommodation" style="display:none;">
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">합숙여부</label> <label class="col-sm-4 col-md-2 control-label">합숙여부</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10">
@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:아니오;1:예" }, { "name", "isaccommodation" } }) @Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "name", "isaccommodation" }, { "checked", 0} })
</div> </div>
</div> </div>
</div>
<div class="div-isrebate" style="display:none;">
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">환급여부</label> <label class="col-sm-4 col-md-2 control-label">환급여부</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10">
@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:비환급;1:환급" }, { "name", "isrebate" } }) @Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "1:환급;0:비환급" }, { "name", "isrebate" }, { "checked", 1} })
</div> </div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
@ -84,6 +83,8 @@
<input type="text" name="rbankowner" id="rbankowner" class="form-control disp-init" value="" /> <input type="text" name="rbankowner" id="rbankowner" class="form-control disp-init" value="" />
</div> </div>
</div> </div>
</div>
<div class="div-cmscd" style="display:none;">
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">교육일정선택</label> <label class="col-sm-4 col-md-2 control-label">교육일정선택</label>
@ -94,6 +95,7 @@
</ul> </ul>
</div> </div>
</div> </div>
</div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div id="olduser"> <div id="olduser">
<div class="form-group"> <div class="form-group">
@ -105,13 +107,20 @@
</div> </div>
</div> </div>
</div> </div>
<div class="line line-dashed line-lg pull-in"></div>
<div class="form-group">
<label class="col-sm-4 col-md-2 control-label">소속선택</label>
<div class="col-sm-8 col-md-10">
@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:개인;1:업체" }, { "name", "iscompany" }, { "checked", 0} })
</div>
</div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div id="olduser"> <div id="olduser">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">회사정보</label> <label class="col-sm-4 col-md-2 control-label">회사정보</label>
<div class="col-sm-8 col-md-10"> <div class="col-sm-8 col-md-10">
<input type="hidden" id="asno" name="asno" /> <input type="hidden" id="asno" name="asno" />
<a href="#" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="findassignshow()"><i class="fa fa-search"></i></a> <button type="button" id="btnfindassign" class="btn btn-info btn-find btn-xs data-find data-find-float" onclick="findassignshow()" disabled><i class="fa fa-search"></i></button>
<ul class="selectgroupul" id="asbox"> <ul class="selectgroupul" id="asbox">
</ul> </ul>
</div> </div>
@ -120,14 +129,7 @@
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-md-2 control-label">결제방법</label> <label class="col-sm-4 col-md-2 control-label">결제방법</label>
@if (Model.IsAdmin) <div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "6:무료;1:신용카드;3:무통장입금(가상계좌);4:현금" }, { "checked", 6 }, { "name", "ptype" } })</div>
{
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "1:신용카드;2:계좌이체;3:가상계좌;4:현금;5:현금+카드;6:무료;9:위탁계약" }, { "checked", 1 }, { "name", "ptype" } })</div>
}
else if (Model.IsSiteAdmin)
{
<div class="col-sm-8 col-md-10">@Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "9:위탁계약" }, { "checked", 9 }, { "name", "ptype" } })</div>
}
</div> </div>
<div class="line line-dashed line-lg pull-in"></div> <div class="line line-dashed line-lg pull-in"></div>
<div class="form-group"> <div class="form-group">
@ -145,7 +147,7 @@
<tbody> <tbody>
<tr data-cmno=""> <tr data-cmno="">
<th class="cm hide text-left"></th> <th class="cm hide text-left"></th>
<td class="payamt"><input type="text" class="form-control text-right int" id="payamt" value="0" /></td> <td class="payamt"><input type="text" class="form-control text-right int" id="payamt" value="0" readonly /></td>
<td class="payamtcash hide"><input type="text" class="form-control text-right int" id="payamtcash" value="0" /></td> <td class="payamtcash hide"><input type="text" class="form-control text-right int" id="payamtcash" value="0" /></td>
<td class="payamtcard hide"><input type="text" class="form-control text-right int" id="payamtcard" value="0" /></td> <td class="payamtcard hide"><input type="text" class="form-control text-right int" id="payamtcard" value="0" /></td>
</tr> </tr>
@ -183,24 +185,14 @@
var cmboxtmno = 0; var cmboxtmno = 0;
var cmboxnotcmno = ""; var cmboxnotcmno = "";
$(document).ready(function () { $(document).ready(function () {
$("input[name='ptype']").on("change", function () { $("input[name='ptype']").on("click", function () {
$("th.payamtcash,th.payamtcard,td.payamtcash,td.payamtcard").addClass("hide"); if ($(this).val() == "6") {
if ($(this).val() == "5") { $("#payamt").val(0);
$("th.payamtcash,th.payamtcard,td.payamtcash,td.payamtcard").removeClass("hide"); $("#payamt").prop("readonly", true);
} else {
$("#payamt").prop("readonly", false);
} }
}); });
$("input[name='ismember']").on("change", function () {
$("#userno,#userid,#username,#email,#mobile").val("");
$("#userinfo").text("");
$("#newuser").hide();
$("#olduser").show();
if ($(this).val() == "1") {
$("#newuser").show();
$("#username").focus();
$("#olduser").hide();
}
});
$("#btnfindscdshow").on("click", function () { $("#btnfindscdshow").on("click", function () {
var cmno = $("#cmno").val(); var cmno = $("#cmno").val();
if (cmno != "") { if (cmno != "") {
@ -209,9 +201,32 @@
alert("강좌ID 선택 후 가능합니다.") alert("강좌ID 선택 후 가능합니다.")
} }
}); });
$("input:radio[name='isrebate']").on("click", function () {
if ($(this).val() == 0) {
setv("rbankname", "");
setv("rbankacc", "");
setv("rbankowner", "");
$("#rbankname").prop("readonly", true);
$("#rbankacc").prop("readonly", true);
$("#rbankowner").prop("readonly", true);
$("input:radio[name='iscompany']").prop("disabled", false);
} else {
$("#rbankname").prop("readonly", false);
$("#rbankacc").prop("readonly", false);
$("#rbankowner").prop("readonly", false);
$("input:radio[name='iscompany'][value='1']").click();
$("input:radio[name='iscompany']").prop("disabled", true);
}
});
$("input:radio[name='iscompany']").on("click", function () {
if ($(this).val() == 0) {
$("#btnfindassign").prop("disabled", true);
assigndel();
} else {
$("#btnfindassign").prop("disabled", false);
}
});
}); });
var _ismaster = 0;
function bindCM(vs) { function bindCM(vs) {
var v = vs.split(':'); var v = vs.split(':');
setv("cmno", v[0]); setv("cmno", v[0]);
@ -219,57 +234,127 @@
$("#ssseterm").text("교육일 : " + v[9] + "일"); $("#ssseterm").text("교육일 : " + v[9] + "일");
$("#fee").text("교육비 : 회원 " + bindComma3(v[5]) + "원 | 비회원 " + bindComma3(v[6]) + "원"); $("#fee").text("교육비 : 회원 " + bindComma3(v[5]) + "원 | 비회원 " + bindComma3(v[6]) + "원");
$("#layertable tbody tr:gt(0)").remove(); $("#layertable tbody tr:gt(0)").remove();
_ismaster = 0;
if (v[7] == "2") {
_ismaster = 2;
capp("/acommon/cmpcget", { pcno: v[0] }, "cbcmpcget");
} else {
$("#layertable tbody tr").first().attr("data-cmno", v[0]); $("#layertable tbody tr").first().attr("data-cmno", v[0]);
$("th.cm,th.payamtcash,th.payamtcard,td.payamtcash,td.payamtcard").addClass("hide"); $("th.cm,th.payamtcash,th.payamtcard,td.payamtcash,td.payamtcard").addClass("hide");
var cshape = v[10];
$("input:radio[name='isrebate'][value='0']").click();
$("input:radio[name='isaccommodation'][value='0']").click();
$(".div-rbankInfo").hide();
setv("rbankname", "");
setv("rbankacc", "");
setv("rbankowner", "");
setv("cmisno", "");
if (cshape == 1) {
$(".div-isrebate").show();
$(".div-cmscd").hide();
$("input:radio[name='isrebate'][value='1']").click();
} else if (cshape == 2){
$(".div-isrebate").hide();
$(".div-cmscd").show();
} else {
$(".div-isrebate").hide();
$(".div-cmscd").hide();
}
var types = @Html.Raw(Json.Encode(Model.ComCodes.Select(s=> new { cgroup = s.cgroup, ccode = s.ccode, cname = s.cname})));
var typemans = v[11].split(",");
var typeedus = v[12].split(",");
var typegrades = v[13].split(",");
var typejobs = v[14].split(",");
$("#div-typemans").html(radiohtml(types, typemans));
$("#div-typeedus").html(radiohtml(types, typeedus));
$("#div-typegrades").html(radiohtml(types, typegrades));
$("#div-typejobs").html(radiohtml(types, typejobs));
var isaccommodation = v[16];
if (isaccommodation == 1) {
$(".div-isaccommodation").show();
} else {
$(".div-isaccommodation").hide();
} }
} }
function cbcmpcget() { function radiohtml(types, ccodes) {
$.each(capResult.obj, function (i, d) { var html = "";
if (i > 0) { $.each(ccodes, function (index, ccode) {
$("#layertable tbody tr").first().clone().appendTo("#layertable tbody"); $.each(types, function (index, type) {
if (type.ccode == ccode) {
html += "<input type='radio' id='" + type.cgroup + type.ccode + "' name='" + type.cgroup + "' value='" + type.ccode + "' /><label style='vertical-align: sub;' for='" + type.cgroup + type.ccode + "'>&nbsp;" + type.cname + "</label>&nbsp;";
return false;
} }
$("#layertable tbody tr").last().attr("data-cmno", d.cmno);
$("#layertable tbody tr").last().find("th.cm").html(d.tmname + " | " + d.cnameclassno + "<br/>회원가: " + bindComma3(d.infee) + ", 비회원가: " + bindComma3(d.outfee));
$("#layertable tbody tr").last().find("td.payamt input,td.payamtcash input,td.payamtcard input").val(0);
}); });
$("th.cm").removeClass("hide"); });
return html;
} }
function bindUser(vs) { function bindUser(vs) {
var v = vs.split(':'); var v = vs.split(':');
setv("userid", v[7]); setv("userid", v[7]);
setv("userno", v[0]); setv("userno", v[0]);
$("#userinfo").text("[" + v[5] + "]" + v[6] + " | " + v[2] + "(" + v[3] + ")"); $("#userinfo").text("[" + v[5] + "]" + v[6] + " | " + v[2] + "(" + v[3] + ")");
assigndel();
if (v[8]) {
$("input:radio[name='iscompany'][value='1']").click();
bindAssign(v[8] + ":" + v[6]);
}
}
function bindAssign(data) {
var v = data.split(':')[0];
setv("asno", v);
$("#asbox").html("");
$("#asbox").append("<li data-no=\"" + v + "\"><label>" + data.split(':')[1] + "</label><a href=\"#\" class=\"adel\" onclick=\"assigndel(this)\">X</a></li>");
}
function assigndel(a) {
if (a) {
$(a).closest("li").remove();
setv("asno", "");
} else {
$("#asbox").empty();
setv("asno", "");
}
}
function bindCMScd(data) {
setv("cmisno", data.value);
$("#scdbox").html("");
$("#scdbox").append("<li data-no=\"" + data.value + "\"><label>" + data.text + "</label><a href=\"#\" class=\"adel\" onclick=\"cmscddel(this)\">X</a></li>");
}
function cmscddel(a) {
setv("cmisno", "");
$(a).closest("li").remove();
} }
function save() { function save() {
var ta = 0; var isrebate = $("input:radio[name='isrebate']:checked").val() == "1" ? true : false;
var tcash = 0; var iscompany= $("input:radio[name='iscompany']:checked").val() == "1" ? true : false;
var tcard = 0; if (check("cmno", null, "강좌ID를 선택해주세요.")) { }
var sd = ""; else if ($("input:radio[name='typeman']").length > 0 && $("input:radio[name='typeman']:checked").val() == undefined) { msg("기술인분류를 선택해주세요."); }
$.each($("#layertable tbody tr"), function (i, r) { else if ($("input:radio[name='typeedu']").length > 0 && $("input:radio[name='typeedu']:checked").val() == undefined) { msg("교육목적을 선택해주세요."); }
ta += getint($(r).find("td.payamt input").val()); else if ($("input:radio[name='typegrade']").length > 0 && $("input:radio[name='typegrade']:checked").val() == undefined) { msg("등급을 선택해주세요."); }
tcash += getint($(r).find("td.payamtcash input").val()); else if ($("input:radio[name='typejob']").length > 0 && $("input:radio[name='typejob']:checked").val() == undefined) { msg("직무분야를 선택해주세요."); }
tcard += getint($(r).find("td.payamtcard input").val()); else if ($(".div-cmscd").css("display") != "none" && $("#cmisno").val() == "") { msg("교육일정을 선택해주세요."); }
sd += ";" + $(r).attr("data-cmno") + ":" + getint($(r).find("td.payamt input").val()) + ":" + getint($(r).find("td.payamtcash input").val()) + ":" + getint($(r).find("td.payamtcard input").val()); else if (isrebate && check("rbankname", null, "은행명을 등록해주세요.")) { }
}); else if (isrebate && check("rbankacc", null, "계좌번호를 등록해주세요.")) { }
sd = sd.substr(1); else if (isrebate && check("rbankowner", null, "예금주를 등록해주세요.")) { }
if (check("cmno", null, "강좌/패키지를 선택해주세요.")) { } else if (check("userno", null, "신청자ID를 선택해주세요.")) { }
else if ($("#ismember0").prop("checked") && $("#userno").val() == "") { msg("신청자ID를 등록해주세요."); } else if (iscompany && check("asno", null, "회사정보를 선택해주세요.")) { }
else if ($("#ismember1").prop("checked") && $("#username").val() == "") { focus("username"); msg("신청자이름을 입력해주세요."); } else if (getrv("ptype") != "6" && val("payamt") < 1) { msg("결제금액을 입력해주세요."); }
else if ($("#ismember1").prop("checked") && !isemail($("#email").val())) { focus("username"); msg("이메일을 확인해주세요."); }
else if ($("#ismember1").prop("checked") && !ismobile($("#mobile").val())) { focus("username"); msg("핸드폰번호를을 확인해주세요."); }
else if (getrv("ptype") != "6" && getrv("ptype") != "9" && ta < 1) { msg("결제금액을 입력해주세요."); }
else if (getrv("ptype") == "5" && ta != tcash + tcard) { msg("결제금액을 확인해주세요."); }
else if (confirm("교육생을 등록하시겠습니까?")) { else if (confirm("교육생을 등록하시겠습니까?")) {
if (_ismaster == 0) { var pplog = {};
capp("/acommon/lectreg", { pis: sd, isnewmember: $("#ismember1").prop("checked"), userno: val("userno") == "" ? 0 : val("userno"), username: val("username"), email: val("email"), mobile: val("mobile"), ptype: getrv("ptype") }, "cbsave"); pplog.cmno = val("cmno");
} else { pplog.typeman = getrv("typeman");
capp("/acommon/lectreg", { pcno: val("cmno"), pis: sd, isnewmember: $("#ismember1").prop("checked"), userno: val("userno") == "" ? 0 : val("userno"), username: val("username"), email: val("email"), mobile: val("mobile"), ptype: getrv("ptype") }, "cbsave"); pplog.typeedu = getrv("typeedu");
} pplog.typegrade = getrv("typegrade");
pplog.typejob = getrv("typejob");
pplog.cmisno = val("cmisno");
pplog.isaccommodation = getrv("isaccommodation");
pplog.isrebate = getrv("isrebate");
pplog.rbankname = val("rbankname");
pplog.rbankacc = val("rbankacc");
pplog.rbankowner = val("rbankowner");
pplog.iscompany = getrv("iscompany");
pplog.userno = val("userno");
pplog.asno = val("asno");
capp("/acommon/lectreg", { ptype: getrv("ptype"), payamt: val("payamt"), pplog: pplog }, "cbsave");
} }
} }
function cbsave() { function cbsave() {
@ -288,24 +373,5 @@
msgdev(); msgdev();
} }
} }
function bindAssign(data) {
var v = data.split(':')[0];
setv("asno", v);
$("#asbox").html("");
$("#asbox").append("<li data-no=\"" + v + "\"><label>" + data.split(':')[1] + "</label><a href=\"#\" class=\"adel\" onclick=\"assigndel(this)\">X</a></li>");
}
function assigndel(a) {
$(a).closest("li").remove();
setv("asno", "");
}
function bindCMScd(data) {
setv("cmisno", data.value);
$("#scdbox").html("");
$("#scdbox").append("<li data-no=\"" + data.value + "\"><label>" + data.text + "</label><a href=\"#\" class=\"adel\" onclick=\"cmscddel(this)\">X</a></li>");
}
function cmscddel(a) {
setv("cmisno", "");
$(a).closest("li").remove();
}
</script> </script>
} }

View File

@ -50,9 +50,6 @@
<Reference Include="IBatisNet.Common.Logging.Log4Net"> <Reference Include="IBatisNet.Common.Logging.Log4Net">
<HintPath>..\References\IBatisNet.Common.Logging.Log4Net.dll</HintPath> <HintPath>..\References\IBatisNet.Common.Logging.Log4Net.dll</HintPath>
</Reference> </Reference>
<Reference Include="IBatisNet.DataAccess">
<HintPath>..\..\LMS_TSTI\Source\Core\NPTech.LMS.Core\bin\Release\IBatisNet.DataAccess.dll</HintPath>
</Reference>
<Reference Include="IBatisNet.DataMapper, Version=1.6.2.0, Culture=neutral, PublicKeyToken=ed781d9fc396c6ca, processorArchitecture=MSIL"> <Reference Include="IBatisNet.DataMapper, Version=1.6.2.0, Culture=neutral, PublicKeyToken=ed781d9fc396c6ca, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\References\IBatisNet.DataMapper.dll</HintPath> <HintPath>..\References\IBatisNet.DataMapper.dll</HintPath>

View File

@ -83,57 +83,86 @@ namespace NP.Base.Controllers
return JsonOK(Dao.Save("lect.lectchange", new Hashtable() { { "lectno", lectno }, { "cmno", cmno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } })); return JsonOK(Dao.Save("lect.lectchange", new Hashtable() { { "lectno", lectno }, { "cmno", cmno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
} }
[HttpPost] [HttpPost]
public JsonResult LECTReg(int? pcno, bool isnewmember, int userno, String username, String email, String mobile, int ptype, String pis) public JsonResult LECTReg(int ptype, int payamt, PPLog pplog)
{ {
if (isnewmember) #region PPLog
#region CM
var cm = Dao.Get<CM>("cm.cms", new Hashtable() { { "cmno", pplog.cmno } }).First();
cm.applicableCM = (cm.quota != 0 && cm.quota - cm.lectcnt <= 0) ? "대기접수" : "정상접수";
pplog.uno = SUserInfo.UserNo;
pplog.uip = GetUserIP();
pplog.isready = cm.applicableCM == "정상접수" ? 0 : 1;
pplog.cgcode = cm.pcgcode;
if (pplog.cgcode != "0")
{ {
//회원정보생성 pplog.cgno = cm.cgno;
//아이디, 이메일 중복확인
var checkuser = Dao.Get<int>("users.checkuser", new Hashtable() { { "userid", email }, { "email", email } }).First();
if (checkuser < 9)
{
return JsonOK(checkuser * -1);
} }
var User = new Users() { }; pplog.cshape = cm.cshape;
User.uno = SUserInfo.UserNo; User.uip = GetUserIP(); #endregion
User.mobile = string.IsNullOrEmpty(mobile) || mobile.Replace("-", "").Length < 10 ? (mobile ?? "") : mobile.Replace("-", "").Length == 10 ? string.Format("{0}-{1}-{2}", mobile.Replace("-", "").Substring(0, 3), mobile.Replace("-", "").Substring(3, 3), mobile.Replace("-", "").Substring(6)) : string.Format("{0}-{1}-{2}", mobile.Replace("-", "").Substring(0, 3), mobile.Replace("-", "").Substring(3, 4), mobile.Replace("-", "").Substring(7)); #region User
User.username = username; var user = Dao.Get<Users>("users.users", new Hashtable() { { "userno", pplog.userno } }).First();
User.userpass = NP.Base.Lib.KISA_SHA256.SHA256Hash(mobile.Replace("-", "")); pplog.userpno = user.userpno;
User.userid = User.email = email.Trim(); pplog.mobile = user.mobile;
User.usertype = 1; pplog.email = user.email;
User.asno = SUserInfo.IsSiteAdmin ? SUserInfo.ASNo : (int?)null; pplog.upost = user.post;
User.status = 1; pplog.uaddress1 = user.address1;
Dao.Insert("users.in", User); pplog.uaddress2 = user.address2;
if (User.userno < 1) pplog.isassignuser = user.isassignuser;
pplog.uduty = user.uduty;
pplog.slevel = user.slevel;
#endregion
#region Assign
if (pplog.asno != null)
{ {
return JsonOK(-3); var assign = Dao.Get<Assign>("users.assigns2", new Hashtable() { { "asno", pplog.asno }, { "excel1", ",a.post" }, { "orderby", "a.asname" } }).First();
} pplog.asname = assign.asname;
userno = User.userno; pplog.brno = assign.brno;
pplog.ceoname = assign.ceoname;
pplog.post = assign.post;
pplog.address1 = assign.address1;
pplog.address2 = assign.address2;
pplog.btype = assign.btype;
pplog.bkind = assign.bkind;
pplog.fgnobno = assign.fgnobno;
pplog.eino = assign.eino;
pplog.mname = assign.mname;
pplog.mphone = assign.mphone;
pplog.taxemail = assign.taxemail;
} }
#endregion
Dao.Insert("cm.pplog.applyedu.in", pplog);
#endregion
#region Users.asno update
Dao.Save("users.asno.save", new Hashtable() { { "asno", pplog.asno }, { "userno", pplog.userno } });
#endregion
#region Pay
var payitems = new List<PayItem>() { }; var payitems = new List<PayItem>() { };
var uip = GetUserIP(); var uip = GetUserIP();
foreach (var v in pis.Split(';'))
{
var vs = v.Split(':');
payitems.Add(new PayItem() payitems.Add(new PayItem()
{ {
ptype = pcno == null ? 0 : 1, ptype = 0,
pcno = pcno, pcno = null,
itemno = GetInt(vs[0]), itemno = pplog.cmno,
userno = userno, userno = pplog.userno,
status = 1, status = 1,
ispc = pcno == null ? 0 : 1, ispc = 0,
pstatus = 1, pstatus = 1,
pcnt = 1, pcnt = 1,
payamt = GetInt(vs[1]), payamt = payamt,
payamtcash = ptype == 5 ? GetInt(vs[2]) : 0, payamtcash = 0,
payamtcard = ptype == 5 ? GetInt(vs[3]) : 0, payamtcard = 0,
uno = SUserInfo.UserNo, uno = SUserInfo.UserNo,
isrebate = pplog.isrebate ?? 0,
rbank = pplog.rbankname,
rbankaccnum = pplog.rbankacc,
tbankuser = pplog.rbankowner,
uip = uip uip = uip
}); });
}
//정가확인 //정가확인
var cms = Dao.Get<CM>("cm.cms.forpay" + (pcno == null ? "" : "pc"), new Hashtable() { { "userno", userno }, { pcno == null ? "cmno" : "pcno", pcno == null ? payitems.First().itemno : pcno.Value } }); var cms = Dao.Get<CM>("cm.cms.forpay", new Hashtable() { { "userno", pplog.userno }, { "cmno", payitems.First().itemno } });
foreach (var pi in payitems) foreach (var pi in payitems)
{ {
pi.orgamt = cms.Where(w => w.cmno == pi.itemno).First().fee; pi.orgamt = cms.Where(w => w.cmno == pi.itemno).First().fee;
@ -142,7 +171,8 @@ namespace NP.Base.Controllers
var pay = new Pay() var pay = new Pay()
{ {
ptype = ptype, ptype = ptype,
userno = userno, userno = pplog.userno,
username = user.username,
pstatus = 1, pstatus = 1,
rstatus = 0, rstatus = 0,
refunding = 0, refunding = 0,
@ -151,11 +181,15 @@ namespace NP.Base.Controllers
payamt = payitems.Sum(s => s.payamt), payamt = payitems.Sum(s => s.payamt),
PIs = payitems, PIs = payitems,
cmnos = string.Join(",", payitems.Select(s => s.itemno)), cmnos = string.Join(",", payitems.Select(s => s.itemno)),
iscashrct = 0,
pplno = pplog.pplno,
uno = SUserInfo.UserNo, uno = SUserInfo.UserNo,
uip = GetUserIP() uip = GetUserIP()
}; };
#endregion
//등록된 교육생인가 확인 //등록된 교육생인가 확인
var checklectuser = Dao.Get<Lect>("lect.checkuser", new Hashtable() { {"userno",userno}, { "cmnos", pay.cmnos } }).Count(); var checklectuser = Dao.Get<Lect>("lect.checkuser", new Hashtable() { {"userno", pplog.userno }, { "cmnos", pay.cmnos } }).Count();
if(checklectuser > 0) if(checklectuser > 0)
{ {
return JsonOK(-4); return JsonOK(-4);

View File

@ -252,38 +252,38 @@ namespace NP.Base.Controllers
public JsonResult savePPLog(VMCourse vm) public JsonResult savePPLog(VMCourse vm)
{ {
int rtn = 0; int rtn = 0;
PPLog ppllog = new PPLog(); PPLog pplog = new PPLog();
ppllog.uno = SUserInfo.UserNo; pplog.uno = SUserInfo.UserNo;
ppllog.uip = GetUserIP(); pplog.uip = GetUserIP();
ppllog.cmno = vm.cmno; pplog.cmno = vm.cmno;
ppllog.userno = vm.User.userno; pplog.userno = vm.User.userno;
ppllog.asno = vm.Assign != null ? vm.Assign.asno : (long?)null; pplog.asno = vm.Assign != null ? vm.Assign.asno : (long?)null;
ppllog.isready = Request["applicableCM"].ToString() == "정상접수" ? 0 : 1; pplog.isready = Request["applicableCM"].ToString() == "정상접수" ? 0 : 1;
ppllog.cgcode = vm.stringval; pplog.cgcode = vm.stringval;
ppllog.cshape = !string.IsNullOrEmpty(vm.stringval2) ? Convert.ToInt32(vm.stringval2) : (int?)null; pplog.cshape = !string.IsNullOrEmpty(vm.stringval2) ? Convert.ToInt32(vm.stringval2) : (int?)null;
ppllog.asname = string.Empty; pplog.asname = string.Empty;
if (vm.stringval == "0") if (vm.stringval == "0")
{ {
ppllog.typeman = !string.IsNullOrEmpty(vm.stringval3) ? Convert.ToInt32(vm.stringval3) : (int?)null; pplog.typeman = !string.IsNullOrEmpty(vm.stringval3) ? Convert.ToInt32(vm.stringval3) : (int?)null;
ppllog.typeedu = !string.IsNullOrEmpty(vm.stringval4) ? Convert.ToInt32(vm.stringval4) : (int?)null; pplog.typeedu = !string.IsNullOrEmpty(vm.stringval4) ? Convert.ToInt32(vm.stringval4) : (int?)null;
ppllog.typegrade = !string.IsNullOrEmpty(vm.stringval5) ? Convert.ToInt32(vm.stringval5) : (int?)null; pplog.typegrade = !string.IsNullOrEmpty(vm.stringval5) ? Convert.ToInt32(vm.stringval5) : (int?)null;
ppllog.typejob = !string.IsNullOrEmpty(vm.stringval6) ? Convert.ToInt32(vm.stringval6) : (int?)null; pplog.typejob = !string.IsNullOrEmpty(vm.stringval6) ? Convert.ToInt32(vm.stringval6) : (int?)null;
} }
else else
{ {
ppllog.cgno = !string.IsNullOrEmpty(vm.stringval3) ? Convert.ToInt32(vm.stringval3) : (int?)null; pplog.cgno = !string.IsNullOrEmpty(vm.stringval3) ? Convert.ToInt32(vm.stringval3) : (int?)null;
} }
ppllog.cmisno = !string.IsNullOrEmpty(Request["cmisno"]) ? Convert.ToInt64(Request["cmisno"]) : (long?)null; pplog.cmisno = !string.IsNullOrEmpty(Request["cmisno"]) ? Convert.ToInt64(Request["cmisno"]) : (long?)null;
ppllog.isrebate = !string.IsNullOrEmpty(Request["isrebate"]) ? Convert.ToInt32(Request["isrebate"]) : (int?)null; pplog.isrebate = !string.IsNullOrEmpty(Request["isrebate"]) ? Convert.ToInt32(Request["isrebate"]) : (int?)null;
ppllog.isaccommodation = !string.IsNullOrEmpty(Request["isaccommodation"]) ? Convert.ToInt32(Request["isaccommodation"].ToString()) : (int?)null; pplog.isaccommodation = !string.IsNullOrEmpty(Request["isaccommodation"]) ? Convert.ToInt32(Request["isaccommodation"].ToString()) : (int?)null;
#region #region
if (ppllog.isrebate == 1) if (pplog.isrebate == 1)
{ {
ppllog.rbankname = !string.IsNullOrEmpty(Request["rbankname"]) ? Request["rbankname"].ToString() : null; pplog.rbankname = !string.IsNullOrEmpty(Request["rbankname"]) ? Request["rbankname"].ToString() : null;
ppllog.rbankacc = !string.IsNullOrEmpty(Request["rbankacc"]) ? Request["rbankacc"].ToString() : null; pplog.rbankacc = !string.IsNullOrEmpty(Request["rbankacc"]) ? Request["rbankacc"].ToString() : null;
ppllog.rbankowner = !string.IsNullOrEmpty(Request["rbankowner"]) ? Request["rbankowner"].ToString() : null; pplog.rbankowner = !string.IsNullOrEmpty(Request["rbankowner"]) ? Request["rbankowner"].ToString() : null;
} }
#endregion #endregion
@ -291,7 +291,7 @@ namespace NP.Base.Controllers
var isCompany = !string.IsNullOrEmpty(Request["isCompany"]) ? Convert.ToInt32(Request["isCompany"]) : (int?)null; var isCompany = !string.IsNullOrEmpty(Request["isCompany"]) ? Convert.ToInt32(Request["isCompany"]) : (int?)null;
if (isCompany == 0) //개인 if (isCompany == 0) //개인
{ {
ppllog.asno = null; pplog.asno = null;
vm.Assign = null; vm.Assign = null;
} }
else if (isCompany == 1) //업체 else if (isCompany == 1) //업체
@ -307,53 +307,53 @@ namespace NP.Base.Controllers
#region Assign #region Assign
if (vm.Assign != null) if (vm.Assign != null)
{ {
ppllog.asname = vm.Assign.asname; pplog.asname = vm.Assign.asname;
ppllog.brno = vm.Assign.brno.IndexOf("-") > 0 ? vm.Assign.brno.Replace("-", "") : vm.Assign.brno; pplog.brno = vm.Assign.brno.IndexOf("-") > 0 ? vm.Assign.brno.Replace("-", "") : vm.Assign.brno;
ppllog.ceoname = vm.Assign.ceoname; pplog.ceoname = vm.Assign.ceoname;
ppllog.post = vm.Assign.post; pplog.post = vm.Assign.post;
ppllog.address1 = vm.Assign.address1; pplog.address1 = vm.Assign.address1;
ppllog.address2 = vm.Assign.address2; pplog.address2 = vm.Assign.address2;
ppllog.btype = vm.Assign.btype; pplog.btype = vm.Assign.btype;
ppllog.bkind = vm.Assign.bkind; pplog.bkind = vm.Assign.bkind;
Int64? fgnobno = (Int64?)null; Int64? fgnobno = (Int64?)null;
if (Request.Files.GetMultiple("file1").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0) if (Request.Files.GetMultiple("file1").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
{ {
fgnobno = SetFile(Request.Files.GetMultiple("file1").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), fgnobno ?? 0, "assign", "fgnobno"); fgnobno = SetFile(Request.Files.GetMultiple("file1").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), fgnobno ?? 0, "assign", "fgnobno");
} }
ppllog.fgnobno = fgnobno; pplog.fgnobno = fgnobno;
ppllog.eino = vm.Assign.eino; pplog.eino = vm.Assign.eino;
ppllog.mname = vm.Assign.mname; pplog.mname = vm.Assign.mname;
ppllog.mphone = string.Format("{0}-{1}-{2}", vm.Assign.mphone1, vm.Assign.mphone2, vm.Assign.mphone3); pplog.mphone = string.Format("{0}-{1}-{2}", vm.Assign.mphone1, vm.Assign.mphone2, vm.Assign.mphone3);
ppllog.taxemail = string.Format("{0}@{1}", vm.Assign.taxemail1, vm.Assign.taxemail2); pplog.taxemail = string.Format("{0}@{1}", vm.Assign.taxemail1, vm.Assign.taxemail2);
} }
#endregion #endregion
#region User #region User
if (!string.IsNullOrEmpty(vm.User.userpno1) && !string.IsNullOrEmpty(vm.User.userpno2)) if (!string.IsNullOrEmpty(vm.User.userpno1) && !string.IsNullOrEmpty(vm.User.userpno2))
{ {
ppllog.userpno = string.Format("{0}{1}", vm.User.userpno1, vm.User.userpno2); pplog.userpno = string.Format("{0}{1}", vm.User.userpno1, vm.User.userpno2);
} }
ppllog.mobile = string.Format("{0}-{1}-{2}", vm.User.mobile1, vm.User.mobile2, vm.User.mobile3); pplog.mobile = string.Format("{0}-{1}-{2}", vm.User.mobile1, vm.User.mobile2, vm.User.mobile3);
ppllog.email = string.Format("{0}@{1}", vm.User.email1, vm.User.email2); pplog.email = string.Format("{0}@{1}", vm.User.email1, vm.User.email2);
ppllog.upost = vm.User.post; pplog.upost = vm.User.post;
ppllog.uaddress1 = vm.User.address1; pplog.uaddress1 = vm.User.address1;
ppllog.uaddress2 = vm.User.address2; pplog.uaddress2 = vm.User.address2;
ppllog.isassignuser = vm.User.isassignuser; pplog.isassignuser = vm.User.isassignuser;
ppllog.uduty = vm.User.uduty; pplog.uduty = vm.User.uduty;
ppllog.slevel = vm.User.slevel; pplog.slevel = vm.User.slevel;
#endregion #endregion
if (ppllog.asno != null) if (pplog.asno != null)
{ {
Dao.Save("cm.assign.applyedu.up", ppllog); Dao.Save("cm.assign.applyedu.up", pplog);
} }
Dao.Save("cm.users.applyedu.up", ppllog); Dao.Save("cm.users.applyedu.up", pplog);
Dao.Insert("cm.pplog.applyedu.in", ppllog); Dao.Insert("cm.pplog.applyedu.in", pplog);
if (ppllog.pplno > 0) if (pplog.pplno > 0)
{ {
return JsonOK(ppllog.pplno); return JsonOK(pplog.pplno);
} }
return JsonOK(rtn); return JsonOK(rtn);

View File

@ -31,10 +31,6 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Castle.DynamicProxy">
<HintPath>..\..\LMS_TSTI\Source\Core\NPTech.LMS.Core\bin\Release\Castle.DynamicProxy.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Common.Logging"> <Reference Include="Common.Logging">
<HintPath>..\References\Common.Logging.dll</HintPath> <HintPath>..\References\Common.Logging.dll</HintPath>
<Private>True</Private> <Private>True</Private>

View File

@ -28,9 +28,9 @@
<statements> <statements>
<insert id="pay.pay.in" parameterClass="pay"> <insert id="pay.pay.in" parameterClass="pay">
insert into pay(ptype,ispg,isgroup,userno,username,isexam,pstatus,rstatus,refunding,paylimit,payoktime,pgkey insert into pay(ptype,ispg,isgroup,userno,username,isexam,pstatus,rstatus,refunding,paylimit,payoktime,pgkey
,orgamt,discamt,deliamt,isrefunddvr,payamt,refundamt,pplno,isbill,<include refid="sql.inc"></include>) ,orgamt,discamt,deliamt,isrefunddvr,payamt,refundamt,pplno,isbill,iscashrct,<include refid="sql.inc"></include>)
values (#ptype#,#ispg#,#isgroup#,#userno#,#username#,0,#pstatus#,#rstatus#,#refunding#,#paylimit#,case when #isinmoney# is not null then <include refid="sql.now"></include> else #payoktime# end,#pgkey# values (#ptype#,#ispg#,#isgroup#,#userno#,#username#,0,#pstatus#,#rstatus#,#refunding#,#paylimit#,case when #isinmoney# is not null then <include refid="sql.now"></include> else #payoktime# end,#pgkey#
,#orgamt#,#discamt#,#deliamt#,#isrefunddvr#,#payamt#,#refundamt#,#pplno#,#isbill#,<include refid="sql.inv"></include>); ,#orgamt#,#discamt#,#deliamt#,#isrefunddvr#,#payamt#,#refundamt#,#pplno#,#isbill#,#iscashrct#,<include refid="sql.inv"></include>);
<selectKey type="post" property="payno" resultClass="long">SELECT LAST_INSERT_ID()</selectKey> <selectKey type="post" property="payno" resultClass="long">SELECT LAST_INSERT_ID()</selectKey>
</insert> </insert>
<insert id="pay.payitem.in" parameterClass="payitem"> <insert id="pay.payitem.in" parameterClass="payitem">

View File

@ -56,6 +56,7 @@ namespace NP.Model
public IList<ExamUserRenew> ExamUserRenews { get; set; } public IList<ExamUserRenew> ExamUserRenews { get; set; }
public IList<UserAuth> userauths { get; set; } public IList<UserAuth> userauths { get; set; }
public Assign Assign { get; set; } public Assign Assign { get; set; }
public PPLog PPLog { get; set; }
} }
} }