From f85626b1279160cf2c049d3f8781526b5249afe2 Mon Sep 17 00:00:00 2001 From: hodong13 Date: Tue, 1 Dec 2020 06:50:16 +0000 Subject: [PATCH] --- BO/Controllers/croomController.cs | 14 ++- BO/Views/croom/pay.cshtml | 28 +++--- BO/Views/croom/payrefund.cshtml | 8 +- BO/Views/croom/payview.cshtml | 4 +- BO/Views/croom/refundview.cshtml | 112 ++++++++++++------------ BO/Web.config | 18 +++- Base/Base.csproj | 3 + Base/Controller/ACommonCRoom.cs | 132 ++++++++++++----------------- Dao/MyBatis/Maps/CRoom.xml | 15 +++- FO/Controllers/FOBaseController.cs | 4 +- FO/Views/Course/ApplyPay.cshtml | 7 ++ 11 files changed, 185 insertions(+), 160 deletions(-) diff --git a/BO/Controllers/croomController.cs b/BO/Controllers/croomController.cs index 67f70fa..7e839cf 100644 --- a/BO/Controllers/croomController.cs +++ b/BO/Controllers/croomController.cs @@ -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("cr.pay.forrfd", vm.payno).First(); vm.PayItems = Dao.Get("cr.payitem.forrfd", vm.payno); vm.PayRfds = Dao.Get("cr.payrfditems2", vm.rfdno); + vm.FileList = new List() { }; + vm.FileList2 = new List() { }; + 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) diff --git a/BO/Views/croom/pay.cshtml b/BO/Views/croom/pay.cshtml index 7f4002c..23f30e6 100644 --- a/BO/Views/croom/pay.cshtml +++ b/BO/Views/croom/pay.cshtml @@ -35,11 +35,11 @@ @Html.HiddenFor(m => m.stringval5)       -    +             -    +    @@ -49,10 +49,10 @@          -    -    +    + @*  *@    -    + @*  *@ @@ -61,24 +61,24 @@ @Html.Partial("./Partial/Select", null, new ViewDataDictionary { { "valuetext", ":미수상태;1:미수결제;2:미수입금" }, { "name", "stringval18" }, { "selected", Model.stringval18 } }) - + @* 회사정보 @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 = "" })) - + *@ 결제상품 @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", ":-과정분류" } })   -    + @*      -    +   *@ @@ -108,6 +108,7 @@ 결제번호 신청자(ID)
회사명 상품명 + 수강일 결제금액
(결제방법) 입금금액
(환불금액) 신청/승인일 @@ -121,15 +122,16 @@ @d.payno - @string.Format("{0}({1}){2}", d.username, d.userid, d.isgroup == 1 && d.ccount > 1 ? string.Format(" 외 {0}명", d.ccount - 1) : "")
@(d.isjoin == 1 ? "정" : "비")]@(d.asname ?? "-") + @string.Format("{0}({1}){2}", d.username, d.userid, d.isgroup == 1 && d.ccount > 1 ? string.Format(" 외 {0}명", d.ccount - 1) : "")
@*@(d.isjoin == 1 ? "정" : "비")]*@@(d.asname ?? "-") - @d.ptypename + @*@d.ptypename*@ @Html.Raw(d.ptype == 0 || d.ptype == 1 || d.ptype == 4 ? string.Format(" {0}", d.cshapename) : "") - @Html.Raw(d.isrebate == 1 && (d.ptype == 0 || d.ptype == 1 || d.ptype == 4) ? " 환급" : "") + @*@Html.Raw(d.isrebate == 1 && (d.ptype == 0 || d.ptype == 1 || d.ptype == 4) ? " 환급" : "")*@  @d.itemname@(d.ccount > 1 ? string.Format(" 외 {0} 건", d.ccount - 1) : "") + @d.sstime.ToString("yy-MM-dd")~@d.setime.ToString("yy-MM-dd") @d.payamt.ToString("#,0")
(@(d.pptype == 0 ? "미정" : d.pptypename)) @(d.pstatus == 1 ? d.payamt.ToString("#,0") : "0")
(@(d.refundamt.ToString("#,0")))
@d.cdtymd diff --git a/BO/Views/croom/payrefund.cshtml b/BO/Views/croom/payrefund.cshtml index ba4aa07..cb34851 100644 --- a/BO/Views/croom/payrefund.cshtml +++ b/BO/Views/croom/payrefund.cshtml @@ -9,7 +9,7 @@
환불요청이력
- + @**@ @foreach (var rfdno in Model.PayRfds.Select(s => s.rfdno).Distinct()) { @@ -30,7 +30,7 @@ - + @**@ } @@ -72,11 +72,11 @@
신청과정 환불상태 저장
-

※ 이니시스 상점에서 직접 취소한 경우에 수동취소완료를 체크해주세요.

+

※ LG유플러스 상점에서 직접 취소한 경우에 수동취소완료를 체크해주세요.

} -
+
요청일상품환불사유접수상태상세보기요청서
요청일상품환불사유접수상태상세보기요청서
@r.rtext @r.rstatusname
diff --git a/BO/Views/croom/payview.cshtml b/BO/Views/croom/payview.cshtml index f2c8c3b..d0281be 100644 --- a/BO/Views/croom/payview.cshtml +++ b/BO/Views/croom/payview.cshtml @@ -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")) } - +
이니시스코드LG유플러스 코드 @(p.ispg == 0 ? "수동결제" : p.pgkey)
diff --git a/BO/Views/croom/refundview.cshtml b/BO/Views/croom/refundview.cshtml index cb2c3d1..682d7d1 100644 --- a/BO/Views/croom/refundview.cshtml +++ b/BO/Views/croom/refundview.cshtml @@ -3,64 +3,68 @@ Layout = "~/Views/Shared/_PopupLayout.cshtml"; var r = Model.PayRfds.First(); } +
상품선택
- - - - - - - - @if (Model.Pay.refundamt > 0) - { - - } - - - - - - - - - - - - - - + + +
신청기관@r.asname
신청자@Html.Raw(string.Format("{0}({1})
Tel: {2} (Mobile: {3})", r.username, r.userid, r.telno, r.mobile))
결제상품명 -
    - @foreach (var d in Model.PayItems) - { -
  • @d.itemname @(Model.Pay.isgroup == 1 && d.ptype != 2 ? d.username:"")(@d.payamt.ToString("#,0")원)
  • - } -
-
결제금액@Model.Pay.payamt.ToString("#,0")원
환불완료금액@Model.Pay.refundamt.ToString("#,0")원
환불요청일@r.cdtymdhms
환불요청상품 -
    - @foreach (var d in Model.PayRfds) - { -
  • @d.itemname @(Model.Pay.isgroup == 1 && d.ptype != 2 ? d.username : "")(@d.payamt.ToString("#,0")원)
  • - } -
-
환불요청사유@r.rtext
개인계좌환불여부@Html.Partial("./Partial/Radio", r.isowner, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "checked", r.isowner }, { "name", "isowner" } })
환불금액
환불계좌 - 은행명:
- 계좌주:     - 계좌번호: -
접수상태 - @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 ? "반려" : "완료") - } -
총결제액/입금일@Model.Pay.payamt.ToString("#,0")원 (@Model.Pay.payoktime.Value.ToString("yy-MM-dd HH:mm"))
결제방법@Model.Pay.ptypename @(Model.Pay.ispg == 1 ? "(PG)" : "")
요청강좌@Model.PayRfds.First().itemname (@Model.PayRfds.First().payamt.ToString("#,0")원)
+
+
+ +
환불정보
+ + + + + + + + + + +
환불은행
예금주
환불계좌
개인계좌여부@Html.Partial("./Partial/Radio", r.isowner, new ViewDataDictionary() { { "valuetext", "1:예;0:아니오" }, { "checked", r.isowner }, { "name", "isowner" } })
담당자
담당자연락처
환불사유@Html.Partial("./Partial/Radio", r.rreason, new ViewDataDictionary() { { "valuetext", "0:교육취소;1:과정변경;2:과입금;9:기타" }, { "checked", r.rreason }, { "name", "rreason" } })
메모
+
+
첨부서류
+ + + + + + + + + + +
환불신청서 + @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", "" } + }) +
통장사본 + @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", "" } + }) +
+
+
검토결과
+ + + + +
검토상태@Html.Partial("./Partial/Radio", r.rstatus, new ViewDataDictionary() { { "valuetext", "0:접수(검토중);2:환불완료;1:환불거절" }, { "checked", r.rstatus }, { "name", "rstatus" } })
검토의견
+
@if (r.rstatus == 0) { - + }


@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) { diff --git a/BO/Web.config b/BO/Web.config index 9b55ca9..adf99b2 100644 --- a/BO/Web.config +++ b/BO/Web.config @@ -55,7 +55,23 @@ - + + + + + + + + + + + + + + + + + diff --git a/Base/Base.csproj b/Base/Base.csproj index 384431c..71f0572 100644 --- a/Base/Base.csproj +++ b/Base/Base.csproj @@ -127,6 +127,9 @@ + + ..\References\XPayClientNet.dll + diff --git a/Base/Controller/ACommonCRoom.cs b/Base/Controller/ACommonCRoom.cs index 8f643f9..92d29df 100644 --- a/Base/Controller/ACommonCRoom.cs +++ b/Base/Controller/ACommonCRoom.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("취소요청이 실패하였습니다.
"); + return JsonOK(0); + } + + } + else + { + //2)API 요청 실패 화면처리 + /* + Response.Write("결제 부분취소요청이 실패하였습니다.
"); + Response.Write("TX Response_code = " + xpay.m_szResCode + "
"); + Response.Write("TX Response_msg = " + xpay.m_szResMsg + "

"); + */ + return JsonOK(0); + } + } + catch (Exception ex) { SetError(ex.Message); return JsonOK(0); diff --git a/Dao/MyBatis/Maps/CRoom.xml b/Dao/MyBatis/Maps/CRoom.xml index 1a0b6ad..1328e09 100644 --- a/Dao/MyBatis/Maps/CRoom.xml +++ b/Dao/MyBatis/Maps/CRoom.xml @@ -1002,7 +1002,7 @@ where exno=#exno# and userno=#userno# and status=1 and payno is null and pino is null and pstatus=4 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), ) AS char) rphone + ,b.rback ,CAST(AES_DECRYPT(UNHEX(b.bankno), ) AS char) bankno ,p.isgroup ,pi.payamt @@ -1056,6 +1059,8 @@ ,CAST(AES_DECRYPT(UNHEX(u.telno), ) AS char) telno ,CAST(AES_DECRYPT(UNHEX(u.mobile), ) 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 update payrfd set - ,isowner=#isowner#,ramt=#ramt#,bankname=#bankname#,bankowner=#bankowner#,bankno=HEX(AES_ENCRYPT(#bankno#, )) - ,rstatus=#rstatus#,statustime=case when rstatus <> #rstatus# then now() else statustime end + ,bankname=#bankname#,bankowner=#bankowner#,bankno=HEX(AES_ENCRYPT(#bankno#, )) + ,isowner=#isowner#,ruser=#ruser#,rphone=HEX(AES_ENCRYPT(#rphone#, )) + ,rreason=#rreason#,rtext=#rtext#,rstatus=#rstatus#,rback=#rback# + ,statustime=case when rstatus <> #rstatus# then now() else statustime end where rfdno=#rfdno#

  • + } + else + { +
  • + }