This commit is contained in:
hyunho 2020-11-16 09:02:46 +00:00
parent a20782f806
commit ec7b61ae7f
7 changed files with 235 additions and 104 deletions

View File

@ -115,7 +115,7 @@
<label class="col-sm-4 col-md-2 control-label req">수강료/정원</label>
<div class="col-sm-8 col-md-10">
정회원 : @Html.TextBoxFor(m => m.CM.infee, new { @class = "form-control disp-init int text-right", @style = "width: 150px;", @maxlength = "12" })
&nbsp;&nbsp;&nbsp;&nbsp;비회원 : @Html.TextBoxFor(m => m.CM.outfee, new { @class = "form-control disp-init int text-right", @style = "width: 150px;", @maxlength = "12" })
<div style="display:none">&nbsp;&nbsp;&nbsp;&nbsp;비회원 : @Html.TextBoxFor(m => m.CM.outfee, new { @class = "form-control disp-init int text-right", @style = "width: 150px;", @maxlength = "12" })</div>
&nbsp;&nbsp;&nbsp;&nbsp;정원 : @Html.TextBoxFor(m => m.CM.quota, new { @class = "form-control disp-init int text-right", @style = "width: 150px;", @maxlength = "6" })
</div>
</div>
@ -309,8 +309,7 @@
$("#pcgno").on("change", function () {
$("#CM_cgno option:gt(0)").remove();
if ($(this).val() != "") {
//capp("/acommon/cgget", { pcgno: $(this).val() }, "cbcgget")
loadlegal($(this).val());
capp("/acommon/cgget", { pcgno: $(this).val() }, "cbcgget");
}
});
if ('@Model.CM.isrefund' == '0') {
@ -329,12 +328,6 @@
});
function loadlegal(cgno) {
capp("/acommon/cgget", { cgno: cgno }, "renderlegal");
//if ($("#pcgno option:checked").text() == "건설기술진흥법교육") {
// $("#divLegalEdu").show();
//}
//else {
// $("#divLegalEdu").hide();
//}
}
function renderlegal() {
if (capResult.code == "1000") {
@ -346,15 +339,16 @@
}
}
}
@*function cbcgget() {
function cbcgget() {
binddatacheck("CM_cgno");
if ($("#pcgno").val() == "@(Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).FirstOrDefault())") {
loadlegal($("#pcgno").val());
@*if ($("#pcgno").val() == "@(Model.CGs.Where(w=>w.cgcode==ViewBag.OffCode).Select(w=>w.cgno).FirstOrDefault())") {
$("#keyword").attr("style", "");
} else {
$("#keyword").attr("style", "display:none;");
$("#keyword").find("input").val("");
}
}*@
}*@
}
var viewidxname = '@(Model.viewidxname)';
function save() {
setv("CM_usernos", getliv("cmprdatabox"));

View File

@ -109,6 +109,7 @@ namespace NP.Base.Controllers
[ValidateInput(false)]
public JsonResult CMSave(VMCM vm)
{
vm.CM.outfee = vm.CM.infee; //영남은 비회원가격 없이 회원가격으로 통일 2020-11-16
if(vm.CM.ismaster == 0)
{
vm.CM.retime = Convert.ToDateTime(vm.CM.retimeymd + " 23:59:59");

View File

@ -661,6 +661,18 @@
<isNotNull property="rstatus" prepend="and">a.rstatus=#rstatus#</isNotNull>
</dynamic>
</select>
<select id="pay.mypayrfdinfo" parameterClass="long" resultClass="payrfd">
select
a.rfdno,a.payno,a.rtext,a.bankname
,CAST(AES_DECRYPT(UNHEX(a.bankno), <include refid="sql.digest"></include>) AS char) bankno
,CAST(AES_DECRYPT(UNHEX(a.rphone), <include refid="sql.digest"></include>) AS char) rphone
,a.bankowner,a.isowner,a.rstatus,a.statustime,a.ramt,a.rreason,a.ruser,a.fgnor,a.fgnob,a.rback,a.cdt,a.udt,a.cno,a.uno,a.uip
from payrfd a
<dynamic prepend="where">
<isNotNull property="payno" prepend="and">a.payno=#payno#</isNotNull>
</dynamic>
order by a.cdt desc
</select>
<select id="pay.paytax.fornew" parameterClass="hashtable" resultClass="paytax">
select a.payno,a.isgroup,a.ptype,a.ispg
,ua.asname,ua.ceoname,ua.brno,ua.grno,ua.btype,ua.bkind

View File

@ -244,6 +244,10 @@ namespace NP.FO.Controllers
}
vm.PayItems = Dao.Get<PayItem>("pay.mypayitem", new System.Collections.Hashtable() { { "userno", SUserInfo.UserNo }, { "payno", vm.payno } });
vm.intval3 = Dao.Get<PayRfd>("pay.mypayrfd", new System.Collections.Hashtable() { { "payno", vm.Pay.payno },{ "rstatus", 0} }).Count();
if (vm.intval3 > 0)
{
vm.PayRfd = Dao.Get<PayRfd>("pay.mypayrfdinfo", new System.Collections.Hashtable() {{ "payno", vm.payno } }).FirstOrDefault();
}
return View(vm);
}
public ActionResult QNAs(VMCC vm)

View File

@ -68,67 +68,6 @@
}
</tbody>
</table>
<table class="bskCost">
<thead>
<tr>
<th>주문금액</th>
<th>배송비</th>
<th>최종 결제금액</th>
</tr>
</thead>
<tbody>
<tr>
<td>@((Model.Pay.payamt - Model.Pay.deliamt).ToString("#,0"))원</td>
<td><div>@(Model.Pay.deliamt.ToString("#,0"))원</div></td>
<td><b>@Model.Pay.payamt.ToString("#,0")</b><span>원</span></td>
</tr>
</tbody>
</table>
@if (Model.Pay.isgroup == 1)
{
<h4 class="bskTitle">교육생 정보</h4>
foreach (var d in Model.PayItems.Where(w => w.ptype == 0))
{
<div class="odrInfo">
<h5>@d.username @d.ccpositionname (@(d.isassignuser == 1 ? "자사근로자" : "타사근로자"))</h5>
<ul>
<li>@d.emailhide @(d.telno ?? d.mobile)</li>
<li>@(string.IsNullOrEmpty(d.depart) ? "" : string.Format("{0} | ", d.depart)) 공정거래업무경력 : @(d.kfcfyear)년</li>
<li>교육이력 : @d.edusname</li>
</ul>
</div>
}
}
else
{
<h4 class="bskTitle">교육생 정보</h4>
var u = Model.PayItems.Where(w => w.ptype == 0 || w.ptype == 1 || w.ptype == 4).First();
<div class="odrInfo">
<h5>@u.username @u.ccpositionname (@(u.isassignuser == 1 ? "자사근로자" : "타사근로자"))</h5>
<ul>
<li>@u.emailhide @(u.telno ?? u.mobile)</li>
<li>@(string.IsNullOrEmpty(u.depart) ? "" : string.Format("{0} | ", u.depart))공정거래업무경력 : @(u.kfcfyear)년</li>
<li>교육이력 : @u.edusname</li>
</ul>
</div>
}
@if (Model.Pay.isdvr == 1)
{
<h4 class="bskTitle">배송지 정보</h4>
<table class="odrTable">
@if (Model.Pay.isdvr2 == 1)
{
<tr><th>이름</th><td>@Model.Pay.rcvname</td></tr>
<tr><th>연락처</th><td>@Model.Pay.mobile</td></tr>
<tr><th>이메일</th><td>@Model.Pay.email</td></tr>
}
<tr><th>배송방식</th><td><a href="#" onclick="viewdvr(@(Model.Pay.isdvr2), '@(Model.Pay.dvrcode??"")')">@(Model.Pay.isdvr2 == 1 ? "택배" : "방문수령") <span>(@(string.IsNullOrEmpty(Model.Pay.dvrcode) ? Model.Pay.isdvr2==1 ? "배송대기중" : "미수령" : Model.Pay.isdvr2 == 1 ? "배송완료" : "수령완료"))</span></a></td></tr>
@if (Model.Pay.isdvr2 == 1)
{
<tr><th>주소</th><td>@Model.Pay.post @Model.Pay.address1 @Model.Pay.address2</td></tr>
}
</table>
}
<h4 class="bskTitle">결제 정보</h4>
<table class="odrTable">
<tr><th>구매금액</th><td>@Model.Pay.payamt.ToString("#,0")원</td></tr>
@ -143,28 +82,56 @@ else
</tr>
<tr>
<th>주문상태</th>
<td><b>@Model.Pay.pstatusname</b> @Html.Raw(Model.Pay.ispg == 1 && Model.Pay.rstatus == 0 && Model.Pay.pstatus == 1 && Model.Pay.ptype == 1 ? "<a href=\"#\" onclick=\"viewtax()\" class=\"odrRcpt\">영수증 출력</a>" : "")</td>
<td><b>@Model.Pay.pstatusname</b> @Html.Raw(Model.Pay.ispg == 1 && Model.Pay.rstatus == 0 && Model.Pay.pstatus == 1 && Model.Pay.ptype == 1 ? "<a href=\"#\" onclick=\"viewtax()\" class=\"odrRcpt\" style=\"color:white\">영수증 출력</a>" : "")</td>
</tr>
@if (Model.intval3 > 0)
{
<tr>
<th>환불상태</th>
<td><b>환불요청 중</b></td>
</tr>
}
</table>
@if (Model.intval3 > 0)
{
<h4 class="bskTitle">환불 정보</h4>
<table class="odrTable">
<tr>
<th>환불 신청일</th>
<td>@(Convert.ToDateTime(Model.PayRfd.cdt).ToString("yyyy-MM-dd HH:mm"))</td>
</tr>
<tr>
<th>환불상태</th>
<td>
@if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob == null || Model.PayRfd.fgnor == null))
{
<label>서류접수대기</label> <a href="#" style="color:blue">[서류등록/취소]</a> <a href="#" style="color:blue">[신청서출력]</a>
}
else if (Model.PayRfd.rstatus == 0 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null))
{
<label>접수완료</label><label id="rfdDate">(@Model.PayRfd.udt) 서류심사중</label> <a href="#" style="color:blue">[상세내용조회/취소]</a> <a href="#" style="color:blue">[신청서출력]</a>
}
else if (Model.PayRfd.rstatus == 1 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null))
{
<label>환불불가</label><label id="rfdDate">(@Model.PayRfd.udt)</label> <a href="#" style="color:blue">[상세내용조회]</a> <a href="#" style="color:blue">[신청서출력]</a>
}
else if (Model.PayRfd.rstatus == 2 && (Model.PayRfd.fgnob != null && Model.PayRfd.fgnor != null))
{
<label>환불완료</label><label id="rfdDate">(@Model.PayRfd.udt)</label> <a href="#" style="color:blue">[상세내용조회]</a> <a href="#" style="color:blue">[신청서출력]</a>
}
</td>
</tr>
</table>
}
<ul class="bskBtn col1">
<li><a href="/My/Paies" class="bk">결제현황 이동</a></li>
@if (Model.Pay.ispg == 1 && Model.Pay.rstatus == 0 && Model.Pay.pstatus == 1 && Model.Pay.ptype == 1)
@if (Model.Pay.ispg != 1 && Model.Pay.rstatus == 0 && Model.Pay.pstatus == 1 && Model.Pay.ptype == 1)
{
<li><a href="#" onclick="calltax()" class="bk">계산서요청</a></li>
if (Convert.ToDateTime(Convert.ToDateTime(Model.Pay.payoktime).ToString("yyyy-MM-dd")) <= Convert.ToDateTime(DateTime.Now.AddMonths(1).ToString("yyyy-MM-10")))
{
<li><a href="#" onclick="calltax()" class="bk">계산서요청</a></li>
}
else
{
<li><a href="#" onclick="alert('계산서 요청 기한이 지나 신청이 불가능합니다.'); return;" class="bk">계산서요청</a></li>
}
}
else
{
<li><a href="#" onclick="calltax()" class="bk">계산서요청</a></li>
}
@if (Model.Pay.pstatus == 1 && Model.Pay.rstatus != 2 && Model.PayItems.Where(w => w.rstatus == 0).Count() > 0 )
@if (Model.Pay.pstatus == 1 && Model.Pay.rstatus != 2 && Model.PayItems.Where(w => w.rstatus == 0).Count() > 0)
{
<li><a href="#" onclick="refund()" class="bk">환불요청</a></li>
}
@ -284,12 +251,12 @@ else
<tr><th>총결제액/입금일</th><td>@(Model.Pay.payamt.ToString("#,0"))원 (@(Model.Pay.payoktime == null ? "" : Model.Pay.payoktime.Value.ToString("yy-MM-dd HH:mm")))</td></tr>
<tr><th>기존환불금액</th><td id="prerefundamt">0원</td></tr>
<tr><th>결제방법</th><td>@Model.Pay.ptypename (@(Model.Pay.ispg == 1 ? "PG" : "현장결제"))</td></tr>
<tr><th>상품선택</th><td><ul class="odrChk" id="pibox2"></ul></td></tr>
<tr><th>요청강좌</th><td><ul class="odrChk" id="pibox2"></ul></td></tr>
<tr><th>환불요청금액</th><td id="refundamt">0원</td></tr>
</table>
<form id="mform2" method="post">
<input type="hidden" name="pinos" id="pinos2" />
<input type="hidden" name="payno" id="payno"value="@Model.Pay.payno" />
<input type="hidden" name="payno" id="payno" value="@Model.Pay.payno" />
<input type="hidden" name="ptype" id="ptype" value="@Model.Pay.ptype" />
<h4 class="bskTitle">환불정보</h4>
<table class="odrTable th150">
@ -310,27 +277,45 @@ else
<td>
<input type="hidden" name="isowner" id="isowner" />
<ul class="bakRadio">
<li><input type="radio" name="isowners" id="isowner1" /><label for="isowner1">예</label></li>
<li><input type="radio" name="isowners" id="isowner1" checked /><label for="isowner1">예</label></li>
<li><input type="radio" name="isowners" id="isowner0" /><label for="isowner0">아니오</label></li>
</ul>
</td>
</tr>
<tr class="pd5">
<th>환불요청사유</th>
<td><input type="text" name="rtext" id="rtext" value="" /></td>
<th>담당자</th>
<td><input type="text" name="ruser" id="ruser" value="" /></td>
</tr>
<tr class="pd5">
<th>담당자연락처</th>
<td><input type="text" name="rphone" id="rphone" value="" /></td>
</tr>
<tr>
<th>환불규정</th>
<th>환불요청사유</th>
<td>
<div class="odrRfnd">
<span>펼치기</span>
<div>평생교육법 제28조 제4항에 따른 학습비의 반환사유가 발생할 때에는 평생교육시행령 23조의 별표 3의 반환기준에 따라 학습 비 등을 반환사유가 발생한 날부터 5일 이내에 반환하여야 한다.</div>
</div>
<ul class="bakRadio">
<li><input type="radio" name="rreason" id="rreason1" checked="checked" value="0" /><label for="rreason1">교육취소</label></li>
<li><input type="radio" name="rreason" id="rreason2" value="1" /><label for="rreason2">과정변경</label></li>
<li><input type="radio" name="rreason" id="rreason3" value="2" /><label for="rreason3">과입금</label></li>
<li><input type="radio" name="rreason" id="rreason4" value="9" /><label for="rreason4">기타</label></li>
</ul>
</td>
</tr>
<tr class="pd5">
<th>메모</th>
<td>
<textarea name="rtext" id="rtext" rows="4" style="border:1px solid #cbcbcb; width:100%"></textarea>
</td>
</tr>
</table>
<p class="odrpDesc" style="color:red">
※ 위 신청서를 작성한 이후, 신청서를 날인/스캔하여 통장사본과 같이 업로드를 해주셔야 합니다.
</p>
<h4 class="bskTitle">환불규정</h4>
<div>평생교육법 제28조 제4항에 따른 학습비의 반환사유가 발생할 때에는 평생교육시행령 23조의 별표 3의 반환기준에 따라 학습 비 등을 반환사유가 발생한 날부터 5일 이내에 반환하여야 한다.</div>
<br />
</form>
<p class="odrpDesc">※ 단체신청한 강좌일 경우, 신청을 취소하려는 교육생을 추가로 명시해주셔야 합니다.</p>
<ul class="odrChk"><li><input type="checkbox" id="chkrefund" /><label for="chkrefund">영남건설기술교육원 환불규정에 동의하고 수강취소 및 환불을 요청합니다.</label></li></ul>
<ul class="odrPopBtn col2">
<li><a href="#" class="bk" onclick="save2()">환불요청</a></li>
@ -342,6 +327,110 @@ else
</div>
</div>
</div>
<div class="mpgPop mpgPopFull" style="display:none;" id="pop3">
<div>
<div>
<div class="mpgPopWrap wdth750">
<div class="mpgPopTitle">
<h5>취소/환불요청</h5>
<a href="javascript:mpgPopClose();"></a>
</div>
<div class="mpgPopScroll">
<div class="odrPop pop1box">
<h4 class="bskTitle">상품선택</h4>
<table class="odrTable th150">
<tr><th>총결제액/입금일</th><td>@(Model.Pay.payamt.ToString("#,0"))원 (@(Model.Pay.payoktime == null ? "" : Model.Pay.payoktime.Value.ToString("yy-MM-dd HH:mm")))</td></tr>
<tr><th>기존환불금액</th><td id="prerefundamt">0원</td></tr>
<tr><th>결제방법</th><td>@Model.Pay.ptypename (@(Model.Pay.ispg == 1 ? "PG" : "현장결제"))</td></tr>
<tr><th>요청강좌</th><td><ul class="odrChk" id="pibox2"></ul></td></tr>
<tr><th>환불요청금액</th><td id="refundamt">0원</td></tr>
</table>
<form id="mform3" method="post">
<input type="hidden" name="pinos" id="pinos2" />
<input type="hidden" name="payno" id="payno" value="@Model.Pay.payno" />
<input type="hidden" name="ptype" id="ptype" value="@Model.Pay.ptype" />
<h4 class="bskTitle">환불정보</h4>
<table class="odrTable th150">
<tr class="pd5" style="@(Model.Pay.ptype == 1 ? "display:none;":"")">
<th>환불은행</th>
<td>@Model.PayRfd.bankname</td>
</tr>
<tr class="pd5" style="@(Model.Pay.ptype == 1 ? "display:none;":"")">
<th>예금주</th>
<td>@Model.PayRfd.bankowner</td>
</tr>
<tr class="pd5" style="@(Model.Pay.ptype == 1 ? "display:none;":"")">
<th>환불계좌</th>
<td>@Model.PayRfd.bankno</td>
</tr>
<tr style="@(Model.Pay.ptype == 1 ? "display:none;":"")">
<th>개인계좌여부</th>
<td>
@if (Model.PayRfd.isowner == 1)
{
<label>예</label>
}
else
{
<label>아니오</label>
}
</td>
</tr>
<tr class="pd5">
<th>담당자</th>
<td>@Model.PayRfd.ruser</td>
</tr>
<tr class="pd5">
<th>담당자연락처</th>
<td>@Model.PayRfd.rphone</td>
</tr>
<tr>
<th>환불요청사유</th>
<td>
@Model.PayRfd.rreasonname
</td>
</tr>
<tr class="pd5">
<th>메모</th>
<td>
@Model.PayRfd.rtext
</td>
</tr>
<tr>
<td>
<p class="odrpDesc" style="color:red">
※ 내용 변경을 원하실 경우 신청을 취소하고 다시 환불요청해주셔야 합니다.
</p>
</td>
</tr>
</table>
<h4 class="bskTitle">첨부서류</h4>
<table class="odrTable th150">
<tr class="pd5" style="@(Model.Pay.ptype == 1 ? "display:none;":"")">
<th>환불은행</th>
<td>@Model.PayRfd.bankname</td>
</tr>
</table>
</form>
<p class="odrpDesc" style="color:red">
※ 위 신청서를 작성한 이후, 신청서를 날인/스캔하여 통장사본과 같이 업로드를 해주셔야 합니다.
</p>
<h4 class="bskTitle">환불규정</h4>
<div>평생교육법 제28조 제4항에 따른 학습비의 반환사유가 발생할 때에는 평생교육시행령 23조의 별표 3의 반환기준에 따라 학습 비 등을 반환사유가 발생한 날부터 5일 이내에 반환하여야 한다.</div>
<br />
<ul class="odrChk"><li><input type="checkbox" id="chkrefund" /><label for="chkrefund">영남건설기술교육원 환불규정에 동의하고 수강취소 및 환불을 요청합니다.</label></li></ul>
<ul class="odrPopBtn col2">
<li><a href="#" class="bk" onclick="">환불 최종요청</a></li>
<li><a href="#" class="bk" onclick="">환불신청 취소</a></li>
<li><a href="#" onclick="mpgPopClose()">닫기</a></li>
</ul>
</div><!-- clsPopCont -->
</div>
</div><!-- clsPopWrap -->
</div>
</div>
</div>
@section scriptsHeader{
}
@ -495,9 +584,7 @@ else
}
}
function refund() {
if (@Model.intval3 > 0) {
msg("접수중입니다.");
} else if ('@(Model.Pay.rstatus < 2 && Model.Pay.pstatus == 1?1:0)' == '1') {
if ('@(Model.Pay.rstatus < 2 && Model.Pay.pstatus == 1?1:0)' == '1') {
$("#pibox2").html("");
sett("prerefundamt", "0원");
capp("/fcommon/payrefundget", { payno: @Model.Pay.payno}, "cbpayrefundget");
@ -530,7 +617,9 @@ else
else if ('@(Model.Pay.ptype)' != '1' && check("bankowner", null, "예금주를 입력해주세요.")) { }
else if ('@(Model.Pay.ptype)' != '1' && check("bankno", null, "환불계좌번호를 입력해주세요.")) { }
else if ('@(Model.Pay.ptype)' != '1' && $("input[name='isowners']:checked").length < 1) { msg("개인계좌여부를 선택해주세요."); }
else if (check("rtext", null, "환불요청사유를 입력해주세요.")) { }
else if (check("ruser", null, "담당자를 입력해주세요.")) { }
else if (check("rphone", null, "담당자연락처를 입력해주세요.")) { }
else if (check("rtext", null, "메모를 입력해주세요.")) { }
else if ($("#chkrefund:checked").length < 1) { msg("환불규정에 동의 후 요청해주세요."); }
else {
setv("isowner", $("#isowner1").prop("checked") ? 1 : 0);

View File

@ -941,6 +941,36 @@ namespace NP.Model
public String telno { get; set; }
public String mobile{ get; set; }
public int payamt { get; set; }
/// <summary>
/// 담당자
/// </summary>
public String ruser { get; set; }
/// <summary>
/// 담당자 연락처
/// </summary>
public String rphone { get; set; }
/// <summary>
/// 환불사유
/// </summary>
public int? rreason { get; set; }
/// <summary>
/// 0:교육취소;1:과정변경;2:과입금;9:기타
/// </summary>
public String rreasonname
{
get
{
return rstatus == 0 ? "교육취소" : rstatus == 1 ? "과정변경" : rstatus == 2 ? "과입금" : "기타";
}
}
/// <summary>
/// 환불신청서
/// </summary>
public long? fgnor { get; set; }
/// <summary>
/// 환불통장사본
/// </summary>
public long? fgnob { get; set; }
}
//[Serializable]

View File

@ -22,6 +22,7 @@ namespace NP.Model
/// </summary>
public String items { get; set; }
public Pay Pay { get; set; }
public PayRfd PayRfd { get; set; }
public IList<Pay> Paies { get; set; }
public IList<PayItem> PayItems { get; set; }
public IList<PayRfd> PayRfds { get; set; }