This commit is contained in:
parent
02625f336f
commit
f85626b127
|
|
@ -607,8 +607,8 @@ namespace NP.BO.Controllers
|
|||
if (vm.isexceldown == 1)
|
||||
{
|
||||
return ExportExcel(
|
||||
new String[] { "결제번호", "신청자이름", "ID", "회원구분", "회사명", "상품구분", "상품유형","환급여부", "상품명", "교육일정", "결제금액", "결제방법", "입금금액", "환불금액", "신청일", "입금일", "결제상태"},
|
||||
new String[] { "payno", "username", "userid", "isjoinname", "asname", "ptypename","cshapename" ,"isrebatename", "itemname", "stimeymd", "payamt", "pptypename", "payamt", "refundamt", "cdtymd", "payymd", "pstatusname2"},
|
||||
new String[] { "결제번호", "신청자이름", "ID", "회원구분", "회사명", "상품구분", "상품유형","환급여부", "상품명", /*"교육일정",*/ "결제금액", "결제방법", "입금금액", "환불금액", "신청일", "입금일", "결제상태"},
|
||||
new String[] { "payno", "username", "userid", "isjoinname", "asname", "ptypename","cshapename" ,"isrebatename", "itemname", /*"stimeymd",*/ "payamt", "pptypename", "payamt", "refundamt", "cdtymd", "payymd", "pstatusname2"},
|
||||
vm.PayItems,
|
||||
"ProductSales_"+DateTime.Now.Year+DateTime.Now.Month+DateTime.Now.Day);
|
||||
}
|
||||
|
|
@ -645,6 +645,16 @@ namespace NP.BO.Controllers
|
|||
vm.Pay = Dao.Get<Pay>("cr.pay.forrfd", vm.payno).First();
|
||||
vm.PayItems = Dao.Get<PayItem>("cr.payitem.forrfd", vm.payno);
|
||||
vm.PayRfds = Dao.Get<PayRfd>("cr.payrfditems2", vm.rfdno);
|
||||
vm.FileList = new List<File>() { };
|
||||
vm.FileList2 = new List<File>() { };
|
||||
if ((vm.PayRfds.First().fgnor??0) > 0)
|
||||
{
|
||||
vm.FileList = GetFiles(vm.PayRfds.First().fgnor.Value);
|
||||
}
|
||||
if ((vm.PayRfds.First().fgnob??0) > 0)
|
||||
{
|
||||
vm.FileList2 = GetFiles(vm.PayRfds.First().fgnob.Value);
|
||||
}
|
||||
return View(vm);
|
||||
}
|
||||
public ActionResult refundprint(VMPay vm)
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@
|
|||
@Html.HiddenFor(m => m.stringval5)
|
||||
<label><input type="checkbox" name="pstatus" value="21" @(sv3.Contains(",21,") ? "checked" : "") /> 결제대기</label>
|
||||
<label><input type="checkbox" name="pstatus" value="22" @(sv3.Contains(",22,") ? "checked" : "") /> 입금대기</label>
|
||||
<label><input type="checkbox" name="pstatus" value="1" @(sv3.Contains(",1,") ? "checked" : "") /> 결제완료</label>
|
||||
<label><input type="checkbox" name="pstatus" value="1" @(sv3.Contains(",1,") ? "checked" : "") /> 완료</label>
|
||||
<label><input type="checkbox" id="chkisrefundcall" @(Model.stringval4 != null ? "checked" : "") /> 환불요청</label>
|
||||
<label><input type="checkbox" name="rstatus" value="1" @((Model.stringval5 ?? "").Contains("1") ? "checked" : "") /> 부분환불</label>
|
||||
<label><input type="checkbox" name="rstatus" value="2" @((Model.stringval5 ?? "").Contains("2") ? "checked" : "") /> 전액환불</label>
|
||||
<label><input type="checkbox" name="pstatus" value="41,42,43" @(sv3.Contains(",41,") ? "checked" : "") /> 결제취소</label>
|
||||
<label><input type="checkbox" name="pstatus" value="41,42,43" @(sv3.Contains(",41,") ? "checked" : "") /> 취소</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
@ -49,10 +49,10 @@
|
|||
<label><input type="checkbox" name="ptype" value="1" @(sv7.Contains(",1,") ? "checked" : "") /> 신용카드</label>
|
||||
<label><input type="checkbox" name="ptype" value="2" @(sv7.Contains(",2,") ? "checked" : "") /> 계좌이체</label>
|
||||
<label><input type="checkbox" name="ptype" value="3" @(sv7.Contains(",3,") ? "checked" : "") /> 가상계좌</label>
|
||||
<label><input type="checkbox" name="ptype" value="4" @(sv7.Contains(",4,") ? "checked" : "") /> 현금</label>
|
||||
<label><input type="checkbox" name="ptype" value="5" @(sv7.Contains(",5,") ? "checked" : "") /> 현금+카드</label>
|
||||
<label><input type="checkbox" name="ptype" value="4" @(sv7.Contains(",4,") ? "checked" : "") /> 무통장입금</label>
|
||||
@*<label><input type="checkbox" name="ptype" value="5" @(sv7.Contains(",5,") ? "checked" : "") /> 현금+카드</label> *@
|
||||
<label><input type="checkbox" name="ptype" value="6" @(sv7.Contains(",6,") ? "checked" : "") /> 무료</label>
|
||||
<label><input type="checkbox" name="ptype" value="9" @(sv7.Contains(",9,") ? "checked" : "") /> 위탁계약</label>
|
||||
@*<label><input type="checkbox" name="ptype" value="9" @(sv7.Contains(",9,") ? "checked" : "") /> 위탁계약</label> *@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
@ -61,24 +61,24 @@
|
|||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":미수상태;1:미수결제;2:미수입금" }, { "name", "stringval18" }, { "selected", Model.stringval18 } })
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@*<tr>
|
||||
<th>회사정보</th>
|
||||
<td class="text-left">
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":회원구분;1:회원사;0:비회원사" }, { "name", "stringval8" }, { "selected", Model.stringval8 } })
|
||||
@Html.Partial("./Partial/Text", Model.stringval9, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval9", Value = Model.stringval9, PH = "회사명 검색", CssClass = "" }))
|
||||
@Html.Partial("./Partial/Text", Model.stringval10, Helpers.DicText(new NP.Model.TextDic() { Name = "stringval10", Value = Model.stringval10, PH = "사업자등록번호 검색", CssClass = "" }))
|
||||
</td>
|
||||
</tr>
|
||||
</tr>*@
|
||||
<tr>
|
||||
<th>결제상품</th>
|
||||
<td class="text-left">
|
||||
@Html.HiddenFor(m => m.stringval14)
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":상품구분;0:강좌;1:패키지;2:교재;3:시험;4:자격증강좌" }, { "name", "stringval11" }, { "selected", Model.stringval11 } })
|
||||
@*@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":상품구분;0:강좌;1:패키지;2:교재;3:시험;4:자격증강좌" }, { "name", "stringval11" }, { "selected", Model.stringval11 } })*@
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":상품유형;0:온라인;1:오프라인;2:혼합" }, { "name", "stringval12" }, { "selected", Model.stringval12 } })
|
||||
@Html.Partial("./Partial/Select", Model.CGs, new ViewDataDictionary { { "name", "stringval13" }, { "selected", Model.stringval13 }, { "df", ":-과정분류" } })
|
||||
<label><input type="checkbox" name="rebate" value="1" @(sv14.Contains(",1,") ? "checked" : "") /> 환급</label>
|
||||
@*<label><input type="checkbox" name="rebate" value="1" @(sv14.Contains(",1,") ? "checked" : "") /> 환급</label>
|
||||
<label><input type="checkbox" name="rebate" value="0" @(sv14.Contains(",0,") ? "checked" : "") /> 비환급</label>
|
||||
<label><input type="checkbox" name="stringval17" value="1" @(Model.stringval17 != null ? "checked" : "") /> 단체결제</label>
|
||||
<label><input type="checkbox" name="stringval17" value="1" @(Model.stringval17 != null ? "checked" : "") /> 단체결제</label> *@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
@ -108,6 +108,7 @@
|
|||
<th width="100">결제번호</th>
|
||||
<th width="200">신청자(ID)<br />회사명</th>
|
||||
<th>상품명</th>
|
||||
<th>수강일</th>
|
||||
<th>결제금액<br />(결제방법)</th>
|
||||
<th>입금금액<br />(환불금액)</th>
|
||||
<th>신청/승인일</th>
|
||||
|
|
@ -121,15 +122,16 @@
|
|||
<tr>
|
||||
<td><input type="checkbox" class="autocheck" value="@d.userno" data-userno="@d.userno" /></td>
|
||||
<td>@d.payno</td>
|
||||
<td>@string.Format("{0}({1}){2}", d.username, d.userid, d.isgroup == 1 && d.ccount > 1 ? string.Format(" 외 {0}명", d.ccount - 1) : "")<br /><span class="isjoin@(d.isjoin)">@(d.isjoin == 1 ? "정" : "비")</span>]@(d.asname ?? "-")</td>
|
||||
<td>@string.Format("{0}({1}){2}", d.username, d.userid, d.isgroup == 1 && d.ccount > 1 ? string.Format(" 외 {0}명", d.ccount - 1) : "")<br />@*<span class="isjoin@(d.isjoin)">@(d.isjoin == 1 ? "정" : "비")</span>]*@@(d.asname ?? "-")</td>
|
||||
<td class="link">
|
||||
<a href="#" onclick="gopay(@d.isexamready, @d.payno, @d.userno)">
|
||||
<span class="piptype piptype@(d.ptype)">@d.ptypename</span>
|
||||
@*<span class="piptype piptype@(d.ptype)">@d.ptypename</span>*@
|
||||
@Html.Raw(d.ptype == 0 || d.ptype == 1 || d.ptype == 4 ? string.Format(" <span class=\"cshape\">{0}</span>", d.cshapename) : "")
|
||||
@Html.Raw(d.isrebate == 1 && (d.ptype == 0 || d.ptype == 1 || d.ptype == 4) ? " <span class=\"isrebate\">환급</span>" : "")
|
||||
@*@Html.Raw(d.isrebate == 1 && (d.ptype == 0 || d.ptype == 1 || d.ptype == 4) ? " <span class=\"isrebate\">환급</span>" : "")*@
|
||||
@d.itemname@(d.ccount > 1 ? string.Format(" 외 {0} 건", d.ccount - 1) : "")
|
||||
</a>
|
||||
</td>
|
||||
<td>@d.sstime.ToString("yy-MM-dd")~<span style="display: inline-block">@d.setime.ToString("yy-MM-dd")</span></td>
|
||||
<td>@d.payamt.ToString("#,0")<br />(@(d.pptype == 0 ? "미정" : d.pptypename))</td>
|
||||
<td class="link" style="text-align: right !important;"><a href="#" onclick="gorefund(@d.payno, @d.pstatus)">@(d.pstatus == 1 ? d.payamt.ToString("#,0") : "0")<br /><span class="red">(@(d.refundamt.ToString("#,0")))</span></a></td>
|
||||
<td>@d.cdtymd</td>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<section class="panel panel-default">
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 환불요청이력<span class=""></span></strong></header>
|
||||
<table class="regtable" style="margin-top: 0;">
|
||||
<thead><tr><th>요청일</th><th>상품</th><th>환불사유</th><th>접수상태</th><th>상세보기</th><th>요청서</th></tr></thead>
|
||||
<thead><tr><th>요청일</th><th>상품</th><th>환불사유</th><th>접수상태</th><th>상세보기</th>@*<th>요청서</th>*@</tr></thead>
|
||||
<tbody>
|
||||
@foreach (var rfdno in Model.PayRfds.Select(s => s.rfdno).Distinct())
|
||||
{
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
<td class="left">@r.rtext</td>
|
||||
<td class="text-center">@r.rstatusname</td>
|
||||
<td class="link text-center"><a href="#" class="btn btn-xxs btn-default" onclick="viewrfd(0, @r.rfdno)">조회</a></td>
|
||||
<td class="link text-center"><a href="#" class="btn btn-xxs btn-default" onclick="viewrfd(1, @r.rfdno)">인쇄</a></td>
|
||||
@*<td class="link text-center"><a href="#" class="btn btn-xxs btn-default" onclick="viewrfd(1, @r.rfdno)">인쇄</a></td>*@
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
|
|
@ -72,11 +72,11 @@
|
|||
<div style="padding: 5px 10px; text-align: right;">
|
||||
<label><input type="checkbox" id="iscanceled" @(Model.Pay.rstatus > 0 ? "disabled":"") /> 수동취소완료</label>
|
||||
<a href="#" class="btn btn-primary" onclick="save();">신청과정 환불상태 저장</a><br />
|
||||
<p style="color:red;">※ 이니시스 상점에서 직접 취소한 경우에 수동취소완료를 체크해주세요.</p>
|
||||
<p style="color:red;">※ LG유플러스 상점에서 직접 취소한 경우에 수동취소완료를 체크해주세요.</p>
|
||||
</div>
|
||||
}
|
||||
</section>
|
||||
<section class="panel panel-default">
|
||||
<section class="panel panel-default" style="display: none;">
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 교재 및 기타<span class=""></span></strong></header>
|
||||
<table class="regtable" style="margin-top: 0;">
|
||||
<colgroup>
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
}
|
||||
else if (p.ptype == 3 && p.pstatus == 22 && p.ispg == 1 && p.isunpay == 0)
|
||||
{
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "1:신용카드;2:계좌이체;3:가상계좌;4:현금;5:현금+카드;6:무료;9:위탁계약" }, { "name", "ptype2" }, { "style", "width:100%;" },{ "selected", Model.Pay.ptype} })
|
||||
@Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", "1:신용카드2:계좌이체;3:가상계좌;4:무통장입금;6:무료" }, { "name", "ptype2" }, { "style", "width:100%;" },{ "selected", Model.Pay.ptype} })
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
@:@(p.payoktime == null ? "" : p.payoktime.Value.ToString("yyyy-MM-dd HH:mm:ss"))
|
||||
}
|
||||
</td>
|
||||
<th>이니시스코드</th>
|
||||
<th>LG유플러스 코드</th>
|
||||
<td>@(p.ispg == 0 ? "수동결제" : p.pgkey)</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -3,64 +3,68 @@
|
|||
Layout = "~/Views/Shared/_PopupLayout.cshtml";
|
||||
var r = Model.PayRfds.First();
|
||||
}
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 상품선택<span class=""></span></strong></header>
|
||||
<table class="regtable" style="margin-top: 0;">
|
||||
<colgroup><col style="width: 150px" /><col /></colgroup>
|
||||
<tr><th>신청기관</th><td>@r.asname</td></tr>
|
||||
<tr><th>신청자</th><td>@Html.Raw(string.Format("{0}({1})<br />Tel: {2} (Mobile: {3})", r.username, r.userid, r.telno, r.mobile))</td></tr>
|
||||
<tr>
|
||||
<th>결제상품명</th>
|
||||
<td>
|
||||
<ul>
|
||||
@foreach (var d in Model.PayItems)
|
||||
{
|
||||
<li style="margin-bottom: 5px; font-weight: bold;">@d.itemname @(Model.Pay.isgroup == 1 && d.ptype != 2 ? d.username:"")(@d.payamt.ToString("#,0")원)<br /></li>
|
||||
}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><th>결제금액</th><td>@Model.Pay.payamt.ToString("#,0")원</td></tr>
|
||||
@if (Model.Pay.refundamt > 0)
|
||||
{
|
||||
<tr><th>환불완료금액</th><td>@Model.Pay.refundamt.ToString("#,0")원</td></tr>
|
||||
}
|
||||
<tr><th>환불요청일</th><td>@r.cdtymdhms</td></tr>
|
||||
<tr>
|
||||
<th>환불요청상품</th>
|
||||
<td>
|
||||
<ul>
|
||||
@foreach (var d in Model.PayRfds)
|
||||
{
|
||||
<li style="margin-bottom: 5px; font-weight: bold;">@d.itemname @(Model.Pay.isgroup == 1 && d.ptype != 2 ? d.username : "")(@d.payamt.ToString("#,0")원)</li>
|
||||
}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><th>환불요청사유</th><td>@r.rtext</td></tr>
|
||||
<tr style="@(Model.Pay.ptype==1 ? "display:none;" : "")"><th>개인계좌환불여부</th><td>@Html.Partial("./Partial/Radio", r.isowner, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "checked", r.isowner }, { "name", "isowner" } })</td>
|
||||
<tr><th>환불금액</th><td><input id="ramt" type="text" class="form-control disp-init dev int text-right" value="@((r.ramt??Model.PayRfds.Sum(s=>s.payamt)).ToString("#,0"))" />원</td></tr>
|
||||
<tr style="@(Model.Pay.ptype==1 ? "display:none;" : "")">
|
||||
<th>환불계좌</th>
|
||||
<td>
|
||||
은행명: <input id="bankname" type="text" class="form-control disp-init dev" value="@r.bankname" /><br />
|
||||
계좌주: <input id="bankowner" type="text" class="form-control disp-init dev" value="@r.bankowner" />
|
||||
계좌번호: <input id="bankno" type="text" class="form-control disp-init dev" value="@r.bankno" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr><th>접수상태</th>
|
||||
<td>
|
||||
@if (r.rstatus == 0)
|
||||
{
|
||||
@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수;2:완료;1:반려" }, { "checked", r.rstatus }, { "name", "rstatus" } })
|
||||
}
|
||||
else
|
||||
{
|
||||
@:@(r.rstatus == 1 ? "반려" : "완료")
|
||||
}
|
||||
</td></tr>
|
||||
<tr><th>총결제액/입금일</th><td>@Model.Pay.payamt.ToString("#,0")원 (@Model.Pay.payoktime.Value.ToString("yy-MM-dd HH:mm"))</td></tr>
|
||||
<tr><th>결제방법</th><td>@Model.Pay.ptypename @(Model.Pay.ispg == 1 ? "(PG)" : "")</td></tr>
|
||||
<tr><th>요청강좌</th><td>@Model.PayRfds.First().itemname (@Model.PayRfds.First().payamt.ToString("#,0")원)</td></tr>
|
||||
</table>
|
||||
<br />
|
||||
<form id="mform" name="mform">
|
||||
<input type="hidden" name="rfdno" value="@r.rfdno" />
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 환불정보<span class=""></span></strong></header>
|
||||
<table class="regtable" style="margin-top: 0;">
|
||||
<colgroup><col style="width: 150px" /><col /></colgroup>
|
||||
<tr><th>환불은행</th><td><input id="bankname" name="bankname" type="text" class="form-control disp-init dev" value="@r.bankname" /></td></tr>
|
||||
<tr><th>예금주</th><td><input id="bankowner" name="bankowner" type="text" class="form-control disp-init dev" value="@r.bankowner" /></td></tr>
|
||||
<tr><th>환불계좌</th><td><input id="bankno" name="bankno" type="text" class="form-control disp-init dev" value="@r.bankno" /></td></tr>
|
||||
<tr><th>개인계좌여부</th><td>@Html.Partial("./Partial/Radio", r.isowner, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "checked", r.isowner }, { "name", "isowner" } })</td></tr>
|
||||
<tr><th>담당자</th><td><input id="ruser" name="ruser" type="text" class="form-control disp-init dev" value="@r.ruser" /></td></tr>
|
||||
<tr><th>담당자연락처</th><td><input id="rphone" name="rphone" type="text" class="form-control disp-init dev" value="@r.rphone" /></td></tr>
|
||||
<tr><th>환불사유</th><td>@Html.Partial("./Partial/Radio", r.rreason, new ViewDataDictionary() { { "valuetext", "0:교육취소;1:과정변경;2:과입금;9:기타" }, { "checked", r.rreason }, { "name", "rreason" } })</td></tr>
|
||||
<tr><th>메모</th><td><textarea class="form-control" style="height: 80px; resize: none;" id="rtext" name="rtext">@r.rtext</textarea></td></tr>
|
||||
</table>
|
||||
<br />
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 첨부서류<span class=""></span></strong></header>
|
||||
<table class="regtable" style="margin-top: 0;">
|
||||
<colgroup><col style="width: 150px" /><col /></colgroup>
|
||||
<tr>
|
||||
<th>환불신청서</th>
|
||||
<td>
|
||||
@Html.Partial("./Partial/File", Model.FileList, new ViewDataDictionary {
|
||||
{ "name", "fgno" },{"value", 0 },{ "fname", "file"},
|
||||
{"width", null },{"folder", "Resume" },{"filecount", 5 },
|
||||
{"readmode", 1 },{"hidemode", 0 },
|
||||
{ "isimage", 0 },{ "imageid", "" },{ "dftsrc", "" },
|
||||
{ "fileext", "" }
|
||||
})
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>통장사본</th>
|
||||
<td>
|
||||
@Html.Partial("./Partial/File", Model.FileList2, new ViewDataDictionary {
|
||||
{ "name", "fgno2" },{"value", 0 },{ "fname", "file2"},
|
||||
{"width", null },{"folder", "Resume" },{"filecount", 5 },
|
||||
{"readmode", 1 },{"hidemode", 0 },
|
||||
{ "isimage", 0 },{ "imageid", "" },{ "dftsrc", "" },
|
||||
{ "fileext", "" }
|
||||
})
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<header class="panel-heading"><strong><i class="fa fa-bars"></i> 검토결과<span class=""></span></strong></header>
|
||||
<table class="regtable" style="margin-top: 0;">
|
||||
<colgroup><col style="width: 150px" /><col /></colgroup>
|
||||
<tr><th>검토상태</th><td>@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절" }, { "checked", r.rstatus }, { "name", "rstatus" } })</td></tr>
|
||||
<tr><th>검토의견</th><td><input type="text" class="form-control" id="rback" name="rback" value="@r.rback" /></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
@if (r.rstatus == 0)
|
||||
{
|
||||
<div style="padding: 5px 10px; text-align: right;"><a href="#" class="btn btn-primary" onclick="save();">저장</a></div>
|
||||
<div style="padding: 5px 10px; text-align: center"><a href="#" class="btn btn-primary" onclick="save();">저장</a></div>
|
||||
}
|
||||
<br /><br /><br />
|
||||
@section styles{
|
||||
|
|
@ -97,7 +101,7 @@
|
|||
}
|
||||
}
|
||||
function gosave() {
|
||||
capp("/acommon/payrfdsave", { rfdno: @r.rfdno, ramt: getint(val("ramt")), isowner: getrv("isowner"), bankname: val("bankname"), bankowner: val("bankowner"), bankno: val("bankno"), rstatus: getrv("rstatus") }, "cbsave");
|
||||
cap("/acommon/payrfdsave", "mform", "cbsave");
|
||||
}
|
||||
function cbsave() {
|
||||
if (capResult.code == 1000) {
|
||||
|
|
|
|||
|
|
@ -55,7 +55,23 @@
|
|||
|
||||
<!--<add key="configpath" value="Product" />-->
|
||||
<!--<add key="configpath" value="ProductDev" />-->
|
||||
<add key="configpath" value="Staging" />
|
||||
<add key="configpath" value="Staging" />
|
||||
|
||||
|
||||
<add key="lgdacomConfigPath" value="D:\3rdparti\lgdacomyicte" />
|
||||
<add key="CST_MID" value="yicte2000" />
|
||||
<!--상점아이디-->
|
||||
<add key="CST_PLATFORM" value="test" />
|
||||
<!--test, service-->
|
||||
<add key="LGD_ENCODING" value="UTF-8" />
|
||||
<add key="LGD_BACKBTN_YN" value="N" />
|
||||
<add key="LGD_CASNOTEURL" value="http://kdh.nptc.kr:8084/Account/XPayVBankMoney" />
|
||||
<!--가상계좌 입금통보 URL-->
|
||||
<add key="LGD_AUTOFILLYN_BUYER" value="Y" />
|
||||
<add key="LGD_CASHRECEIPTYN" value="Y" />
|
||||
<add key="LGD_ESCROW_USEYN" value="N" />
|
||||
<add key="PAYMENT_CLASSIFICATION" value="te" />
|
||||
<add key="LGD_MERTKEY" value="e988951b7fe0b7f25ebaa07e54824365" />
|
||||
</appSettings>
|
||||
<common>
|
||||
<logging>
|
||||
|
|
|
|||
|
|
@ -127,6 +127,9 @@
|
|||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="XPayClientNet">
|
||||
<HintPath>..\References\XPayClientNet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Controller\ACommonCC.cs" />
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ using NP.Base.Auth;
|
|||
using NP.Base.ENUM;
|
||||
|
||||
using System.Net.Http;
|
||||
using XPayClientNet;
|
||||
|
||||
namespace NP.Base.Controllers
|
||||
{
|
||||
|
|
@ -629,95 +630,66 @@ namespace NP.Base.Controllers
|
|||
{
|
||||
try
|
||||
{
|
||||
#region 일괄취소
|
||||
//if (Request["ctype"] == "0")
|
||||
//{
|
||||
// //일괄취소
|
||||
// INIPAY50Lib.INItx50 INIpay = new INIPAY50Lib.INItx50();
|
||||
// int intPInst = INIpay.Initialize("");
|
||||
// INIpay.SetField(ref intPInst, "pgid", "IniTechPG_");
|
||||
// INIpay.SetField(ref intPInst, "spgip", "203.238.3.10");//예비 PG IP (고정)
|
||||
// INIpay.SetField(ref intPInst, "mid", GetConfig("pginfo").Split('|')[1]);//상점아이디
|
||||
// INIpay.SetField(ref intPInst, "type", "CANCEL");
|
||||
//
|
||||
// //**************************************************************************************************
|
||||
// //* admin 은 키패스워드 변수명입니다. 수정하시면 안됩니다. 1111의 부분만 수정해서 사용하시기 바랍니다.
|
||||
// //* 키패스워드는 상점관리자 페이지(https://iniweb.inicis.com)의 비밀번호가 아닙니다. 주의해 주시기 바랍니다.
|
||||
// //* 키패스워드는 숫자 4자리로만 구성됩니다. 이 값은 키파일 발급시 결정됩니다.
|
||||
// //* 키패스워드 값을 확인하시려면 상점측에 발급된 키파일 안의 readme.txt 파일을 참조해 주십시오.
|
||||
// //**************************************************************************************************
|
||||
// INIpay.SetField(ref intPInst, "admin", GetConfig("pginfo").Split('|')[3]);
|
||||
// INIpay.SetField(ref intPInst, "tid", Request["tid"]);//취소할 거래번호(TID)
|
||||
// INIpay.SetField(ref intPInst, "msg", "test");//취소 사유
|
||||
// INIpay.SetField(ref intPInst, "cancelreason", "1");//취소 코드
|
||||
// INIpay.SetField(ref intPInst, "debug", "false");//로그모드("true"로 설정하면 상세한 로그를 남김)
|
||||
// INIpay.SetField(ref intPInst, "merchantreserved", "예비");//예비
|
||||
// //5. 취소 요청 #
|
||||
// INIpay.StartAction(ref intPInst);
|
||||
// //6. 취소 결과 #
|
||||
// String ResultCode = INIpay.GetResult(ref intPInst, "resultcode");//결과코드 ("00"이면 취소성공)
|
||||
// String ResultMsg = INIpay.GetResult(ref intPInst, "resultmsg");//결과내용
|
||||
// String CancelDate = INIpay.GetResult(ref intPInst, "CancelDate");//이니시스 취소날짜
|
||||
// String CancelTime = INIpay.GetResult(ref intPInst, "CancelTime");//이니시스 취소시각
|
||||
// String CSHR_CancelNum = INIpay.GetResult(ref intPInst, "CSHR_CancelNum");//현금영수증 취소 승인번호
|
||||
// //pay 업데이트(rstatus,cshrcancelnum,canceltime,cancelmsg,refundamt)
|
||||
// //payitem업데이트(일괄취소)
|
||||
// //lect,exam(일괄취소)
|
||||
// return JsonBack(new JsonRtn() { code = 1000, obj = ResultCode + ":" + ResultMsg });
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
#endregion
|
||||
//부분취소
|
||||
//INIPAY50Lib.INItx50 INIpay = new INIPAY50Lib.INItx50();
|
||||
//int intPInst = INIpay.Initialize("");
|
||||
//INIpay.SetField(ref intPInst, "pgid", "INIpayRPAY");
|
||||
//INIpay.SetField(ref intPInst, "spgip", "203.238.3.10");//예비 PG IP (고정)
|
||||
//INIpay.SetField(ref intPInst, "mid", GetConfig("pginfo").Split('|')[1]);//상점아이디
|
||||
//INIpay.SetField(ref intPInst, "type", "repay");
|
||||
//
|
||||
////**************************************************************************************************
|
||||
////* admin 은 키패스워드 변수명입니다. 수정하시면 안됩니다. 1111의 부분만 수정해서 사용하시기 바랍니다.
|
||||
////* 키패스워드는 상점관리자 페이지(https://iniweb.inicis.com)의 비밀번호가 아닙니다. 주의해 주시기 바랍니다.
|
||||
////* 키패스워드는 숫자 4자리로만 구성됩니다. 이 값은 키파일 발급시 결정됩니다.
|
||||
////* 키패스워드 값을 확인하시려면 상점측에 발급된 키파일 안의 readme.txt 파일을 참조해 주십시오.
|
||||
////**************************************************************************************************
|
||||
//INIpay.SetField(ref intPInst, "admin", GetConfig("pginfo").Split('|')[3]);
|
||||
//INIpay.SetField(ref intPInst, "currency", "WON");
|
||||
|
||||
//INIpay.SetField(ref intPInst, "oldTid", p.pgkey);//취소할 원거래번호(TID)
|
||||
//INIpay.SetField(ref intPInst, "price", p.newrefundamt.ToString());//취소할 금액
|
||||
//INIpay.SetField(ref intPInst, "confirm_price", (p.payamt - p.refundamt - p.newrefundamt).ToString());//이전승인금액(최초승인금액-부분취소금액)-부분취소금액
|
||||
////INIpay.SetField(ref intPInst, "Tax", Request["tax"]);//부가세
|
||||
////INIpay.SetField(ref intPInst, "taxfree", Request["taxfree"]);//비과세
|
||||
//INIpay.SetField(ref intPInst, "buyeremail", p.email);//취소 사유?
|
||||
////INIpay.SetField(ref intPInst, "no_acct", Request["kbno"]);//국민은행계좌이체시 취소 환불계좌번호
|
||||
////INIpay.SetField(ref intPInst, "nm_acct", Request["kbname"]);//국민은행계좌이체시 취소 환불계좌주명
|
||||
//INIpay.SetField(ref intPInst, "debug", "false");//로그모드("true"로 설정하면 상세한 로그를 남김)
|
||||
//
|
||||
////5. 취소 요청 #
|
||||
//INIpay.StartAction(ref intPInst);
|
||||
////6. 취소 결과 #
|
||||
//p.cancelcode = INIpay.GetResult(ref intPInst, "tid");//부분취소거래번호
|
||||
//String resultcode = INIpay.GetResult(ref intPInst, "resultcode");//결과코드 ("00"이면 취소성공)
|
||||
//if (resultcode != "00")
|
||||
//{
|
||||
// return JsonOK(0);
|
||||
//}
|
||||
////String resultmsg = INIpay.GetResult(ref intPInst, "resultmsg");//결과내용
|
||||
////String otid = INIpay.GetResult(ref intPInst, "PRTC_TID");//원 거래번호
|
||||
////String cancelamt = INIpay.GetResult(ref intPInst, "PRTC_Price");//부분취소금액
|
||||
////String finalamt = INIpay.GetResult(ref intPInst, "PRTC_Remains");//재승인금액
|
||||
////String canceltype = INIpay.GetResult(ref intPInst, "PRTC_Type");//부분취소구분(0:재승인,1:부분취소)
|
||||
//p.cancelcnt= GetInt(INIpay.GetResult(ref intPInst, "PRTC_Cnt"));//부분취소 요청횟수
|
||||
//
|
||||
////pay 업데이트(rstatus,cancelcnt,refundamt)
|
||||
////payitem 업데이트(rstatus,pgkey,cancelcode,cancelmsg,canceltype,refundamt,refundtime?,refundtimereal?)
|
||||
////lect,exam(취소)
|
||||
//
|
||||
////lect 업데이트
|
||||
////return JsonBack(new JsonRtn() { code = 1000, obj = resultcode + ":" + resultmsg + ",camt:" + cancelamt + ", famt: " + finalamt + ", ctype: " + canceltype + ", ccount: " + cancelcount });
|
||||
////}
|
||||
}catch(Exception ex)
|
||||
|
||||
|
||||
string CST_PLATFORM = GetConfig("CST_PLATFORM");
|
||||
string CST_MID = GetConfig("CST_MID");
|
||||
string LGD_MID = (("test".Equals(CST_PLATFORM.Trim())) ? "t" : "") + CST_MID;
|
||||
XPayClient xpay = new XPayClient();
|
||||
xpay.Init(GetConfig("lgdacomConfigPath"), CST_PLATFORM);
|
||||
xpay.Init_TX(LGD_MID);
|
||||
xpay.Set("LGD_TXNAME", "PartialCancel");
|
||||
xpay.Set("LGD_TID", p.pgkey);
|
||||
xpay.Set("LGD_CANCELAMOUNT", p.newrefundamt.ToString());
|
||||
//xpay.Set("LGD_REMAINAMOUNT", pd.RemainAmount);
|
||||
//xpay.Set("LGD_CANCELREASON", pd.CancelReason);
|
||||
//xpay.Set("LGD_RFACCOUNTNUM", pd.RfAccountNum);
|
||||
//xpay.Set("LGD_RFBANKCODE", pd.RfBankCode);
|
||||
//xpay.Set("LGD_RFCUSTOMERNAME", pd.RfCustomerName);
|
||||
//xpay.Set("LGD_RFPHONE", pd.RfPhone);
|
||||
xpay.Set("LGD_ENCODING", "utf-8");
|
||||
xpay.Set("LGD_BUYERIP", Request.UserHostAddress);
|
||||
// 이하 PG 사 연동 전문 종료
|
||||
/*
|
||||
* 1. 결제부분취소 요청 결과처리
|
||||
*/
|
||||
//xpay.TX() 실행되면 실제 취소 처리가 이루어 집니다.
|
||||
if (xpay.TX())
|
||||
{
|
||||
|
||||
if ("0000".Equals(xpay.m_szResCode) || "AV11".Equals(xpay.m_szResCode))
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Write("취소요청이 실패하였습니다. <br>");
|
||||
return JsonOK(0);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//2)API 요청 실패 화면처리
|
||||
/*
|
||||
Response.Write("결제 부분취소요청이 실패하였습니다. <br>");
|
||||
Response.Write("TX Response_code = " + xpay.m_szResCode + "<br>");
|
||||
Response.Write("TX Response_msg = " + xpay.m_szResMsg + "<p>");
|
||||
*/
|
||||
return JsonOK(0);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
SetError(ex.Message);
|
||||
return JsonOK(0);
|
||||
|
|
|
|||
|
|
@ -1002,7 +1002,7 @@
|
|||
where exno=#exno# and userno=#userno# and status=1 and payno is null and pino is null and pstatus=4
|
||||
</update>
|
||||
<select id="cr.pay.forrfd" parameterClass="long" resultClass="pay">
|
||||
select a.payno,a.ispg,a.pstatus,a.ptype,a.pgkey,a.isdvr,a.deliamt,a.isrefunddvr,a.payamt,a.refundamt,a.rstatus,a.isgroup,a.iscanceled
|
||||
select a.payno,a.ispg,a.pstatus,a.ptype,a.pgkey,a.isdvr,a.deliamt,a.isrefunddvr,a.payamt,a.refundamt,a.rstatus,a.isgroup,a.iscanceled,a.payoktime
|
||||
,b.isdvr isdvr2,b.dvrcode
|
||||
,CAST(AES_DECRYPT(UNHEX(u.email), <include refid="sql.digest"></include>) AS char) email
|
||||
from pay a
|
||||
|
|
@ -1048,6 +1048,9 @@
|
|||
<select id="cr.payrfditems2" parameterClass="long" resultClass="payrfd">
|
||||
select a.rfdno
|
||||
,b.rtext,b.rstatus,b.cdt,b.isowner,b.ramt,b.bankname,b.bankowner
|
||||
,b.rreason,b.ruser,b.fgnor,b.fgnob
|
||||
,CAST(AES_DECRYPT(UNHEX(b.rphone), <include refid="sql.digest"></include>) AS char) rphone
|
||||
,b.rback
|
||||
,CAST(AES_DECRYPT(UNHEX(b.bankno), <include refid="sql.digest"></include>) AS char) bankno
|
||||
,p.isgroup
|
||||
,pi.payamt
|
||||
|
|
@ -1056,6 +1059,8 @@
|
|||
,CAST(AES_DECRYPT(UNHEX(u.telno), <include refid="sql.digest"></include>) AS char) telno
|
||||
,CAST(AES_DECRYPT(UNHEX(u.mobile), <include refid="sql.digest"></include>) AS char) mobile
|
||||
,ua.asname
|
||||
,f1.orgname,f1.fileno
|
||||
,f2.orgname orgname2,f2.fileno file2
|
||||
from payrfditem a
|
||||
inner join payitem pi on pi.pino=a.pino
|
||||
inner join pay p on p.payno=pi.payno
|
||||
|
|
@ -1067,13 +1072,17 @@
|
|||
left outer join cg pcg on pcg.cgno=cg.pcgno
|
||||
left outer join book bk on pi.ptype=2 and bk.bkno=pi.itemno
|
||||
left outer join exam ex on pi.ptype=3 and ex.exno=pi.itemno
|
||||
left outer join fileinfo f1 on f1.fgno=b.fgnor and f1.isdel=0
|
||||
left outer join fileinfo f2 on f2.fgno=b.fgnob and f2.isdel=0
|
||||
where a.rfdno=#rfdno#
|
||||
order by a.rfdno desc
|
||||
</select>
|
||||
<update id="cr.payrfd.save" parameterClass="hashtable">
|
||||
update payrfd set <include refid="sql.up"></include>
|
||||
,isowner=#isowner#,ramt=#ramt#,bankname=#bankname#,bankowner=#bankowner#,bankno=HEX(AES_ENCRYPT(#bankno#, <include refid="sql.digest"></include>))
|
||||
,rstatus=#rstatus#,statustime=case when rstatus <> #rstatus# then now() else statustime end
|
||||
,bankname=#bankname#,bankowner=#bankowner#,bankno=HEX(AES_ENCRYPT(#bankno#, <include refid="sql.digest"></include>))
|
||||
,isowner=#isowner#,ruser=#ruser#,rphone=HEX(AES_ENCRYPT(#rphone#, <include refid="sql.digest"></include>))
|
||||
,rreason=#rreason#,rtext=#rtext#,rstatus=#rstatus#,rback=#rback#
|
||||
,statustime=case when rstatus <> #rstatus# then now() else statustime end
|
||||
where rfdno=#rfdno#
|
||||
</update>
|
||||
<select id="cr.payitems.forcheck" parameterClass="string" resultClass="payitem">
|
||||
|
|
|
|||
|
|
@ -467,8 +467,10 @@ namespace NP.FO.Controllers
|
|||
if (vm.payno > 0 && (vm.absptype == 6 || vm.absptype == 7))
|
||||
{
|
||||
//0원강좌 결제
|
||||
vm.Pay = new Pay() { payno = vm.payno, ptype = vm.absptype, oid2 = (vm.absptype == 6 ? "free" : string.Empty) + vm.payno };
|
||||
vm.Pay = new Pay() { payno = vm.payno, pstatus = 1, ptype = vm.absptype, oid2 = (vm.absptype == 6 ? "free" : string.Empty) + vm.payno };
|
||||
vm.Pay.payresult = "1:무료결제완료";
|
||||
vm.PayItemResults = Dao.Get<PayItemResult>("pay.payitems", vm.Pay.payno);
|
||||
vm.CM = Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "cmno", vm.PayItemResults.First().itemno } }).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -38,8 +38,15 @@
|
|||
|
||||
<h4 class="clsTitle">결제방법</h4>
|
||||
<ul class="apyRdo">
|
||||
@if (Model.CM.infee > 0)
|
||||
{
|
||||
<li><input type="radio" name="ptype" id="pay0101" value="1"><label for="pay0101">신용카드</label></li>
|
||||
<li><input type="radio" name="ptype" id="pay0102" value="3"><label for="pay0102">무통장입금(가상계좌)</label></li>
|
||||
}
|
||||
else
|
||||
{
|
||||
<li><input type="radio" name="ptype" id="pay0101" value="6" checked><label for="pay0101">무료</label></li>
|
||||
}
|
||||
</ul>
|
||||
<div id="cashbox" style="display:none">
|
||||
<h4 class="clsTitle">현금영수증 발행여부</h4>
|
||||
|
|
|
|||
Loading…
Reference in New Issue