--- src/main/java/itn/com/cmm/util/MJUtil.java
+++ src/main/java/itn/com/cmm/util/MJUtil.java
... | ... | @@ -318,4 +318,17 @@ |
| 318 | 318 |
return dupliBlockList; |
| 319 | 319 |
} |
| 320 | 320 |
|
| 321 |
+ /** |
|
| 322 |
+ * 사업자등록번호 대시('-') 추가
|
|
| 323 |
+ * 대시 유무 상관없음 |
|
| 324 |
+ * 유효성 맞지 않을시 변환안됨. |
|
| 325 |
+ */ |
|
| 326 |
+ public static String bizNoAddDash(String str) {
|
|
| 327 |
+ if(str == null) {
|
|
| 328 |
+ return str; |
|
| 329 |
+ } |
|
| 330 |
+ String regExp = "(\\d{3})(\\d{2})(\\d{5})$";
|
|
| 331 |
+ String chgf = "$1-$2-$3"; |
|
| 332 |
+ return str.replaceFirst(regExp, chgf); |
|
| 333 |
+ } |
|
| 321 | 334 |
} |
--- src/main/java/itn/let/mjo/event/service/MjonEventVO.java
+++ src/main/java/itn/let/mjo/event/service/MjonEventVO.java
... | ... | @@ -38,5 +38,5 @@ |
| 38 | 38 |
private String point; //사용자 포인트 정보 |
| 39 | 39 |
private String userId; //사용자 아이디 |
| 40 | 40 |
private String frstRegisterId; //등록자 아이디 |
| 41 |
- |
|
| 41 |
+ |
|
| 42 | 42 |
} |
--- src/main/java/itn/let/mjo/pay/service/MjonPayService.java
+++ src/main/java/itn/let/mjo/pay/service/MjonPayService.java
... | ... | @@ -1,8 +1,11 @@ |
| 1 | 1 |
package itn.let.mjo.pay.service; |
| 2 | 2 |
|
| 3 | 3 |
import java.util.List; |
| 4 |
+import java.util.Map; |
|
| 4 | 5 |
|
| 5 | 6 |
import javax.servlet.http.HttpServletRequest; |
| 7 |
+ |
|
| 8 |
+import itn.let.mjo.msg.service.MjonMsgVO; |
|
| 6 | 9 |
|
| 7 | 10 |
public interface MjonPayService {
|
| 8 | 11 |
|
... | ... | @@ -140,4 +143,11 @@ |
| 140 | 143 |
//누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) |
| 141 | 144 |
public String selectTotSumPaymentAfterPay(String userId) throws Exception; |
| 142 | 145 |
|
| 146 |
+ Map<String, Object> payUserSWList(MjonPayVO mjonPayVO) throws Exception; |
|
| 147 |
+ |
|
| 148 |
+ Map<String, Object> payUserSWListAjax(MjonMsgVO mjonMsgVO) throws Exception; |
|
| 149 |
+ |
|
| 150 |
+ //거래명세서 상세 조회 |
|
| 151 |
+ MjonPayVO selectPayDetail(MjonPayVO mjonPayVO) throws Exception; |
|
| 152 |
+ |
|
| 143 | 153 |
} |
--- src/main/java/itn/let/mjo/pay/service/MjonPayVO.java
+++ src/main/java/itn/let/mjo/pay/service/MjonPayVO.java
... | ... | @@ -241,5 +241,11 @@ |
| 241 | 241 |
|
| 242 | 242 |
private String totChgPay; // 간편결제분류 |
| 243 | 243 |
|
| 244 |
+ // 거래명세서 내용 |
|
| 245 |
+ private String bizNo; // 사업자등록번호 |
|
| 246 |
+ private String managerNm; // 담당자명 |
|
| 247 |
+ private String prePaymentYn; // 선불결제여부 N:후불제고객 |
|
| 248 |
+ private String dept; // 회원종류 p:개인 c:기업 |
|
| 249 |
+ |
|
| 244 | 250 |
|
| 245 | 251 |
} |
--- src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java
+++ src/main/java/itn/let/mjo/pay/service/impl/MjonPayDAO.java
... | ... | @@ -358,5 +358,8 @@ |
| 358 | 358 |
return result; |
| 359 | 359 |
|
| 360 | 360 |
} |
| 361 |
- |
|
| 361 |
+ |
|
| 362 |
+ public MjonPayVO selectPayDetail(MjonPayVO mjonPayVO) throws Exception{
|
|
| 363 |
+ return (MjonPayVO)select("mjonPayDAO.selectPayDetail", mjonPayVO);
|
|
| 364 |
+ } |
|
| 362 | 365 |
} |
--- src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java
+++ src/main/java/itn/let/mjo/pay/service/impl/MjonPayServiceImpl.java
... | ... | @@ -7,11 +7,16 @@ |
| 7 | 7 |
import java.net.URL; |
| 8 | 8 |
import java.net.URLEncoder; |
| 9 | 9 |
import java.security.MessageDigest; |
| 10 |
+import java.sql.Timestamp; |
|
| 10 | 11 |
import java.text.SimpleDateFormat; |
| 12 |
+import java.time.LocalDate; |
|
| 13 |
+import java.time.LocalDateTime; |
|
| 14 |
+import java.time.format.DateTimeFormatter; |
|
| 11 | 15 |
import java.util.Date; |
| 12 | 16 |
import java.util.HashMap; |
| 13 | 17 |
import java.util.Iterator; |
| 14 | 18 |
import java.util.List; |
| 19 |
+import java.util.Map; |
|
| 15 | 20 |
|
| 16 | 21 |
import javax.annotation.Resource; |
| 17 | 22 |
import javax.servlet.http.HttpServletRequest; |
... | ... | @@ -25,11 +30,15 @@ |
| 25 | 30 |
import egovframework.rte.fdl.idgnr.EgovIdGnrService; |
| 26 | 31 |
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; |
| 27 | 32 |
import itn.com.cmm.LoginVO; |
| 33 |
+import itn.com.cmm.util.DateUtils; |
|
| 28 | 34 |
import itn.com.cmm.util.MJUtil; |
| 35 |
+import itn.com.cmm.util.PayUtils; |
|
| 29 | 36 |
import itn.com.utl.fcc.service.EgovStringUtil; |
| 30 | 37 |
import itn.let.mjo.event.service.MjonEventVO; |
| 31 | 38 |
import itn.let.mjo.event.service.impl.MjonEventDAO; |
| 32 | 39 |
import itn.let.mjo.msg.service.MjonMsgVO; |
| 40 |
+import itn.let.mjo.msgcampain.service.MjonCandidateVO; |
|
| 41 |
+import itn.let.mjo.msgcampain.service.impl.MjonCandidateDAO; |
|
| 33 | 42 |
import itn.let.mjo.msgdata.service.MjonMsgDataService; |
| 34 | 43 |
import itn.let.mjo.msgdata.service.impl.MjonMsgDataDAO; |
| 35 | 44 |
import itn.let.mjo.pay.service.MjonPayService; |
... | ... | @@ -93,6 +102,10 @@ |
| 93 | 102 |
/* 등급제 */ |
| 94 | 103 |
@Resource(name = "mberGrdService") |
| 95 | 104 |
MberGrdService mberGrdService; |
| 105 |
+ |
|
| 106 |
+ @Resource(name="mjonCandidateDAO") |
|
| 107 |
+ private MjonCandidateDAO mjonCandidateDAO; |
|
| 108 |
+ |
|
| 96 | 109 |
|
| 97 | 110 |
@Override |
| 98 | 111 |
public List<MjonPayVO> selectPayList(MjonPayVO mjonPayVO) throws Exception {
|
... | ... | @@ -2839,6 +2852,144 @@ |
| 2839 | 2852 |
|
| 2840 | 2853 |
} |
| 2841 | 2854 |
|
| 2842 |
- |
|
| 2855 |
+ @Override |
|
| 2856 |
+ public Map<String, Object> payUserSWList(MjonPayVO mjonPayVO) throws Exception{
|
|
| 2857 |
+ |
|
| 2858 |
+ |
|
| 2859 |
+ String userId = mjonPayVO.getUserId(); |
|
| 2843 | 2860 |
|
| 2861 |
+ // 총 사용금액 |
|
| 2862 |
+ List<MjonPayVO> usedCashTotList = mjonPayDAO.selectUsedCashWithKakaoTotCnt(mjonPayVO); |
|
| 2863 |
+ |
|
| 2864 |
+ // 사용가능한 금액 |
|
| 2865 |
+ // mberManageVO.prePaymentYn 선불 후불 회원 구분으로 인해 select함 |
|
| 2866 |
+ MberManageVO mberManageVO = mjonMsgDataDAO.selectMberManageInfo(userId); |
|
| 2867 |
+ // 선거 후보자 정보 조회 |
|
| 2868 |
+ MjonCandidateVO mjonCandidateVO = new MjonCandidateVO(); |
|
| 2869 |
+ if("p".equals(mberManageVO.getDept())) { //개인회원 선거 후보자 정보 불러오기
|
|
| 2870 |
+ mjonCandidateVO = mjonCandidateDAO.selectCandidateDataInfo(userId); |
|
| 2871 |
+ if(mjonCandidateVO != null) {
|
|
| 2872 |
+ mjonCandidateVO.setRegidentNo1(egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo1())); |
|
| 2873 |
+ mjonCandidateVO.setRegidentNo2(egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo2())); |
|
| 2874 |
+ } |
|
| 2875 |
+ } |
|
| 2876 |
+ |
|
| 2877 |
+ |
|
| 2878 |
+ /** |
|
| 2879 |
+ * 후불제 회원 관련 사용 요금 내역 정보 조회하기 |
|
| 2880 |
+ * 20231228 우영두 추가 |
|
| 2881 |
+ * 누적사용금액, 누적 납부금액, 당월 납부 예상금액 정보 조회 |
|
| 2882 |
+ * |
|
| 2883 |
+ * */ |
|
| 2884 |
+ //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) |
|
| 2885 |
+ String totSumCashAfterPay = mjonPayDAO.selectTotalSumCashForAfterPay(userId); |
|
| 2886 |
+ |
|
| 2887 |
+ //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) |
|
| 2888 |
+ String totSumPointAfterPay = mjonPayDAO.selectTotalSumPointForAfterPay(userId); |
|
| 2889 |
+ |
|
| 2890 |
+ //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) |
|
| 2891 |
+ String totSumPaymentAfterPay = mjonPayDAO.selectTotSumPaymentAfterPay(userId); |
|
| 2892 |
+ |
|
| 2893 |
+ //누적 납부 포인트 조회 ( 누적 납부금액 합산에 대한 2% 포인트 정보 계산) |
|
| 2894 |
+ float p_i_re_point = 0; |
|
| 2895 |
+ JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 2896 |
+ if (sysJoinSetVO != null) {
|
|
| 2897 |
+ p_i_re_point = sysJoinSetVO.getPointPer(); |
|
| 2898 |
+ } |
|
| 2899 |
+ int paymentPointAfterPay = Math.round((Float.parseFloat(totSumPaymentAfterPay) * p_i_re_point / 100)); |
|
| 2900 |
+ |
|
| 2901 |
+ //당월 납부 예상금액 (누적 사용금액 합산 - 누적 납부금액 합산 정보 계산) |
|
| 2902 |
+ float unPaymentAfterPay = Float.parseFloat(totSumCashAfterPay) - Float.parseFloat(totSumPaymentAfterPay); |
|
| 2903 |
+ |
|
| 2904 |
+ //당월 납부 예상 포인트 (당월 납부 예상 금액에 대한 2% 포인트 정보 계산) |
|
| 2905 |
+ int unPaymentPointAfterPay = Math.round((unPaymentAfterPay * p_i_re_point / 100)); |
|
| 2906 |
+ |
|
| 2907 |
+ /* |
|
| 2908 |
+ * 2024.02.06 후불제 회원 중 협의단가를 사용하는 회원은 포인트 적립이 되지 않아야함. |
|
| 2909 |
+ * 후불제 협의 단가 여부 체크 |
|
| 2910 |
+ * 모든 협의 단가 금액을 합산하여 0보다 크면 협의단가 있음. |
|
| 2911 |
+ * */ |
|
| 2912 |
+ float shortPrice = mberManageVO.getShortPrice(); |
|
| 2913 |
+ float longPrice = mberManageVO.getLongPrice(); |
|
| 2914 |
+ float picturePrice = mberManageVO.getPicturePrice() + mberManageVO.getPicture2Price() + mberManageVO.getPicture3Price(); |
|
| 2915 |
+ float kakaoAtPrice = mberManageVO.getKakaoAtPrice(); |
|
| 2916 |
+ float kakaoFtPrice = mberManageVO.getKakaoFtPrice(); |
|
| 2917 |
+ float totPrice = shortPrice + longPrice + picturePrice + kakaoAtPrice + kakaoFtPrice; |
|
| 2918 |
+ String negoPriceYn = "N"; |
|
| 2919 |
+ |
|
| 2920 |
+ if(totPrice > 0) {
|
|
| 2921 |
+ negoPriceYn = "Y"; |
|
| 2922 |
+ } |
|
| 2923 |
+ |
|
| 2924 |
+ |
|
| 2925 |
+ |
|
| 2926 |
+ Map<String, Object> returnData = new HashMap<>(); |
|
| 2927 |
+ |
|
| 2928 |
+ |
|
| 2929 |
+ returnData.put("usedCashTotList", usedCashTotList);
|
|
| 2930 |
+ returnData.put("mberManageVO", mberManageVO);
|
|
| 2931 |
+ returnData.put("mjonCandidateVO", mjonCandidateVO);
|
|
| 2932 |
+ returnData.put("totSumCashAfterPay", totSumCashAfterPay);
|
|
| 2933 |
+ returnData.put("totSumPointAfterPay", totSumPointAfterPay);
|
|
| 2934 |
+ returnData.put("totSumPaymentAfterPay", totSumPaymentAfterPay);
|
|
| 2935 |
+ returnData.put("sumPaymentPointAfterPay", paymentPointAfterPay);
|
|
| 2936 |
+ returnData.put("unPaymentAfterPay", unPaymentAfterPay);
|
|
| 2937 |
+ returnData.put("unPaymentPointAfterPay", unPaymentPointAfterPay);
|
|
| 2938 |
+ returnData.put("negoPriceYn", negoPriceYn);
|
|
| 2939 |
+ // 초기 날짜 셋팅 |
|
| 2940 |
+ returnData.put("startDate", DateUtils.getDateMonthsAgo(1));
|
|
| 2941 |
+ returnData.put("endDate", DateUtils.getCurrentDate());
|
|
| 2942 |
+ |
|
| 2943 |
+ |
|
| 2944 |
+ // TODO Auto-generated method stub |
|
| 2945 |
+ return returnData; |
|
| 2946 |
+ } |
|
| 2947 |
+ |
|
| 2948 |
+ @Override |
|
| 2949 |
+ public Map<String, Object> payUserSWListAjax(MjonMsgVO mjonMsgVO) throws Exception{
|
|
| 2950 |
+ |
|
| 2951 |
+ if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 2952 |
+ mjonMsgVO.setSearchSortCnd("regDate");
|
|
| 2953 |
+ mjonMsgVO.setSearchSortOrd("desc");
|
|
| 2954 |
+ } |
|
| 2955 |
+ |
|
| 2956 |
+ Map<String, Object> returnData = new HashMap<>(); |
|
| 2957 |
+ |
|
| 2958 |
+ // 검색 데이터가 없거나 |
|
| 2959 |
+ // 시작일자가 종료일자보다 이후이거나 |
|
| 2960 |
+ // 총 기간이 365일이 넘으면 현재일부터 365일 전 날짜를 넣어서 검색 |
|
| 2961 |
+ if(!DateUtils.dateChkAndValueChk(mjonMsgVO.getStartDate(),mjonMsgVO.getEndDate(), 12 )) {
|
|
| 2962 |
+ |
|
| 2963 |
+ mjonMsgVO.setStartDate(DateUtils.getDateMonthsAgo(12)); |
|
| 2964 |
+ mjonMsgVO.setEndDate(DateUtils.getCurrentDate()); |
|
| 2965 |
+ |
|
| 2966 |
+ }; |
|
| 2967 |
+ |
|
| 2968 |
+ |
|
| 2969 |
+ List<MjonMsgVO> payUserSWList = mjonMsgDataDAO.selectPayUserSWList(mjonMsgVO); |
|
| 2970 |
+ returnData.put("payUserSWList", payUserSWList);
|
|
| 2971 |
+ returnData.put("totCnt", payUserSWList.size()> 0 ? payUserSWList.get(0).getTotCnt() : 0);
|
|
| 2972 |
+ returnData.put("totSuccSendPrice", payUserSWList.size() > 0 ? PayUtils.getTrimToFirstDecimal(payUserSWList.get(0).getTotSuccSendPrice()) : 0);
|
|
| 2973 |
+ |
|
| 2974 |
+ return returnData; |
|
| 2975 |
+ } |
|
| 2976 |
+ |
|
| 2977 |
+ @Override |
|
| 2978 |
+ public MjonPayVO selectPayDetail(MjonPayVO mjonPayVO) throws Exception {
|
|
| 2979 |
+ |
|
| 2980 |
+ MjonPayVO result = mjonPayDAO.selectPayDetail(mjonPayVO); |
|
| 2981 |
+ /* 후불제 고객의 사용기한 조회(결제일의 전달 1일 ~ 말일) */ |
|
| 2982 |
+ if("N".equals(result.getPrePaymentYn())) {
|
|
| 2983 |
+ String regDateStr = result.getRegDate(); |
|
| 2984 |
+ LocalDateTime regDate = Timestamp.valueOf(regDateStr).toLocalDateTime(); |
|
| 2985 |
+ |
|
| 2986 |
+ LocalDate lastMonth = regDate.toLocalDate().withDayOfMonth(1).minusMonths(1); |
|
| 2987 |
+ LocalDate startDate = lastMonth.withDayOfMonth(1); |
|
| 2988 |
+ LocalDate endDate = lastMonth.withDayOfMonth(lastMonth.lengthOfMonth()); |
|
| 2989 |
+ |
|
| 2990 |
+ result.setStartDate(startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
| 2991 |
+ result.setEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
|
| 2992 |
+ } |
|
| 2993 |
+ return result; |
|
| 2994 |
+ } |
|
| 2844 | 2995 |
} |
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
... | ... | @@ -2603,15 +2603,16 @@ |
| 2603 | 2603 |
* 2023.12.22 우영두 |
| 2604 | 2604 |
* @param mjonMsgVO |
| 2605 | 2605 |
* @param model |
| 2606 |
- * @return "/web/member/pay/PayUserSWList.do" |
|
| 2606 |
+ * @return "/web/member/pay/payUserSWList.do" |
|
| 2607 | 2607 |
* @throws Exception |
| 2608 | 2608 |
*/ |
| 2609 |
- @RequestMapping(value= {"/web/member/pay/PayUserSWList.do"})
|
|
| 2610 |
- public String PayUserSWList(@ModelAttribute("mjonMsgVO") MjonMsgVO mjonMsgVO,
|
|
| 2609 |
+ @RequestMapping(value= {"/web/member/pay/payUserSWList.do"})
|
|
| 2610 |
+ public String payUserSWList(@ModelAttribute("mjonMsgVO") MjonMsgVO mjonMsgVO,
|
|
| 2611 | 2611 |
MjonPayVO mjonPayVO, |
| 2612 | 2612 |
MberManageVO mberManageVO, RedirectAttributes redirectAttributes, |
| 2613 | 2613 |
HttpServletRequest request, |
| 2614 | 2614 |
ModelMap model) throws Exception{
|
| 2615 |
+ |
|
| 2615 | 2616 |
|
| 2616 | 2617 |
/*LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();*/ |
| 2617 | 2618 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
... | ... | @@ -2621,117 +2622,26 @@ |
| 2621 | 2622 |
return "redirect:/web/user/login/login.do"; |
| 2622 | 2623 |
} |
| 2623 | 2624 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
| 2624 |
- mjonMsgVO.setUserId(userId); |
|
| 2625 |
- /* |
|
| 2626 |
- { // 충전캐시
|
|
| 2627 |
- String sumPayMoney = mjonPayService.selectAgentSumPayMoney(userId); |
|
| 2628 |
- model.addAttribute("sumPayMoney", sumPayMoney);
|
|
| 2629 |
- } |
|
| 2625 |
+ mjonPayVO.setUserId(userId); |
|
| 2630 | 2626 |
|
| 2631 |
- { // 충전포인트
|
|
| 2632 |
- String sumPoint = mjonPayService.selectSumPoint(userId); |
|
| 2633 |
- model.addAttribute("sumPoint", sumPoint);
|
|
| 2634 |
- } |
|
| 2635 |
- */ |
|
| 2636 |
- |
|
| 2637 |
- { // 총 사용금액
|
|
| 2638 |
- mjonPayVO.setUserId(userId); |
|
| 2639 |
- List<MjonPayVO> usedCashTotList = mjonPayService.selectUsedCashWithKakaoTotCnt(mjonPayVO); |
|
| 2640 |
- model.addAttribute("usedCashTotList", usedCashTotList);
|
|
| 2641 |
- } |
|
| 2642 |
- { // 사용가능한 금액
|
|
| 2643 |
- // mberManageVO.prePaymentYn 선불 후불 회원 구분으로 인해 select함 |
|
| 2644 |
- mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 2645 |
- model.addAttribute("mberManageVO", mberManageVO);
|
|
| 2646 |
- } |
|
| 2647 |
- /* |
|
| 2648 |
- { // 발송건수
|
|
| 2649 |
- mjonMsgVO.setReserveYn("N");
|
|
| 2650 |
- List<MjonMsgVO> sendTotList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); |
|
| 2651 |
- model.addAttribute("sendTotList", sendTotList);
|
|
| 2652 |
- } |
|
| 2653 |
- |
|
| 2654 |
- { // 예약건수
|
|
| 2655 |
- mjonMsgVO.setReserveYn("Y");
|
|
| 2656 |
- List<MjonMsgVO> reservToList = mjonMsgService.selectWithKakaoSendTotCnt(mjonMsgVO); |
|
| 2657 |
- model.addAttribute("reservToList", reservToList);
|
|
| 2658 |
- } |
|
| 2659 |
- */ |
|
| 2660 |
- {// 선거 후보자 정보 조회
|
|
| 2661 |
- MjonCandidateVO mjonCandidateVO = new MjonCandidateVO(); |
|
| 2662 |
- if("p".equals(mberManageVO.getDept())) { //개인회원 선거 후보자 정보 불러오기
|
|
| 2663 |
- mjonCandidateVO = mjonCandidateService.selectCandidateDataInfo(userId); |
|
| 2664 |
- if(mjonCandidateVO != null) {
|
|
| 2665 |
- mjonCandidateVO.setRegidentNo1(egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo1())); |
|
| 2666 |
- mjonCandidateVO.setRegidentNo2(egovCryptoUtil.decrypt(mjonCandidateVO.getRegidentNo2())); |
|
| 2667 |
- } |
|
| 2668 |
- } |
|
| 2669 |
- model.addAttribute("mjonCandidateVO", mjonCandidateVO);
|
|
| 2670 |
- } |
|
| 2671 |
- |
|
| 2672 |
- |
|
| 2673 |
- {
|
|
| 2674 |
- /** |
|
| 2675 |
- * 후불제 회원 관련 사용 요금 내역 정보 조회하기 |
|
| 2676 |
- * 20231228 우영두 추가 |
|
| 2677 |
- * 누적사용금액, 누적 납부금액, 당월 납부 예상금액 정보 조회 |
|
| 2678 |
- * |
|
| 2679 |
- * */ |
|
| 2680 |
- |
|
| 2681 |
- //누적 사용금액 조회 (캐시 테이블에서 현재까지 사용된 금액 합산 - 캐시 테이블에서 "-"로 사용된 금액만 합산) |
|
| 2682 |
- String totSumCashAfterPay = mjonPayService.selectTotalSumCashForAfterPay(userId); |
|
| 2683 |
- model.addAttribute("totSumCashAfterPay", totSumCashAfterPay);
|
|
| 2684 |
- |
|
| 2685 |
- //누적 사용 포인트 조회 (포인트 테이블에서 현재까지 사용된 포인트 합산 - 회원 포인트 정보 업데이트시 사용되는 쿼리 이용) |
|
| 2686 |
- String totSumPointAfterPay = mjonPayService.selectTotalSumPointForAfterPay(userId); |
|
| 2687 |
- model.addAttribute("totSumPointAfterPay", totSumPointAfterPay);
|
|
| 2688 |
- |
|
| 2689 |
- //누적 납부금액 조회 (후불회원이 사용금액을 실 납부한 금액 합산 - 미납 금액 제외한 총 합산 금액) |
|
| 2690 |
- String totSumPaymentAfterPay = mjonPayService.selectTotSumPaymentAfterPay(userId); |
|
| 2691 |
- model.addAttribute("totSumPaymentAfterPay", totSumPaymentAfterPay);
|
|
| 2692 |
- |
|
| 2693 |
- //누적 납부 포인트 조회 ( 누적 납부금액 합산에 대한 2% 포인트 정보 계산) |
|
| 2694 |
- float p_i_re_point = 0; |
|
| 2695 |
- JoinSettingVO sysJoinSetVO = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 2696 |
- if (sysJoinSetVO != null) {
|
|
| 2697 |
- p_i_re_point = sysJoinSetVO.getPointPer(); |
|
| 2698 |
- } |
|
| 2699 |
- int paymentPointAfterPay = Math.round((Float.parseFloat(totSumPaymentAfterPay) * p_i_re_point / 100)); |
|
| 2700 |
- model.addAttribute("sumPaymentPointAfterPay", paymentPointAfterPay);
|
|
| 2701 |
- |
|
| 2702 |
- //당월 납부 예상금액 (누적 사용금액 합산 - 누적 납부금액 합산 정보 계산) |
|
| 2703 |
- |
|
| 2704 |
- float unPaymentAfterPay = Float.parseFloat(totSumCashAfterPay) - Float.parseFloat(totSumPaymentAfterPay); |
|
| 2705 |
- model.addAttribute("unPaymentAfterPay", unPaymentAfterPay);
|
|
| 2706 |
- |
|
| 2707 |
- //당월 납부 예상 포인트 (당월 납부 예상 금액에 대한 2% 포인트 정보 계산) |
|
| 2708 |
- int unPaymentPointAfterPay = Math.round((unPaymentAfterPay * p_i_re_point / 100)); |
|
| 2709 |
- model.addAttribute("unPaymentPointAfterPay", unPaymentPointAfterPay);
|
|
| 2710 |
- |
|
| 2711 |
- /* |
|
| 2712 |
- * 2024.02.06 후불제 회원 중 협의단가를 사용하는 회원은 포인트 적립이 되지 않아야함. |
|
| 2713 |
- * 후불제 협의 단가 여부 체크 |
|
| 2714 |
- * 모든 협의 단가 금액을 합산하여 0보다 크면 협의단가 있음. |
|
| 2715 |
- * */ |
|
| 2716 |
- float shortPrice = mberManageVO.getShortPrice(); |
|
| 2717 |
- float longPrice = mberManageVO.getLongPrice(); |
|
| 2718 |
- float picturePrice = mberManageVO.getPicturePrice() + mberManageVO.getPicture2Price() + mberManageVO.getPicture3Price(); |
|
| 2719 |
- float kakaoAtPrice = mberManageVO.getKakaoAtPrice(); |
|
| 2720 |
- float kakaoFtPrice = mberManageVO.getKakaoFtPrice(); |
|
| 2721 |
- float totPrice = shortPrice + longPrice + picturePrice + kakaoAtPrice + kakaoFtPrice; |
|
| 2722 |
- String negoPriceYn = "N"; |
|
| 2723 | 2627 |
|
| 2724 |
- if(totPrice > 0) {
|
|
| 2725 |
- negoPriceYn = "Y"; |
|
| 2726 |
- } |
|
| 2727 |
- model.addAttribute("negoPriceYn", negoPriceYn);
|
|
| 2728 |
- |
|
| 2729 |
- } |
|
| 2730 |
- {
|
|
| 2731 |
- // 초기 날짜 셋팅 |
|
| 2732 |
- model.addAttribute("startDate", DateUtils.getDateMonthsAgo(12));
|
|
| 2733 |
- model.addAttribute("endDate", DateUtils.getCurrentDate());
|
|
| 2734 |
- } |
|
| 2628 |
+// // 비즈니스 로직 부분 |
|
| 2629 |
+ Map<String, Object> resultMap = mjonPayService.payUserSWList(mjonPayVO); |
|
| 2630 |
+ |
|
| 2631 |
+ |
|
| 2632 |
+ model.addAttribute("usedCashTotList", resultMap.get("usedCashTotList"));
|
|
| 2633 |
+ model.addAttribute("mjonCandidateVO", resultMap.get("mjonCandidateVO"));
|
|
| 2634 |
+ model.addAttribute("mberManageVO", resultMap.get("mberManageVO"));
|
|
| 2635 |
+ model.addAttribute("totSumCashAfterPay", resultMap.get("totSumCashAfterPay"));
|
|
| 2636 |
+ model.addAttribute("totSumPointAfterPay", resultMap.get("totSumPointAfterPay"));
|
|
| 2637 |
+ model.addAttribute("totSumPaymentAfterPay", resultMap.get("totSumPaymentAfterPay"));
|
|
| 2638 |
+ model.addAttribute("sumPaymentPointAfterPay", resultMap.get("sumPaymentPointAfterPay"));
|
|
| 2639 |
+ model.addAttribute("unPaymentAfterPay", resultMap.get("unPaymentAfterPay"));
|
|
| 2640 |
+ model.addAttribute("unPaymentPointAfterPay", resultMap.get("unPaymentPointAfterPay"));
|
|
| 2641 |
+ model.addAttribute("negoPriceYn", resultMap.get("negoPriceYn"));
|
|
| 2642 |
+ model.addAttribute("startDate", resultMap.get("startDate"));
|
|
| 2643 |
+ model.addAttribute("endDate", resultMap.get("endDate"));
|
|
| 2644 |
+ |
|
| 2735 | 2645 |
|
| 2736 | 2646 |
return "/web/pay/PayUserSWList"; |
| 2737 | 2647 |
} |
... | ... | @@ -2749,8 +2659,8 @@ |
| 2749 | 2659 |
* @return "/web/member/pay/PayUserSWListAjax.do" |
| 2750 | 2660 |
* @throws Exception |
| 2751 | 2661 |
*/ |
| 2752 |
- @RequestMapping(value= {"/web/member/pay/PayUserSWListAjax.do"})
|
|
| 2753 |
- public String PayUserSWListAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
|
| 2662 |
+ @RequestMapping(value= {"/web/member/pay/payUserSWListAjax.do"})
|
|
| 2663 |
+ public String payUserSWListAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
|
|
| 2754 | 2664 |
HttpServletRequest request, |
| 2755 | 2665 |
ModelMap model) throws Exception{
|
| 2756 | 2666 |
|
... | ... | @@ -2774,29 +2684,12 @@ |
| 2774 | 2684 |
mjonMsgVO.setLastIndex(paginationInfo.getLastRecordIndex()); |
| 2775 | 2685 |
mjonMsgVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); |
| 2776 | 2686 |
|
| 2777 |
- if("".equals(mjonMsgVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
|
| 2778 |
- mjonMsgVO.setSearchSortCnd("regDate");
|
|
| 2779 |
- mjonMsgVO.setSearchSortOrd("desc");
|
|
| 2780 |
- } |
|
| 2687 |
+ Map<String, Object> resultMap = mjonPayService.payUserSWListAjax(mjonMsgVO); |
|
| 2781 | 2688 |
|
| 2782 |
- // 검색 데이터가 없거나 |
|
| 2783 |
- // 시작일자가 종료일자보다 이후이거나 |
|
| 2784 |
- // 총 기간이 365일이 넘으면 현재일부터 365일 전 날짜를 넣어서 검색 |
|
| 2785 |
- if(!DateUtils.dateChkAndValueChk(mjonMsgVO.getStartDate(),mjonMsgVO.getEndDate(), 12 )) {
|
|
| 2786 |
- |
|
| 2787 |
- mjonMsgVO.setStartDate(DateUtils.getDateMonthsAgo(12)); |
|
| 2788 |
- mjonMsgVO.setEndDate(DateUtils.getCurrentDate()); |
|
| 2789 |
- |
|
| 2790 |
- }; |
|
| 2791 |
- |
|
| 2792 |
- List<MjonMsgVO> payUserSWList = mjonMsgDataService.selectPayUserSWList(mjonMsgVO); |
|
| 2793 |
- |
|
| 2794 |
- paginationInfo.setTotalRecordCount(payUserSWList.size()> 0 ? payUserSWList.get(0).getTotCnt() : 0); |
|
| 2689 |
+ paginationInfo.setTotalRecordCount((int)resultMap.get("totCnt"));
|
|
| 2795 | 2690 |
model.addAttribute("paginationInfo", paginationInfo);
|
| 2796 |
- model.addAttribute("payUserSWList", payUserSWList);
|
|
| 2797 |
- |
|
| 2798 |
- model.addAttribute("totSuccSendPrice", payUserSWList.size() > 0 ? PayUtils.getTrimToFirstDecimal(payUserSWList.get(0).getTotSuccSendPrice()) : 0);
|
|
| 2799 |
- |
|
| 2691 |
+ model.addAttribute("payUserSWList", resultMap.get("payUserSWList"));
|
|
| 2692 |
+ model.addAttribute("totSuccSendPrice", resultMap.get("totSuccSendPrice"));
|
|
| 2800 | 2693 |
model.addAttribute("mjonMsgVO", mjonMsgVO);
|
| 2801 | 2694 |
|
| 2802 | 2695 |
|
... | ... | @@ -2878,7 +2771,7 @@ |
| 2878 | 2771 |
font.setBoldweight(Font.BOLDWEIGHT_BOLD); //글씨 bold |
| 2879 | 2772 |
|
| 2880 | 2773 |
sheet.setColumnWidth(1, 5000); // 칼럼의 폭 조절 |
| 2881 |
- sheet.setColumnWidth(4, 10000); // 칼럼의 폭 조절 |
|
| 2774 |
+ sheet.setColumnWidth(3, 10000); // 칼럼의 폭 조절 |
|
| 2882 | 2775 |
|
| 2883 | 2776 |
try{
|
| 2884 | 2777 |
|
... | ... | @@ -2903,6 +2796,7 @@ |
| 2903 | 2796 |
sheet.addMergedRegion(new CellRangeAddress(0,1,1,1)); //셀병합 |
| 2904 | 2797 |
sheet.addMergedRegion(new CellRangeAddress(0,1,2,2)); //셀병합 |
| 2905 | 2798 |
sheet.addMergedRegion(new CellRangeAddress(0,1,3,3)); //셀병합 |
| 2799 |
+ sheet.addMergedRegion(new CellRangeAddress(0,1,6,6)); //셀병합 |
|
| 2906 | 2800 |
|
| 2907 | 2801 |
|
| 2908 | 2802 |
cell = row.createCell(0); |
... | ... | @@ -2910,45 +2804,28 @@ |
| 2910 | 2804 |
cell.setCellStyle(style); |
| 2911 | 2805 |
|
| 2912 | 2806 |
cell = row.createCell(1); |
| 2913 |
- cell.setCellValue("날짜");
|
|
| 2807 |
+ cell.setCellValue("발송일시");
|
|
| 2914 | 2808 |
cell.setCellStyle(style); |
| 2915 | 2809 |
|
| 2916 | 2810 |
cell = row.createCell(2); |
| 2917 |
- cell.setCellValue("문자유형");
|
|
| 2811 |
+ cell.setCellValue("형태");
|
|
| 2918 | 2812 |
cell.setCellStyle(style); |
| 2919 | 2813 |
|
| 2920 | 2814 |
cell = row.createCell(3); |
| 2921 |
- cell.setCellValue("발송건수");
|
|
| 2922 |
- cell.setCellStyle(style); |
|
| 2923 |
- |
|
| 2924 |
- cell = row.createCell(4); |
|
| 2925 | 2815 |
cell.setCellValue("내용");
|
| 2926 | 2816 |
cell.setCellStyle(style); |
| 2927 | 2817 |
|
| 2928 |
- /*cell = row.createCell(5); |
|
| 2929 |
- cell.setCellValue("충전");
|
|
| 2930 |
- sheet.addMergedRegion(new CellRangeAddress(0,0,5,6)); //셀병합 |
|
| 2818 |
+ cell = row.createCell(4); |
|
| 2819 |
+ cell.setCellValue("발송건수");
|
|
| 2820 |
+ sheet.addMergedRegion(new CellRangeAddress(0,0,4,5)); //셀병합 |
|
| 2931 | 2821 |
cell.setCellStyle(style); |
| 2932 |
- |
|
| 2933 |
- cell = row.createCell(6); |
|
| 2934 |
- cell.setCellStyle(style);*/ |
|
| 2935 |
- |
|
| 2822 |
+ |
|
| 2936 | 2823 |
cell = row.createCell(5); |
| 2937 |
- cell.setCellValue("사용");
|
|
| 2938 |
- sheet.addMergedRegion(new CellRangeAddress(0,0,5,6)); //셀병합 |
|
| 2939 | 2824 |
cell.setCellStyle(style); |
| 2940 | 2825 |
|
| 2941 | 2826 |
cell = row.createCell(6); |
| 2827 |
+ cell.setCellValue("금액(원)");
|
|
| 2942 | 2828 |
cell.setCellStyle(style); |
| 2943 |
- |
|
| 2944 |
- |
|
| 2945 |
- /*cell = row.createCell(9); |
|
| 2946 |
- cell.setCellValue("잔액");
|
|
| 2947 |
- sheet.addMergedRegion(new CellRangeAddress(0,0,9,10)); //셀병합 |
|
| 2948 |
- cell.setCellStyle(style); |
|
| 2949 |
- |
|
| 2950 |
- cell = row.createCell(10); |
|
| 2951 |
- cell.setCellStyle(style);*/ |
|
| 2952 | 2829 |
|
| 2953 | 2830 |
row = sheet.createRow(1); |
| 2954 | 2831 |
|
... | ... | @@ -2965,31 +2842,15 @@ |
| 2965 | 2842 |
cell.setCellStyle(style); |
| 2966 | 2843 |
|
| 2967 | 2844 |
cell = row.createCell(4); |
| 2845 |
+ cell.setCellValue("성공");
|
|
| 2968 | 2846 |
cell.setCellStyle(style); |
| 2969 |
- |
|
| 2970 |
- /*cell = row.createCell(5); |
|
| 2971 |
- cell.setCellValue("충전금");
|
|
| 2972 |
- cell.setCellStyle(style); |
|
| 2973 |
- |
|
| 2974 |
- cell = row.createCell(6); |
|
| 2975 |
- cell.setCellValue("포인트");
|
|
| 2976 |
- cell.setCellStyle(style);*/ |
|
| 2977 | 2847 |
|
| 2978 | 2848 |
cell = row.createCell(5); |
| 2979 |
- cell.setCellValue("충전금");
|
|
| 2849 |
+ cell.setCellValue("실패");
|
|
| 2980 | 2850 |
cell.setCellStyle(style); |
| 2981 | 2851 |
|
| 2982 | 2852 |
cell = row.createCell(6); |
| 2983 |
- cell.setCellValue("포인트");
|
|
| 2984 | 2853 |
cell.setCellStyle(style); |
| 2985 |
- |
|
| 2986 |
- /*cell = row.createCell(9); |
|
| 2987 |
- cell.setCellValue("충전금");
|
|
| 2988 |
- cell.setCellStyle(style); |
|
| 2989 |
- |
|
| 2990 |
- cell = row.createCell(10); |
|
| 2991 |
- cell.setCellValue("포인트");
|
|
| 2992 |
- cell.setCellStyle(style);*/ |
|
| 2993 | 2854 |
|
| 2994 | 2855 |
DecimalFormat formatter = new DecimalFormat("###,###.##");
|
| 2995 | 2856 |
String befCash = ""; |
... | ... | @@ -3033,15 +2894,11 @@ |
| 3033 | 2894 |
if(j==0) cell.setCellValue(i+1); //번호 |
| 3034 | 2895 |
if(j==1) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getRegDate()); //결제일시 |
| 3035 | 2896 |
if(j==2) cell.setCellValue(msgType); //문자유형 |
| 3036 |
- if(j==3) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendCnt()); //발송건수 |
|
| 3037 |
- if(j==4) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSmsTxt()); //내용 |
|
| 3038 |
- if(j==5) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendPrice()); //충전 - 충전금 |
|
| 3039 |
- if(j==6) cell.setCellValue(0); //충전 - 포인트 |
|
| 3040 |
- /*if(j==7) cell.setCellValue(totPrice); //사용 - 충전금 |
|
| 3041 |
- if(j==8) cell.setCellValue(0); //사용 - 포인트 |
|
| 3042 |
- if(j==9) cell.setCellValue(thisPoint); //잔액 - 충전금 |
|
| 3043 |
- if(j==10) cell.setCellValue(befPoint); //잔액 - 포인트 |
|
| 3044 |
-*/ } |
|
| 2897 |
+ if(j==3) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSmsTxt()); //내용 |
|
| 2898 |
+ if(j==4) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendCnt()); //성공건수 |
|
| 2899 |
+ if(j==5) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getFailSendCnt()); //실패건수 |
|
| 2900 |
+ if(j==6) cell.setCellValue(((MjonMsgVO)payUserList.get(i)).getSuccSendPrice()); //금액 |
|
| 2901 |
+ } |
|
| 3045 | 2902 |
} |
| 3046 | 2903 |
} |
| 3047 | 2904 |
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
|
... | ... | @@ -5051,28 +4908,11 @@ |
| 5051 | 4908 |
model.addAttribute("resultList", payUserSumList);
|
| 5052 | 4909 |
|
| 5053 | 4910 |
// 수신자 정보 |
| 5054 |
- String mberNm = ""; // 회사명 |
|
| 5055 |
- String managerNm = ""; // 담당자명 |
|
| 5056 |
- String moblphonNo = ""; // 연락처 |
|
| 5057 |
- MberManageVO mberManageVO = new MberManageVO(); |
|
| 5058 |
- mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 5059 |
- if (mberManageVO != null) {
|
|
| 5060 |
- // 회원종류 p-개인 c-기업 |
|
| 5061 |
- if (mberManageVO.getDept().equals("c")) {
|
|
| 5062 |
- mberNm = mberManageVO.getMberNm(); |
|
| 5063 |
- managerNm = mberManageVO.getManagerNm(); |
|
| 5064 |
- moblphonNo = mberManageVO.getMoblphonNo(); |
|
| 5065 |
- } |
|
| 5066 |
- else {
|
|
| 5067 |
- mberNm = mberManageVO.getMberNm(); |
|
| 5068 |
- managerNm = mberManageVO.getMberNm(); |
|
| 5069 |
- moblphonNo = mberManageVO.getMoblphonNo(); |
|
| 5070 |
- } |
|
| 5071 |
- } |
|
| 5072 |
- |
|
| 5073 |
- model.addAttribute("mberNm", mberNm);
|
|
| 5074 |
- model.addAttribute("managerNm", managerNm);
|
|
| 5075 |
- model.addAttribute("moblphonNo", moblphonNo);
|
|
| 4911 |
+ MJUtil mjUtil = new MJUtil(); |
|
| 4912 |
+ MberManageVO mberManageVO = mjonMsgDataService.selectMberManageInfo(userId); |
|
| 4913 |
+ mberManageVO.setMoblphonNo(mjUtil.addDash(mberManageVO.getMoblphonNo())); |
|
| 4914 |
+ mberManageVO.setBizNo(mjUtil.bizNoAddDash(mberManageVO.getBizNo())); |
|
| 4915 |
+ model.addAttribute("mberManageVO", mberManageVO);
|
|
| 5076 | 4916 |
|
| 5077 | 4917 |
//부가세 포함 가격 정보 계산 |
| 5078 | 4918 |
double addTax = Math.round(totalSumPrice * 0.1); |
... | ... | @@ -6190,7 +6030,42 @@ |
| 6190 | 6030 |
|
| 6191 | 6031 |
return "/uss/ion/pay/cashPointSendList"; |
| 6192 | 6032 |
} |
| 6193 |
- |
|
| 6033 |
+ |
|
| 6034 |
+ /** |
|
| 6035 |
+ * * 거래명세서 팝업 |
|
| 6036 |
+ * @param searchVO |
|
| 6037 |
+ * @param model |
|
| 6038 |
+ * @return "/web/member/pay/payInvoicePopupAjax.do" |
|
| 6039 |
+ * @throws Exception |
|
| 6040 |
+ */ |
|
| 6041 |
+ @RequestMapping(value= {"/web/member/pay/payInvoicePopupAjax.do"})
|
|
| 6042 |
+ public String printInvoiceAjax( |
|
| 6043 |
+ @ModelAttribute("searchVO") MjonPayVO mjonPayVO
|
|
| 6044 |
+ , RedirectAttributes redirectAttributes |
|
| 6045 |
+ , ModelMap model) throws Exception {
|
|
| 6046 |
+ |
|
| 6047 |
+ |
|
| 6048 |
+ |
|
| 6049 |
+ //로그인 권한정보 불러오기 |
|
| 6050 |
+ LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
|
| 6051 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 6052 |
+ |
|
| 6053 |
+ if(loginVO == null) {
|
|
| 6054 |
+ //redirectAttributes.addFlashAttribute("message", "문자온 서비스는 로그인 후 이용 가능합니다.");
|
|
| 6055 |
+ return "redirect:/web/user/login/login.do"; |
|
| 6056 |
+ } |
|
| 6057 |
+ |
|
| 6058 |
+ mjonPayVO.setUserId(userId); |
|
| 6059 |
+ |
|
| 6060 |
+ //결제 정보 불러오기 |
|
| 6061 |
+ MJUtil mjUtil = new MJUtil(); |
|
| 6062 |
+ MjonPayVO result = mjonPayService.selectPayDetail(mjonPayVO); |
|
| 6063 |
+ result.setMbtlNum(mjUtil.addDash(result.getMbtlNum())); |
|
| 6064 |
+ result.setBizNo(mjUtil.bizNoAddDash(result.getBizNo())); |
|
| 6065 |
+ model.addAttribute("result", result);
|
|
| 6066 |
+ |
|
| 6067 |
+ return "web/pay/payInvoicePrintPopup"; |
|
| 6068 |
+ } |
|
| 6194 | 6069 |
/** |
| 6195 | 6070 |
* @param p_pattern |
| 6196 | 6071 |
* @param p_mjonPayVO |
--- src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
... | ... | @@ -278,6 +278,8 @@ |
| 278 | 278 |
try {
|
| 279 | 279 |
// 다음 결제시 결제수단 SELECT |
| 280 | 280 |
nextPayMethod = userManageService.selectNextPayMethod(userId); |
| 281 |
+ // 실제 마지막 결제 방식 - |
|
| 282 |
+ |
|
| 281 | 283 |
} |
| 282 | 284 |
catch(Exception e) {
|
| 283 | 285 |
isSuccess = false; |
... | ... | @@ -1640,6 +1642,45 @@ |
| 1640 | 1642 |
return "web/cop/kgmV2/bankOkUrl"; |
| 1641 | 1643 |
} |
| 1642 | 1644 |
|
| 1645 |
+ /** |
|
| 1646 |
+ * 마지막 결제수단 SELECT |
|
| 1647 |
+ * @throws Exception |
|
| 1648 |
+ */ |
|
| 1649 |
+ @RequestMapping(value = "/web/member/pay/selectLastPayMethodAjax.do") |
|
| 1650 |
+ public ModelAndView selectLastPayMethodAjax(MjonPayVO mjonPayVO, |
|
| 1651 |
+ HttpServletRequest request ) throws Exception {
|
|
| 1652 |
+ |
|
| 1653 |
+ ModelAndView modelAndView = new ModelAndView(); |
|
| 1654 |
+ modelAndView.setViewName("jsonView");
|
|
| 1655 |
+ |
|
| 1656 |
+ boolean isSuccess = true; |
|
| 1657 |
+ String msg = ""; |
|
| 1658 |
+ String nextPayMethod = ""; |
|
| 1659 |
+ |
|
| 1660 |
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); |
|
| 1661 |
+ String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
|
| 1662 |
+ |
|
| 1663 |
+ if(userId == null) {
|
|
| 1664 |
+ isSuccess = false; |
|
| 1665 |
+ msg = "로그인이 필요합니다."; |
|
| 1666 |
+ } |
|
| 1667 |
+ |
|
| 1668 |
+ try {
|
|
| 1669 |
+ // 다음 결제시 결제수단 SELECT |
|
| 1670 |
+ nextPayMethod = userManageService.selectLastPayMethod(userId); |
|
| 1671 |
+ } |
|
| 1672 |
+ catch(Exception e) {
|
|
| 1673 |
+ isSuccess = false; |
|
| 1674 |
+ msg = e.getMessage(); |
|
| 1675 |
+ } |
|
| 1676 |
+ |
|
| 1677 |
+ modelAndView.addObject("isSuccess", isSuccess);
|
|
| 1678 |
+ modelAndView.addObject("msg", msg);
|
|
| 1679 |
+ modelAndView.addObject("nextPayMethod", nextPayMethod);
|
|
| 1680 |
+ |
|
| 1681 |
+ return modelAndView; |
|
| 1682 |
+ } |
|
| 1683 |
+ |
|
| 1643 | 1684 |
// Get Server Path |
| 1644 | 1685 |
public static String getKgServerPath(HttpServletRequest request) {
|
| 1645 | 1686 |
String kgmPath = request.getScheme() + "://" + request.getServerName() +":" + request.getServerPort(); |
--- src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java
+++ src/main/java/itn/let/uat/uia/service/impl/EgovMberManageServiceImpl.java
... | ... | @@ -1,5 +1,10 @@ |
| 1 | 1 |
package itn.let.uat.uia.service.impl; |
| 2 | 2 |
|
| 3 |
+import java.math.BigDecimal; |
|
| 4 |
+import java.math.RoundingMode; |
|
| 5 |
+import java.time.LocalDate; |
|
| 6 |
+import java.time.format.DateTimeFormatter; |
|
| 7 |
+import java.time.temporal.ChronoUnit; |
|
| 3 | 8 |
import java.util.List; |
| 4 | 9 |
|
| 5 | 10 |
import javax.annotation.Resource; |
... | ... | @@ -11,14 +16,16 @@ |
| 11 | 16 |
|
| 12 | 17 |
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; |
| 13 | 18 |
import egovframework.rte.fdl.idgnr.EgovIdGnrService; |
| 19 |
+import itn.com.cmm.util.StringUtil; |
|
| 14 | 20 |
import itn.com.uss.olh.hpc.service.HackIpService; |
| 15 | 21 |
import itn.com.uss.olh.hpc.service.HackIpVO; |
| 16 | 22 |
import itn.com.utl.fcc.service.EgovStringUtil; |
| 17 |
-import itn.let.mjo.cert.service.CertVO; |
|
| 23 |
+import itn.let.mjo.msgdata.service.MjonMsgDataService; |
|
| 18 | 24 |
import itn.let.mjo.msgsent.service.MjonMsgSentVO; |
| 19 | 25 |
import itn.let.mjo.pay.service.KmcVO; |
| 20 | 26 |
import itn.let.sec.rgm.service.AuthorGroup; |
| 21 | 27 |
import itn.let.sec.rgm.service.EgovAuthorGroupService; |
| 28 |
+import itn.let.sym.site.service.JoinSettingVO; |
|
| 22 | 29 |
import itn.let.uat.uia.service.AuthCertVO; |
| 23 | 30 |
import itn.let.uss.umt.service.AdmProcHstryVO; |
| 24 | 31 |
import itn.let.uss.umt.service.EgovMberManageService; |
... | ... | @@ -81,6 +88,10 @@ |
| 81 | 88 |
/*아이피 차단*/ |
| 82 | 89 |
@Resource(name = "hackIpService") |
| 83 | 90 |
private HackIpService hackIpService; |
| 91 |
+ |
|
| 92 |
+ /* MjonMsgDataService */ |
|
| 93 |
+ @Resource(name = "MjonMsgDataService") |
|
| 94 |
+ private MjonMsgDataService mjonMsgDataService; |
|
| 84 | 95 |
|
| 85 | 96 |
|
| 86 | 97 |
@Override |
... | ... | @@ -621,4 +632,71 @@ |
| 621 | 632 |
return mberManageDAO.findTopByregDateFromCertLog(authCertVO); |
| 622 | 633 |
} |
| 623 | 634 |
|
| 635 |
+ public MberManageVO selectMberHeaderInfo(String mberId) throws Exception {
|
|
| 636 |
+ //회원 단가, 이벤트 단가, 이벤트 종료일 등 조회 |
|
| 637 |
+ MberManageVO headerInfo = mberManageDAO.selectMberHeaderInfo(mberId); |
|
| 638 |
+ //기본 단가 조회 |
|
| 639 |
+ JoinSettingVO sysPrice = mjonMsgDataService.selectJoinSettingInfo(); |
|
| 640 |
+ |
|
| 641 |
+ //이벤트 종료까지 남은 일 수 계산 |
|
| 642 |
+ long eventLeftDay = calculateEventLeftDay(headerInfo.getEventEndDate()); |
|
| 643 |
+ headerInfo.setEventLeftDay(String.valueOf(eventLeftDay)); |
|
| 644 |
+ |
|
| 645 |
+ //이벤트 유무에 따라 이벤트 잔액 or 잔액 사용 |
|
| 646 |
+ boolean isEventActive = eventLeftDay > 0; |
|
| 647 |
+ double money = isEventActive ? headerInfo.getEventRemainCash() : headerInfo.getUserMoney(); |
|
| 648 |
+ |
|
| 649 |
+ //이벤트, 회원 단가가 0일 시 기본 단가 사용 |
|
| 650 |
+ setPrices(headerInfo, sysPrice, isEventActive); |
|
| 651 |
+ |
|
| 652 |
+ //발송가능 건수 조회 |
|
| 653 |
+ calculateAvailableCounts(headerInfo, money); |
|
| 654 |
+ |
|
| 655 |
+ return headerInfo; |
|
| 656 |
+ } |
|
| 657 |
+ |
|
| 658 |
+ private long calculateEventLeftDay(String eventEndDateStr) {
|
|
| 659 |
+ if (StringUtil.isEmpty(eventEndDateStr)) return 0; |
|
| 660 |
+ LocalDate today = LocalDate.now(); |
|
| 661 |
+ LocalDate eventEndDate = LocalDate.parse(eventEndDateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
| 662 |
+ return ChronoUnit.DAYS.between(today, eventEndDate); |
|
| 663 |
+ } |
|
| 664 |
+ |
|
| 665 |
+ private void setPrices(MberManageVO headerInfo, JoinSettingVO sysPrice, boolean isEventActive) {
|
|
| 666 |
+ if (isEventActive) {
|
|
| 667 |
+ headerInfo.setHeaderShortPrice(priceChk(headerInfo.getEventShortPrice(), sysPrice.getShortPrice())); |
|
| 668 |
+ headerInfo.setHeaderLongPrice(priceChk(headerInfo.getEventLongPrice(), sysPrice.getLongPrice())); |
|
| 669 |
+ headerInfo.setHeaderPicturePrice(priceChk(headerInfo.getEventPicturePrice(), sysPrice.getPicturePrice())); |
|
| 670 |
+ headerInfo.setHeaderPicture2Price(priceChk(headerInfo.getEventPicture2Price(), sysPrice.getPicture2Price())); |
|
| 671 |
+ headerInfo.setHeaderPicture3Price(priceChk(headerInfo.getEventPicture3Price(), sysPrice.getPicture3Price())); |
|
| 672 |
+ } else {
|
|
| 673 |
+ headerInfo.setHeaderShortPrice(priceChk(headerInfo.getShortPrice(), sysPrice.getShortPrice())); |
|
| 674 |
+ headerInfo.setHeaderLongPrice(priceChk(headerInfo.getLongPrice(), sysPrice.getLongPrice())); |
|
| 675 |
+ headerInfo.setHeaderPicturePrice(priceChk(headerInfo.getPicturePrice(), sysPrice.getPicturePrice())); |
|
| 676 |
+ headerInfo.setHeaderPicture2Price(priceChk(headerInfo.getPicture2Price(), sysPrice.getPicture2Price())); |
|
| 677 |
+ headerInfo.setHeaderPicture3Price(priceChk(headerInfo.getPicture3Price(), sysPrice.getPicture3Price())); |
|
| 678 |
+ } |
|
| 679 |
+ // 카카오, 팩스 단가는 기본 단가 고정 |
|
| 680 |
+ headerInfo.setHeaderKakaoAtPrice(sysPrice.getKakaoAtPrice()); |
|
| 681 |
+ headerInfo.setHeaderFaxPrice(sysPrice.getFaxPrice()); |
|
| 682 |
+ } |
|
| 683 |
+ |
|
| 684 |
+ private float priceChk(float price, float sysPrice) {
|
|
| 685 |
+ return price > 0 ? price : sysPrice; |
|
| 686 |
+ } |
|
| 687 |
+ |
|
| 688 |
+ private void calculateAvailableCounts(MberManageVO headerInfo, double money) {
|
|
| 689 |
+ headerInfo.setHeaderShortCnt(calcCount(money, headerInfo.getHeaderShortPrice())); |
|
| 690 |
+ headerInfo.setHeaderLongCnt(calcCount(money, headerInfo.getHeaderLongPrice())); |
|
| 691 |
+ headerInfo.setHeaderPictureCnt(calcCount(money, headerInfo.getHeaderPicturePrice())); |
|
| 692 |
+ headerInfo.setHeaderPicture2Cnt(calcCount(money, headerInfo.getHeaderPicture2Price())); |
|
| 693 |
+ headerInfo.setHeaderPicture3Cnt(calcCount(money, headerInfo.getHeaderPicture3Price())); |
|
| 694 |
+ headerInfo.setHeaderKakaoAtCnt(calcCount(money, headerInfo.getHeaderKakaoAtPrice())); |
|
| 695 |
+ headerInfo.setHeaderFaxCnt(calcCount(money, headerInfo.getHeaderFaxPrice())); |
|
| 696 |
+ } |
|
| 697 |
+ |
|
| 698 |
+ private int calcCount(double money, double price) {
|
|
| 699 |
+ if (price <= 0) return 0; |
|
| 700 |
+ return (int) Math.floor(money / price); |
|
| 701 |
+ } |
|
| 624 | 702 |
}(No newline at end of file) |
--- src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java
+++ src/main/java/itn/let/uat/uia/service/impl/MberManageDAO.java
... | ... | @@ -345,5 +345,8 @@ |
| 345 | 345 |
public String findTopByregDateFromCertLog(AuthCertVO authCertVO) {
|
| 346 | 346 |
return (String)select("mberManageDAO.findTopByregDateFromCertLog", authCertVO);
|
| 347 | 347 |
} |
| 348 |
- |
|
| 348 |
+ |
|
| 349 |
+ public MberManageVO selectMberHeaderInfo(String mberId) {
|
|
| 350 |
+ return (MberManageVO) select("mberManageDAO.selectMberHeaderInfo", mberId);
|
|
| 351 |
+ } |
|
| 349 | 352 |
}(No newline at end of file) |
--- src/main/java/itn/let/uss/umt/service/EgovMberManageService.java
+++ src/main/java/itn/let/uss/umt/service/EgovMberManageService.java
... | ... | @@ -251,4 +251,6 @@ |
| 251 | 251 |
|
| 252 | 252 |
public String findTopByregDateFromCertLog(AuthCertVO authCertVO); |
| 253 | 253 |
|
| 254 |
+ //사용자 헤더 정보(단가, 이벤트 활성화 기간) |
|
| 255 |
+ public MberManageVO selectMberHeaderInfo(String mberId) throws Exception; |
|
| 254 | 256 |
}(No newline at end of file) |
--- src/main/java/itn/let/uss/umt/service/EgovUserManageService.java
+++ src/main/java/itn/let/uss/umt/service/EgovUserManageService.java
... | ... | @@ -220,4 +220,6 @@ |
| 220 | 220 |
|
| 221 | 221 |
public Map<String, Object> selectFaxSendList(FaxGroupDataVO faxGroupDataVO); |
| 222 | 222 |
|
| 223 |
+ // 마지막 결제수단 조회 |
|
| 224 |
+ public String selectLastPayMethod(String mberId) throws Exception; |
|
| 223 | 225 |
}(No newline at end of file) |
--- src/main/java/itn/let/uss/umt/service/MberManageVO.java
+++ src/main/java/itn/let/uss/umt/service/MberManageVO.java
... | ... | @@ -512,6 +512,39 @@ |
| 512 | 512 |
*/ |
| 513 | 513 |
private String secuLoginFlag; |
| 514 | 514 |
|
| 515 |
+ |
|
| 516 |
+ /** |
|
| 517 |
+ * 회원 이벤트 정보 |
|
| 518 |
+ */ |
|
| 519 |
+ private String eventEndDate; //회원 이벤트 종료일자 |
|
| 520 |
+ private double eventRemainCash; //이벤트 차감 후 남은 Cash |
|
| 521 |
+ private float eventShortPrice; //이벤트 단문 가격 |
|
| 522 |
+ private float eventLongPrice; //이벤트 장문 가격 |
|
| 523 |
+ private float eventPicturePrice; //이벤트 그림 1장 가격 |
|
| 524 |
+ private float eventPicture2Price; //이벤트 그림 2장 가격 |
|
| 525 |
+ private float eventPicture3Price; //이벤트 그림 3장 가격 |
|
| 526 |
+ private String eventLeftDay; //이벤트 남은 기간 |
|
| 527 |
+ |
|
| 528 |
+ /** |
|
| 529 |
+ * 헤더 영역 정보(단가, 발송가능 건수) |
|
| 530 |
+ */ |
|
| 531 |
+ private float headerShortPrice; |
|
| 532 |
+ private float headerLongPrice; |
|
| 533 |
+ private float headerPicturePrice; |
|
| 534 |
+ private float headerPicture2Price; |
|
| 535 |
+ private float headerPicture3Price; |
|
| 536 |
+ private float headerKakaoAtPrice; |
|
| 537 |
+ private float headerKakaoFtPrice; |
|
| 538 |
+ private float headerFaxPrice; |
|
| 539 |
+ private int headerShortCnt; |
|
| 540 |
+ private int headerLongCnt; |
|
| 541 |
+ private int headerPictureCnt; |
|
| 542 |
+ private int headerPicture2Cnt; |
|
| 543 |
+ private int headerPicture3Cnt; |
|
| 544 |
+ private int headerKakaoAtCnt; |
|
| 545 |
+ private int headerKakaoFtCnt; |
|
| 546 |
+ private int headerFaxCnt; |
|
| 547 |
+ |
|
| 515 | 548 |
public String getSmsCode() {
|
| 516 | 549 |
return smsCode; |
| 517 | 550 |
} |
... | ... | @@ -1804,6 +1837,150 @@ |
| 1804 | 1837 |
public void setSecuLoginFlag(String secuLoginFlag) {
|
| 1805 | 1838 |
this.secuLoginFlag = secuLoginFlag; |
| 1806 | 1839 |
} |
| 1840 |
+ public String getEventEndDate() {
|
|
| 1841 |
+ return eventEndDate; |
|
| 1842 |
+ } |
|
| 1843 |
+ public void setEventEndDate(String eventEndDate) {
|
|
| 1844 |
+ this.eventEndDate = eventEndDate; |
|
| 1845 |
+ } |
|
| 1846 |
+ public double getEventRemainCash() {
|
|
| 1847 |
+ return eventRemainCash; |
|
| 1848 |
+ } |
|
| 1849 |
+ public void setEventRemainCash(double eventRemainCash) {
|
|
| 1850 |
+ this.eventRemainCash = eventRemainCash; |
|
| 1851 |
+ } |
|
| 1852 |
+ public float getEventShortPrice() {
|
|
| 1853 |
+ return eventShortPrice; |
|
| 1854 |
+ } |
|
| 1855 |
+ public void setEventShortPrice(float eventShortPrice) {
|
|
| 1856 |
+ this.eventShortPrice = eventShortPrice; |
|
| 1857 |
+ } |
|
| 1858 |
+ public float getEventLongPrice() {
|
|
| 1859 |
+ return eventLongPrice; |
|
| 1860 |
+ } |
|
| 1861 |
+ public void setEventLongPrice(float eventLongPrice) {
|
|
| 1862 |
+ this.eventLongPrice = eventLongPrice; |
|
| 1863 |
+ } |
|
| 1864 |
+ public float getEventPicturePrice() {
|
|
| 1865 |
+ return eventPicturePrice; |
|
| 1866 |
+ } |
|
| 1867 |
+ public void setEventPicturePrice(float eventPicturePrice) {
|
|
| 1868 |
+ this.eventPicturePrice = eventPicturePrice; |
|
| 1869 |
+ } |
|
| 1870 |
+ public float getEventPicture2Price() {
|
|
| 1871 |
+ return eventPicture2Price; |
|
| 1872 |
+ } |
|
| 1873 |
+ public void setEventPicture2Price(float eventPicture2Price) {
|
|
| 1874 |
+ this.eventPicture2Price = eventPicture2Price; |
|
| 1875 |
+ } |
|
| 1876 |
+ public float getEventPicture3Price() {
|
|
| 1877 |
+ return eventPicture3Price; |
|
| 1878 |
+ } |
|
| 1879 |
+ public void setEventPicture3Price(float eventPicture3Price) {
|
|
| 1880 |
+ this.eventPicture3Price = eventPicture3Price; |
|
| 1881 |
+ } |
|
| 1882 |
+ public String getEventLeftDay() {
|
|
| 1883 |
+ return eventLeftDay; |
|
| 1884 |
+ } |
|
| 1885 |
+ public void setEventLeftDay(String eventLeftDay) {
|
|
| 1886 |
+ this.eventLeftDay = eventLeftDay; |
|
| 1887 |
+ } |
|
| 1888 |
+ public float getHeaderShortPrice() {
|
|
| 1889 |
+ return headerShortPrice; |
|
| 1890 |
+ } |
|
| 1891 |
+ public void setHeaderShortPrice(float headerShortPrice) {
|
|
| 1892 |
+ this.headerShortPrice = headerShortPrice; |
|
| 1893 |
+ } |
|
| 1894 |
+ public float getHeaderLongPrice() {
|
|
| 1895 |
+ return headerLongPrice; |
|
| 1896 |
+ } |
|
| 1897 |
+ public void setHeaderLongPrice(float headerLongPrice) {
|
|
| 1898 |
+ this.headerLongPrice = headerLongPrice; |
|
| 1899 |
+ } |
|
| 1900 |
+ public float getHeaderPicturePrice() {
|
|
| 1901 |
+ return headerPicturePrice; |
|
| 1902 |
+ } |
|
| 1903 |
+ public void setHeaderPicturePrice(float headerPicturePrice) {
|
|
| 1904 |
+ this.headerPicturePrice = headerPicturePrice; |
|
| 1905 |
+ } |
|
| 1906 |
+ public float getHeaderPicture2Price() {
|
|
| 1907 |
+ return headerPicture2Price; |
|
| 1908 |
+ } |
|
| 1909 |
+ public void setHeaderPicture2Price(float headerPicture2Price) {
|
|
| 1910 |
+ this.headerPicture2Price = headerPicture2Price; |
|
| 1911 |
+ } |
|
| 1912 |
+ public float getHeaderPicture3Price() {
|
|
| 1913 |
+ return headerPicture3Price; |
|
| 1914 |
+ } |
|
| 1915 |
+ public void setHeaderPicture3Price(float headerPicture3Price) {
|
|
| 1916 |
+ this.headerPicture3Price = headerPicture3Price; |
|
| 1917 |
+ } |
|
| 1918 |
+ public int getHeaderShortCnt() {
|
|
| 1919 |
+ return headerShortCnt; |
|
| 1920 |
+ } |
|
| 1921 |
+ public void setHeaderShortCnt(int headerShortCnt) {
|
|
| 1922 |
+ this.headerShortCnt = headerShortCnt; |
|
| 1923 |
+ } |
|
| 1924 |
+ public int getHeaderLongCnt() {
|
|
| 1925 |
+ return headerLongCnt; |
|
| 1926 |
+ } |
|
| 1927 |
+ public void setHeaderLongCnt(int headerLongCnt) {
|
|
| 1928 |
+ this.headerLongCnt = headerLongCnt; |
|
| 1929 |
+ } |
|
| 1930 |
+ public int getHeaderPictureCnt() {
|
|
| 1931 |
+ return headerPictureCnt; |
|
| 1932 |
+ } |
|
| 1933 |
+ public void setHeaderPictureCnt(int headerPictureCnt) {
|
|
| 1934 |
+ this.headerPictureCnt = headerPictureCnt; |
|
| 1935 |
+ } |
|
| 1936 |
+ public int getHeaderPicture2Cnt() {
|
|
| 1937 |
+ return headerPicture2Cnt; |
|
| 1938 |
+ } |
|
| 1939 |
+ public void setHeaderPicture2Cnt(int headerPicture2Cnt) {
|
|
| 1940 |
+ this.headerPicture2Cnt = headerPicture2Cnt; |
|
| 1941 |
+ } |
|
| 1942 |
+ public int getHeaderPicture3Cnt() {
|
|
| 1943 |
+ return headerPicture3Cnt; |
|
| 1944 |
+ } |
|
| 1945 |
+ public void setHeaderPicture3Cnt(int headerPicture3Cnt) {
|
|
| 1946 |
+ this.headerPicture3Cnt = headerPicture3Cnt; |
|
| 1947 |
+ } |
|
| 1948 |
+ public float getHeaderKakaoAtPrice() {
|
|
| 1949 |
+ return headerKakaoAtPrice; |
|
| 1950 |
+ } |
|
| 1951 |
+ public void setHeaderKakaoAtPrice(float headerKakaoAtPrice) {
|
|
| 1952 |
+ this.headerKakaoAtPrice = headerKakaoAtPrice; |
|
| 1953 |
+ } |
|
| 1954 |
+ public float getHeaderKakaoFtPrice() {
|
|
| 1955 |
+ return headerKakaoFtPrice; |
|
| 1956 |
+ } |
|
| 1957 |
+ public void setHeaderKakaoFtPrice(float headerKakaoFtPrice) {
|
|
| 1958 |
+ this.headerKakaoFtPrice = headerKakaoFtPrice; |
|
| 1959 |
+ } |
|
| 1960 |
+ public float getHeaderFaxPrice() {
|
|
| 1961 |
+ return headerFaxPrice; |
|
| 1962 |
+ } |
|
| 1963 |
+ public void setHeaderFaxPrice(float headerFaxPrice) {
|
|
| 1964 |
+ this.headerFaxPrice = headerFaxPrice; |
|
| 1965 |
+ } |
|
| 1966 |
+ public int getHeaderKakaoAtCnt() {
|
|
| 1967 |
+ return headerKakaoAtCnt; |
|
| 1968 |
+ } |
|
| 1969 |
+ public void setHeaderKakaoAtCnt(int headerKakaoAtCnt) {
|
|
| 1970 |
+ this.headerKakaoAtCnt = headerKakaoAtCnt; |
|
| 1971 |
+ } |
|
| 1972 |
+ public int getHeaderKakaoFtCnt() {
|
|
| 1973 |
+ return headerKakaoFtCnt; |
|
| 1974 |
+ } |
|
| 1975 |
+ public void setHeaderKakaoFtCnt(int headerKakaoFtCnt) {
|
|
| 1976 |
+ this.headerKakaoFtCnt = headerKakaoFtCnt; |
|
| 1977 |
+ } |
|
| 1978 |
+ public int getHeaderFaxCnt() {
|
|
| 1979 |
+ return headerFaxCnt; |
|
| 1980 |
+ } |
|
| 1981 |
+ public void setHeaderFaxCnt(int headerFaxCnt) {
|
|
| 1982 |
+ this.headerFaxCnt = headerFaxCnt; |
|
| 1983 |
+ } |
|
| 1807 | 1984 |
|
| 1808 | 1985 |
|
| 1809 | 1986 |
}(No newline at end of file) |
--- src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
+++ src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java
... | ... | @@ -882,5 +882,11 @@ |
| 882 | 882 |
|
| 883 | 883 |
return resultMap; |
| 884 | 884 |
} |
| 885 |
+ |
|
| 886 |
+ // 마지막 결제수단 SELECT |
|
| 887 |
+ @Override |
|
| 888 |
+ public String selectLastPayMethod(String mberId) throws Exception {
|
|
| 889 |
+ return userManageDAO.selectLastPayMethod(mberId); |
|
| 890 |
+ } |
|
| 885 | 891 |
|
| 886 | 892 |
}(No newline at end of file) |
--- src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
+++ src/main/java/itn/let/uss/umt/service/impl/UserManageDAO.java
... | ... | @@ -320,5 +320,9 @@ |
| 320 | 320 |
public int selectUserPrePaymentPGdataCount(String userId) throws Exception{
|
| 321 | 321 |
return (int) select("userManageDAO.selectUserPrePaymentPGdataCount", userId);
|
| 322 | 322 |
} |
| 323 |
- |
|
| 323 |
+ |
|
| 324 |
+ // 마지막 결제수단 SELECT |
|
| 325 |
+ public String selectLastPayMethod(String mberId) throws Exception{
|
|
| 326 |
+ return (String) select("userManageDAO.selectLastPayMethod", mberId);
|
|
| 327 |
+ } |
|
| 324 | 328 |
}(No newline at end of file) |
--- src/main/java/itn/web/MainController.java
+++ src/main/java/itn/web/MainController.java
... | ... | @@ -12,6 +12,9 @@ |
| 12 | 12 |
import java.security.PublicKey; |
| 13 | 13 |
import java.security.spec.RSAPublicKeySpec; |
| 14 | 14 |
import java.text.SimpleDateFormat; |
| 15 |
+import java.time.LocalDate; |
|
| 16 |
+import java.time.format.DateTimeFormatter; |
|
| 17 |
+import java.time.temporal.ChronoUnit; |
|
| 15 | 18 |
import java.util.ArrayList; |
| 16 | 19 |
import java.util.Arrays; |
| 17 | 20 |
import java.util.Collections; |
... | ... | @@ -106,6 +109,7 @@ |
| 106 | 109 |
import itn.let.mjo.addr.service.AddrTransHistService; |
| 107 | 110 |
import itn.let.mjo.addr.service.AddrTransHistVO; |
| 108 | 111 |
import itn.let.mjo.event.service.MjonEventService; |
| 112 |
+import itn.let.mjo.event.service.MjonEventVO; |
|
| 109 | 113 |
import itn.let.mjo.kisa.service.KisaService; |
| 110 | 114 |
import itn.let.mjo.kisa.service.KisaVO; |
| 111 | 115 |
import itn.let.mjo.mjocommon.MjonForienIpChk; |
... | ... | @@ -130,6 +134,7 @@ |
| 130 | 134 |
import itn.let.sym.prm.service.EgovProgrmManageService; |
| 131 | 135 |
import itn.let.sym.prm.service.ProgrmManageVO; |
| 132 | 136 |
import itn.let.sym.site.service.EgovSiteManagerService; |
| 137 |
+import itn.let.sym.site.service.JoinSettingVO; |
|
| 133 | 138 |
import itn.let.sym.site.service.MetaTagVO; |
| 134 | 139 |
import itn.let.sym.site.service.SiteManagerVO; |
| 135 | 140 |
import itn.let.uss.umt.service.EgovMberManageService; |
... | ... | @@ -1256,6 +1261,16 @@ |
| 1256 | 1261 |
model.addAttribute("mberManageVO", userManageService.selectUserInfo(mberManageVO));
|
| 1257 | 1262 |
} |
| 1258 | 1263 |
|
| 1264 |
+ /* |
|
| 1265 |
+ * 회원별 단가, 기본 단가, 이벤트 정보 조회 |
|
| 1266 |
+ * 2025.07.25 이지우 추가 |
|
| 1267 |
+ * */ |
|
| 1268 |
+ MberManageVO mberHeaderInfoVO = new MberManageVO(); |
|
| 1269 |
+ if(loginVO != null) {
|
|
| 1270 |
+ mberHeaderInfoVO = mberManageService.selectMberHeaderInfo(loginVO.getId()); |
|
| 1271 |
+ } |
|
| 1272 |
+ model.addAttribute("mberHeaderInfoVO", mberHeaderInfoVO);
|
|
| 1273 |
+ |
|
| 1259 | 1274 |
return "web/com/webCommonHeader"; |
| 1260 | 1275 |
} |
| 1261 | 1276 |
|
--- src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/addr/Addr_SQL_Mysql.xml
... | ... | @@ -569,10 +569,8 @@ |
| 569 | 569 |
on A.ADDR_GRP_ID = mag.ADDR_GRP_ID |
| 570 | 570 |
WHERE |
| 571 | 571 |
A.MBER_ID = #mberId# |
| 572 |
- AND (A.RECV_STATUS = 'Y' |
|
| 573 |
- or A.RECV_STATUS = 'S' |
|
| 574 |
- or A.RECV_STATUS is null) |
|
| 575 |
- AND mag.DELETE_YN = 'N' |
|
| 572 |
+ AND (A.RECV_STATUS IN ('Y', 'S') OR A.RECV_STATUS IS NULL)
|
|
| 573 |
+ AND (A.ADDR_GRP_ID IS NULL OR MAG.DELETE_YN = 'N') |
|
| 576 | 574 |
</select> |
| 577 | 575 |
|
| 578 | 576 |
<!-- 주소록 상세 조회 --> |
... | ... | @@ -1354,34 +1352,32 @@ |
| 1354 | 1352 |
, BOOKMARK |
| 1355 | 1353 |
, RECV_STATUS |
| 1356 | 1354 |
) |
| 1357 |
- SELECT |
|
| 1358 |
- ADDR_GRP_ID |
|
| 1359 |
- , MBER_ID |
|
| 1360 |
- , ADDR_NM |
|
| 1361 |
- , ADDR_PHONE_NO |
|
| 1362 |
- , ADDR_INFO1 |
|
| 1363 |
- , ADDR_INFO2 |
|
| 1364 |
- , ADDR_INFO3 |
|
| 1365 |
- , ADDR_INFO4 |
|
| 1366 |
- , ADDR_COMMENT |
|
| 1367 |
- , FRST_REGIST_PNTTM |
|
| 1368 |
- , FRST_REGISTER_ID |
|
| 1369 |
- , LAST_UPDT_PNTTM |
|
| 1370 |
- , LAST_UPDUSR_ID |
|
| 1371 |
- , DELETE_YN |
|
| 1372 |
- , BOOKMARK |
|
| 1373 |
- , RECV_STATUS |
|
| 1374 |
- FROM TEMP_MJ_ADDR |
|
| 1375 |
- WHERE MBER_ID = #mberId# |
|
| 1376 |
- AND ADDR_GRP_ID = #addrGrpId# |
|
| 1377 |
- AND BOOKMARK = #bookmark# |
|
| 1378 |
- AND ADDR_PHONE_NO NOT IN |
|
| 1379 |
- ( |
|
| 1380 |
- SELECT ADDR_PHONE_NO FROM MJ_ADDR |
|
| 1381 |
- WHERE MBER_ID = #mberId# |
|
| 1382 |
- AND ADDR_GRP_ID = #addrGrpId# |
|
| 1383 |
- AND BOOKMARK = #bookmark# |
|
| 1384 |
- ) |
|
| 1355 |
+ SELECT t.ADDR_GRP_ID, |
|
| 1356 |
+ t.MBER_ID, |
|
| 1357 |
+ t.ADDR_NM, |
|
| 1358 |
+ FN_GETHYPHEN(t.ADDR_PHONE_NO), |
|
| 1359 |
+ t.ADDR_INFO1, |
|
| 1360 |
+ t.ADDR_INFO2, |
|
| 1361 |
+ t.ADDR_INFO3, |
|
| 1362 |
+ t.ADDR_INFO4, |
|
| 1363 |
+ t.ADDR_COMMENT, |
|
| 1364 |
+ t.FRST_REGIST_PNTTM, |
|
| 1365 |
+ t.FRST_REGISTER_ID, |
|
| 1366 |
+ t.LAST_UPDT_PNTTM, |
|
| 1367 |
+ t.LAST_UPDUSR_ID, |
|
| 1368 |
+ t.DELETE_YN, |
|
| 1369 |
+ t.BOOKMARK, |
|
| 1370 |
+ t.RECV_STATUS |
|
| 1371 |
+ FROM TEMP_MJ_ADDR AS t |
|
| 1372 |
+ LEFT JOIN MJ_ADDR AS m |
|
| 1373 |
+ ON m.MBER_ID = t.MBER_ID |
|
| 1374 |
+ AND m.ADDR_GRP_ID = t.ADDR_GRP_ID |
|
| 1375 |
+ AND m.BOOKMARK = t.BOOKMARK |
|
| 1376 |
+ AND replace(m.ADDR_PHONE_NO, '-', '') = replace(t.ADDR_PHONE_NO, '-', '') |
|
| 1377 |
+ WHERE t.MBER_ID = #mberId# |
|
| 1378 |
+ AND t.ADDR_GRP_ID = #addrGrpId# |
|
| 1379 |
+ AND t.BOOKMARK = #bookmark# |
|
| 1380 |
+ AND m.MBER_ID IS NULL |
|
| 1385 | 1381 |
</insert> |
| 1386 | 1382 |
|
| 1387 | 1383 |
|
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -2184,6 +2184,8 @@ |
| 2184 | 2184 |
, BLINE_CODE AS blineCode |
| 2185 | 2185 |
, AT_SMISHING_YN AS atSmishingYn |
| 2186 | 2186 |
, PRE_PAYMENT_YN AS prePaymentYn |
| 2187 |
+ , BIZ_NO AS bizNo |
|
| 2188 |
+ , MBER_EMAIL_ADRES AS mberEmailAdres |
|
| 2187 | 2189 |
FROM LETTNGNRLMBER |
| 2188 | 2190 |
WHERE MBER_ID = #userId# |
| 2189 | 2191 |
|
... | ... | @@ -3172,6 +3174,7 @@ |
| 3172 | 3174 |
WHERE 1 = 1 |
| 3173 | 3175 |
AND pf.SentEA > 0 |
| 3174 | 3176 |
AND mjf.USER_ID = #userId# |
| 3177 |
+ AND mjf.RESERVE_C_YN = 'N' |
|
| 3175 | 3178 |
|
| 3176 | 3179 |
) AS pay |
| 3177 | 3180 |
WHERE 1=1 |
... | ... | @@ -3281,7 +3284,7 @@ |
| 3281 | 3284 |
, M.fileName3 AS fileName3 |
| 3282 | 3285 |
, M.orderByCode AS orderByCode |
| 3283 | 3286 |
, M.msgId AS msgId |
| 3284 |
- , M.reqDate AS reqDate |
|
| 3287 |
+ , DATE_FORMAT(M.reqDate, '%Y-%m-%d %H:%i') AS reqDate |
|
| 3285 | 3288 |
FROM |
| 3286 | 3289 |
(SELECT |
| 3287 | 3290 |
DATE_FORMAT(B.REGDATE, '%Y-%m-%d %H:%i' ) AS regDate |
... | ... | @@ -3322,7 +3325,7 @@ |
| 3322 | 3325 |
/*and A.DEL_FLAG = 'N'*/ |
| 3323 | 3326 |
AND A.USER_ID = #userId# |
| 3324 | 3327 |
AND B.USER_ID = #userId# |
| 3325 |
- /*AND B.RESERVE_C_YN = 'N'*/ |
|
| 3328 |
+ AND B.RESERVE_C_YN = 'N' |
|
| 3326 | 3329 |
ORDER BY 1=1 |
| 3327 | 3330 |
, msgGroupId DESC |
| 3328 | 3331 |
, sentDate DESC |
... | ... | @@ -3370,6 +3373,7 @@ |
| 3370 | 3373 |
WHERE 1 = 1 |
| 3371 | 3374 |
AND pf.SentEA > 0 |
| 3372 | 3375 |
AND mjf.USER_ID = #userId# |
| 3376 |
+ AND mjf.RESERVE_C_YN = 'N' |
|
| 3373 | 3377 |
|
| 3374 | 3378 |
) AS pay |
| 3375 | 3379 |
WHERE 1=1 |
... | ... | @@ -3595,9 +3599,9 @@ |
| 3595 | 3599 |
, MIN(DATE_FORMAT(M.REQ_DATE, '%Y-%m-%d' )) AS minRegDate |
| 3596 | 3600 |
, M.msgTypeName |
| 3597 | 3601 |
, M.orderByCode |
| 3598 |
- , SUM(IF(M.msgTypeName = '단문(SMS)', 1, 0)) AS shtSendCount |
|
| 3599 |
- , SUM(IF(M.msgTypeName = '장문(LMS)', 1, 0)) AS longSendCount |
|
| 3600 |
- , SUM(IF(M.msgTypeName = '그림(MMS)', 1, 0)) AS pictSendCount |
|
| 3602 |
+ , SUM(IF(M.msgTypeName = '단문', 1, 0)) AS shtSendCount |
|
| 3603 |
+ , SUM(IF(M.msgTypeName = '장문', 1, 0)) AS longSendCount |
|
| 3604 |
+ , SUM(IF(M.msgTypeName = '그림', 1, 0)) AS pictSendCount |
|
| 3601 | 3605 |
, SUM(IF(M.msgTypeName = '알림톡', 1, 0)) AS atSendCount |
| 3602 | 3606 |
, SUM(IF(M.msgTypeName = '친구톡', 1, 0)) AS ftSendCount |
| 3603 | 3607 |
<!-- , SUM(M.MSG_GROUP_CNT) AS sendCount --> |
... | ... | @@ -3616,14 +3620,14 @@ |
| 3616 | 3620 |
, B.MSG_TYPE |
| 3617 | 3621 |
, CASE |
| 3618 | 3622 |
WHEN B.MSG_TYPE = '6' AND B.FILE_CNT > 0 |
| 3619 |
- THEN '그림(MMS)' |
|
| 3623 |
+ THEN '그림' |
|
| 3620 | 3624 |
WHEN B.MSG_TYPE = '6' AND B.FILE_CNT = 0 |
| 3621 |
- THEN '장문(LMS)' |
|
| 3625 |
+ THEN '장문' |
|
| 3622 | 3626 |
WHEN B.MSG_TYPE = '8' |
| 3623 | 3627 |
THEN '알림톡' |
| 3624 | 3628 |
WHEN B.MSG_TYPE = '9' |
| 3625 | 3629 |
THEN '친구톡' |
| 3626 |
- ELSE '단문(SMS)' |
|
| 3630 |
+ ELSE '단문' |
|
| 3627 | 3631 |
END msgTypeName |
| 3628 | 3632 |
, CASE |
| 3629 | 3633 |
WHEN B.MSG_TYPE = '6' AND B.FILE_CNT > 0 |
--- src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/pay/MjonPay_SQL_mysql.xml
... | ... | @@ -101,6 +101,7 @@ |
| 101 | 101 |
, D.CODE_NM AS rcptTypeTxt |
| 102 | 102 |
, E.CONFIRM_YN AS confirmYn |
| 103 | 103 |
, E.RCPT_TYPE AS rcptType |
| 104 |
+ , E.CONFIRM_DATE AS confirmDate |
|
| 104 | 105 |
, IFNULL(MP.POINT, '0') AS point |
| 105 | 106 |
, EMI.EVENT_PG_MOID AS eventMoid |
| 106 | 107 |
, mber.SMISHING_YN AS smishingYn |
... | ... | @@ -149,6 +150,7 @@ |
| 149 | 150 |
MOID |
| 150 | 151 |
, CONFIRM_YN |
| 151 | 152 |
, RCPT_TYPE |
| 153 |
+ , CONFIRM_DATE |
|
| 152 | 154 |
FROM |
| 153 | 155 |
MJ_TAX |
| 154 | 156 |
WHERE 1=1 |
... | ... | @@ -2373,4 +2375,27 @@ |
| 2373 | 2375 |
|
| 2374 | 2376 |
</select> |
| 2375 | 2377 |
|
| 2378 |
+ <select id="mjonPayDAO.selectPayDetail" parameterClass="mjonPayVO" resultClass="mjonPayVO"> |
|
| 2379 |
+ |
|
| 2380 |
+ SELECT |
|
| 2381 |
+ LM.BIZ_NO AS bizNo |
|
| 2382 |
+ , LM.MBER_NM AS mberNm |
|
| 2383 |
+ , LM.MANAGER_NM AS managerNm |
|
| 2384 |
+ , LM.MBTLNUM AS mbtlNum |
|
| 2385 |
+ , LM.MBER_EMAIL_ADRES AS email |
|
| 2386 |
+ , LM.PRE_PAYMENT_YN AS prePaymentYn |
|
| 2387 |
+ , LM.DEPT AS dept |
|
| 2388 |
+ , LM.USER_MONEY AS userMoney |
|
| 2389 |
+ , MP.REG_DATE AS regDate |
|
| 2390 |
+ , MP.AMT AS amt |
|
| 2391 |
+ , MP.CASH AS cash |
|
| 2392 |
+ , MP.PG_STATUS AS pgStatus |
|
| 2393 |
+ FROM LETTNGNRLMBER LM |
|
| 2394 |
+ LEFT JOIN MJ_PG MP |
|
| 2395 |
+ ON MP.USER_ID = LM.MBER_ID |
|
| 2396 |
+ WHERE LM.MBER_ID = #userId# |
|
| 2397 |
+ AND MP.MOID = #moid# |
|
| 2398 |
+ |
|
| 2399 |
+ </select> |
|
| 2400 |
+ |
|
| 2376 | 2401 |
</sqlMap>(No newline at end of file) |
--- src/main/resources/egovframework/sqlmap/let/uss/umt/EgovMberManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/umt/EgovMberManage_SQL_Mysql.xml
... | ... | @@ -2142,4 +2142,38 @@ |
| 2142 | 2142 |
|
| 2143 | 2143 |
</update> |
| 2144 | 2144 |
|
| 2145 |
+ <select id="mberManageDAO.selectMberHeaderInfo" resultClass="itn.let.uss.umt.service.MberManageVO" parameterClass="String"> |
|
| 2146 |
+ SELECT |
|
| 2147 |
+ L.SHORT_PRICE AS shortPrice |
|
| 2148 |
+ , L.LONG_PRICE AS longPrice |
|
| 2149 |
+ , L.PICTURE_PRICE AS picturePrice |
|
| 2150 |
+ , L.PICTURE2_PRICE AS picture2Price |
|
| 2151 |
+ , L.PICTURE3_PRICE AS picture3Price |
|
| 2152 |
+ , L.PRE_PAYMENT_YN AS prePaymentYn |
|
| 2153 |
+ , L.USER_MONEY AS userMoney |
|
| 2154 |
+ , IFNULL(MEMI.EVENT_SHORT_PRICE, 0) AS eventShortPrice |
|
| 2155 |
+ , IFNULL(MEMI.EVENT_LONG_PRICE, 0) AS eventLongPrice |
|
| 2156 |
+ , IFNULL(MEMI.EVENT_PICTURE_PRICE, 0) AS eventPicturePrice |
|
| 2157 |
+ , IFNULL(MEMI.EVENT_PICTURE2_PRICE, 0) AS eventPicture2Price |
|
| 2158 |
+ , IFNULL(MEMI.EVENT_PICTURE3_PRICE, 0) AS eventPicture3Price |
|
| 2159 |
+ , IFNULL(MEMI.EVENT_REMAIN_CASH, 0) AS eventRemainCash |
|
| 2160 |
+ , DATE_FORMAT(MEMI.EVENT_END_DATE, '%Y-%m-%d') AS eventEndDate |
|
| 2161 |
+ FROM |
|
| 2162 |
+ LETTNGNRLMBER L |
|
| 2163 |
+ LEFT JOIN |
|
| 2164 |
+ MJ_EVENT_MBER_INFO MEMI |
|
| 2165 |
+ ON L.MBER_ID = MEMI.MBER_ID |
|
| 2166 |
+ AND MEMI.EVENT_INFO_ID = ( |
|
| 2167 |
+ SELECT |
|
| 2168 |
+ MAX(EVENT_INFO_ID) |
|
| 2169 |
+ FROM |
|
| 2170 |
+ MJ_EVENT_MBER_INFO |
|
| 2171 |
+ WHERE |
|
| 2172 |
+ MBER_ID = #mberID# |
|
| 2173 |
+ AND EVENT_STATUS = 'Y' |
|
| 2174 |
+ |
|
| 2175 |
+ ) |
|
| 2176 |
+ WHERE L.MBER_ID = #mberId# |
|
| 2177 |
+ |
|
| 2178 |
+ </select> |
|
| 2145 | 2179 |
</sqlMap> |
--- src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Mysql.xml
... | ... | @@ -1458,5 +1458,15 @@ |
| 1458 | 1458 |
AND MONTH(REG_DATE) = MONTH(CURRENT_DATE) |
| 1459 | 1459 |
|
| 1460 | 1460 |
</select> |
| 1461 |
- |
|
| 1461 |
+ |
|
| 1462 |
+ <!-- 마지막 결제수단 SELECT --> |
|
| 1463 |
+ <select id="userManageDAO.selectLastPayMethod" parameterClass="String" resultClass="String"> |
|
| 1464 |
+ SELECT |
|
| 1465 |
+ IFNULL(PAY_METHOD, '') AS nextPayMethod |
|
| 1466 |
+ FROM MJ_PG |
|
| 1467 |
+ WHERE |
|
| 1468 |
+ USER_ID = #userId# |
|
| 1469 |
+ ORDER BY REG_DATE DESC LIMIT 1 |
|
| 1470 |
+ </select> |
|
| 1471 |
+ |
|
| 1462 | 1472 |
</sqlMap> |
--- src/main/webapp/publish/kmc/kmcis_web_sample_step01.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step01.jsp
| No changes |
--- src/main/webapp/publish/kmc/kmcis_web_sample_step02.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp
| No changes |
--- src/main/webapp/publish/kmc/kmcis_web_sample_step03.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step03.jsp
| No changes |
--- src/main/webapp/publish/kmc/kmcis_web_sample_step04.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step04.jsp
| No changes |
--- src/main/webapp/publish/nicepay/cancelRequest.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/cancelRequest.jsp
| No changes |
--- src/main/webapp/publish/nicepay/cancelRequest_utf.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/cancelRequest_utf.jsp
| No changes |
--- src/main/webapp/publish/nicepay/cancelResult.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/cancelResult.jsp
| No changes |
--- src/main/webapp/publish/nicepay/cancelResult_utf.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/cancelResult_utf.jsp
| No changes |
--- src/main/webapp/publish/nicepay/payRequest.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/payRequest.jsp
| No changes |
--- src/main/webapp/publish/nicepay/payRequest.jsp_back
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/payRequest.jsp_back
| No changes |
--- src/main/webapp/publish/nicepay/payRequest_utf.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/payRequest_utf.jsp
| No changes |
--- src/main/webapp/publish/nicepay/payResult.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/payResult.jsp
| No changes |
--- src/main/webapp/publish/nicepay/payResultAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/payResultAjax.jsp
| No changes |
--- src/main/webapp/publish/nicepay/payResult_utf.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/nicepay/payResult_utf.jsp
| No changes |
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
... | ... | @@ -112,16 +112,17 @@ |
| 112 | 112 |
// return; |
| 113 | 113 |
//} |
| 114 | 114 |
|
| 115 |
- if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
|
|
| 116 |
- if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
|
|
| 117 |
- |
|
| 115 |
+ if(!isValidPhoneNumber(form.addrPhoneNo.value)){//일반전화 유효성 검사
|
|
| 116 |
+ const formattedNumber =formatPhoneNumber(form.addrPhoneNo.value); // 번호 표준화 |
|
| 117 |
+ if(!isValidPhoneNumber(formattedNumber)){
|
|
| 118 | 118 |
alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
|
| 119 | 119 |
return false; |
| 120 |
- |
|
| 121 | 120 |
} |
| 122 |
- |
|
| 123 | 121 |
} |
| 124 | 122 |
|
| 123 |
+ //휴대폰번호 포맷 맞추기 |
|
| 124 |
+ form.addrPhoneNo.value = formatPhoneNumber(form.addrPhoneNo.value); |
|
| 125 |
+ |
|
| 125 | 126 |
var data = new FormData(form); |
| 126 | 127 |
|
| 127 | 128 |
$.ajax({
|
--- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
+++ src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
... | ... | @@ -1398,14 +1398,14 @@ |
| 1398 | 1398 |
<div class="inner"> |
| 1399 | 1399 |
<ul class="menu_left"> |
| 1400 | 1400 |
<li><a href="#" id="favorite" ><i class="hdTop_fav"></i>즐겨찾기추가</a></li> |
| 1401 |
- <li><a href="<c:out value='/web/user/mberInfoIndex.do'/>" ><i class="hdTop_mypage"></i>마이페이지</a></li> |
|
| 1402 |
- <li><a href="<c:out value='/web/cop/bbs/NoticeList.do'/>" ><i class="hdTop_center"></i>고객센터</a></li> |
|
| 1401 |
+ <li><a href="<c:out value='/web/user/mberInfoChange.do'/>" ><i class="hdTop_mypage"></i>마이페이지</a></li> |
|
| 1402 |
+ <li><a href="<c:out value='/web/cop/bbs/QnaList.do'/>" ><i class="hdTop_center"></i>1:1 문의</a></li> |
|
| 1403 | 1403 |
</ul> |
| 1404 | 1404 |
<ul class="menu_right"> |
| 1405 | 1405 |
<li><a href="#" onclick="location.href='/web/member/pay/PayView.do'" >충전하기</a></li> |
| 1406 | 1406 |
<li class="SortLine"><a href="/web/pay/PayGuide.do" >요금안내</a></li> |
| 1407 | 1407 |
<li class="SortLine"><a href="/web/cop/bbs/FaqList.do" >이용안내</a></li> |
| 1408 |
- <li class="SortLine"><a href="/web/cop/bbs/QnaList.do" >1:1 문의</a></li> |
|
| 1408 |
+ <li class="SortLine"><a href="/web/cop/bbs/NoticeList.do" >고객센터</a></li> |
|
| 1409 | 1409 |
<li class="SortLine"><a href="/web/cop/bbs/SuggestList.do" >불편신고</a></li> |
| 1410 | 1410 |
</ul> |
| 1411 | 1411 |
</div> |
... | ... | @@ -1627,7 +1627,9 @@ |
| 1627 | 1627 |
</li> |
| 1628 | 1628 |
<li> |
| 1629 | 1629 |
<dl> |
| 1630 |
- <dt><a href="<c:out value='/web/user/mberInfoIndex.do'/>" >마이페이지</a></dt> |
|
| 1630 |
+ <%-- 250724 마이페이지 대시보드 삭제 --%> |
|
| 1631 |
+ <%-- <dt><a href="<c:out value='/web/user/mberInfoIndex.do'/>" >마이페이지</a></dt> --%> |
|
| 1632 |
+ <dt><a href="<c:out value='/web/user/mberInfoChange.do'/>" >마이페이지</a></dt> |
|
| 1631 | 1633 |
<dd> |
| 1632 | 1634 |
<ul> |
| 1633 | 1635 |
<li><a href="<c:out value='/web/user/mberInfoChange.do'/>" >회원정보 변경</a></li> |
... | ... | @@ -1637,7 +1639,7 @@ |
| 1637 | 1639 |
</c:if> |
| 1638 | 1640 |
<li><a href="<c:out value='/web/user/passwordChange.do'/>" >비밀번호 변경</a></li> |
| 1639 | 1641 |
<li><a href="<c:out value='/web/user/sendNumberManage.do'/>" >발신번호 관리</a></li> |
| 1640 |
- <li><a href="<c:out value='/web/user/notifyManage.do'/>" >알림설정</a></li> |
|
| 1642 |
+ <%-- <li><a href="<c:out value='/web/user/notifyManage.do'/>" >알림설정</a></li> --%> |
|
| 1641 | 1643 |
<%-- <li><a href="<c:out value='/web/user/mberSecession.do'/>" >회원탈퇴</a></li> --%> |
| 1642 | 1644 |
<%-- <li><a href="<c:out value='/web/user/kisaReport.do'/>" >KISA 신고</a></li> --%> |
| 1643 | 1645 |
</ul> |
... | ... | @@ -1652,7 +1654,7 @@ |
| 1652 | 1654 |
<li><a href="<c:out value='/web/pay/PayGuide.do'/>" >요금안내/견적내기</a></li> |
| 1653 | 1655 |
<li><a href="<c:out value='/web/member/pay/PayView.do'/>" >결제하기</a></li> |
| 1654 | 1656 |
<li><a href="<c:out value='/web/member/pay/PayList.do'/>" >요금 결제내역</a></li> |
| 1655 |
- <li><a href="<c:out value='/web/member/pay/PayUserSWList.do'/>" >요금 사용내역</a></li> |
|
| 1657 |
+ <li><a href="<c:out value='/web/member/pay/payUserSWList.do'/>" >요금 사용내역</a></li> |
|
| 1656 | 1658 |
<!-- 현금영수증 자동발행 주석 --> |
| 1657 | 1659 |
<%-- <li><a href="<c:out value='/web/member/pay/BillPub.do'/>" >계산서/현금영수증 발행 등록</a></li> --%> |
| 1658 | 1660 |
<li><a href="<c:out value='/web/member/pay/BillPub.do'/>" >세금계산서 발행</a></li> |
... | ... | @@ -1744,8 +1746,9 @@ |
| 1744 | 1746 |
<div class="login_left"> |
| 1745 | 1747 |
<div class="login_info"> |
| 1746 | 1748 |
<input type="hidden" id="loginId" name="loginId" value="${LoginVO.id}">
|
| 1747 |
- <i><img src="/publish/images/mypageIcon2.png" id="commonHeaderGradeIcon" /></i> |
|
| 1749 |
+ <!-- <i><img src="/publish/images/mypageIcon2.png" id="commonHeaderGradeIcon" /></i> --> |
|
| 1748 | 1750 |
<div class="login2_name" onclick="location.href='/web/user/mberInfoChange.do'" style="cursor:pointer;"> |
| 1751 |
+ <i class="icon_user"></i> |
|
| 1749 | 1752 |
<p><c:out value="${LoginVO.name}"/></p>
|
| 1750 | 1753 |
<c:choose> |
| 1751 | 1754 |
<c:when test="${LoginVO.dept == 'p'}">
|
... | ... | @@ -1765,8 +1768,8 @@ |
| 1765 | 1768 |
<img src="/pb/img/common/topTimeOut.png" alt="타임아웃 아이콘"> |
| 1766 | 1769 |
</a> --> |
| 1767 | 1770 |
</div> |
| 1768 |
- <button type="button" class="btnType btnType3" onclick="location.href='/web/user/mberInfoIndex.do'">마이페이지</button> |
|
| 1769 |
- <button type="button" class="btnType btnType2" onclick="location.href='/web/uat/uia/actionLogout.do'">로그아웃</button> |
|
| 1771 |
+ <!-- <button type="button" class="btnType btnType3" onclick="location.href='/web/user/mberInfoIndex.do'">마이페이지</button> --> |
|
| 1772 |
+ <button type="button" class="btnType btn_36 fill_gray" onclick="location.href='/web/uat/uia/actionLogout.do'">로그아웃</button> |
|
| 1770 | 1773 |
|
| 1771 | 1774 |
|
| 1772 | 1775 |
<div class="security_box"> |
... | ... | @@ -1778,33 +1781,88 @@ |
| 1778 | 1781 |
</div> |
| 1779 | 1782 |
<div class="login_pay"> |
| 1780 | 1783 |
<div class="check_money"> |
| 1781 |
- <div class="holdingsum_box"> |
|
| 1784 |
+ <div class="holdingsum_box"> |
|
| 1782 | 1785 |
<i></i> |
| 1786 |
+ <div class="user_money_wrap"> |
|
| 1787 |
+ 보유잔액 |
|
| 1788 |
+ <div class="hover_content_wrap"> |
|
| 1789 |
+ <i class="qmMark">?</i> |
|
| 1790 |
+ <div class="hover_content"> |
|
| 1791 |
+ <p class="hover_content_title"> |
|
| 1792 |
+ <img src="/publish/images/content/icon_mypage_message.png" alt=""> 나의단가 <span>(발송가능 건수)</span> |
|
| 1793 |
+ </p> |
|
| 1794 |
+ <ul class="send_available_number"> |
|
| 1795 |
+ <li> |
|
| 1796 |
+ <p class="title">· 단문</p> |
|
| 1797 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerShortPrice}" var="shortPrice" />
|
|
| 1798 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${shortPrice}"/></span>원
|
|
| 1799 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerShortCnt}" var="shortCnt" />
|
|
| 1800 |
+ (<c:out value="${shortCnt}"/>건)</p>
|
|
| 1801 |
+ </li> |
|
| 1802 |
+ <li> |
|
| 1803 |
+ <p class="title">· 장문</p> |
|
| 1804 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerLongPrice}" var="LongPrice" />
|
|
| 1805 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${LongPrice}"/></span>원
|
|
| 1806 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerLongCnt}" var="LongCnt" />
|
|
| 1807 |
+ (<c:out value="${LongCnt}"/>건)</p>
|
|
| 1808 |
+ </li> |
|
| 1809 |
+ <li> |
|
| 1810 |
+ <p class="title">· 그림(1장)</p> |
|
| 1811 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicturePrice}" var="picturePrice" />
|
|
| 1812 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${picturePrice}"/></span>원
|
|
| 1813 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPictureCnt}" var="pictureCnt" />
|
|
| 1814 |
+ (<c:out value="${pictureCnt}"/>건)</p>
|
|
| 1815 |
+ </li> |
|
| 1816 |
+ <li> |
|
| 1817 |
+ <p class="title">· 그림(2장)</p> |
|
| 1818 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture2Price}" var="picture2Price" />
|
|
| 1819 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${picture2Price}"/></span>원
|
|
| 1820 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture2Cnt}" var="picture2Cnt" />
|
|
| 1821 |
+ (<c:out value="${picture2Cnt}"/>건)</p>
|
|
| 1822 |
+ </li> |
|
| 1823 |
+ <li> |
|
| 1824 |
+ <p class="title">· 그림(3장)</p> |
|
| 1825 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture3Price}" var="picture3Price" />
|
|
| 1826 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${picture3Price}"/></span>원
|
|
| 1827 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerPicture3Cnt}" var="picture3Cnt" />
|
|
| 1828 |
+ (<c:out value="${picture3Cnt}"/>건)</p>
|
|
| 1829 |
+ </li> |
|
| 1830 |
+ <li> |
|
| 1831 |
+ <p class="title">· 알림톡</p> |
|
| 1832 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerKakaoAtPrice}" var="kakaoAtPrice" />
|
|
| 1833 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${kakaoAtPrice}"/></span>원
|
|
| 1834 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerKakaoAtCnt}" var="kakaoAtCnt" />
|
|
| 1835 |
+ (<c:out value="${kakaoAtCnt}"/>건)</p>
|
|
| 1836 |
+ </li> |
|
| 1837 |
+ <li> |
|
| 1838 |
+ <p class="title">· 팩스</p> |
|
| 1839 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerFaxPrice}" var="faxPrice" />
|
|
| 1840 |
+ <p class="number"><span class="c_002c9a fwBold"><c:out value="${faxPrice}"/></span>원
|
|
| 1841 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.headerFaxCnt}" var="faxCnt" />
|
|
| 1842 |
+ (<c:out value="${faxCnt}"/>건)</p>
|
|
| 1843 |
+ </li> |
|
| 1844 |
+ </ul> |
|
| 1845 |
+ <c:if test="${prePaymentYn eq 'Y' and mberHeaderInfoVO.eventLeftDay > 0}">
|
|
| 1846 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${mberHeaderInfoVO.eventRemainCash}" var="eventRemainCash" />
|
|
| 1847 |
+ <div class="event_term"><p>이벤트<span class="fwBold">(D-${mberHeaderInfoVO.eventLeftDay})</span></p><p><span class="fwBold price">${eventRemainCash}</span>원</p></div>
|
|
| 1848 |
+ </c:if> |
|
| 1849 |
+ <c:if test="${prePaymentYn eq 'N'}">
|
|
| 1850 |
+ <div class="event_term" style="display:block">후불제(매월 1일 자동충전)</div> |
|
| 1851 |
+ </c:if> |
|
| 1852 |
+ </div> |
|
| 1853 |
+ </div> |
|
| 1783 | 1854 |
<fmt:formatNumber type="number" maxFractionDigits="3" value="${userMoney}" var="commaPrice" />
|
| 1784 |
- <p>보유잔액<!-- <em>(캐시)</em> --> <span class="fwMd" id="hdUserMoney"><c:out value="${commaPrice}"/></span>원</p>
|
|
| 1785 |
- <c:if test="${prePaymentYn eq 'N'}">
|
|
| 1786 |
- <dl> |
|
| 1787 |
- <dd>후불제 고객의 보유잔액(캐시)은 당월 발송 가능<br>금액을 말하며 <span>매월 1일 자동으로 충전</span>됩니다.</dd> |
|
| 1788 |
- </dl> |
|
| 1789 |
- </c:if> |
|
| 1790 |
- </div> |
|
| 1855 |
+ <span class="fwMd" id="hdUserMoney"><c:out value="${commaPrice}"/></span>원
|
|
| 1856 |
+ </ > |
|
| 1857 |
+ </div> |
|
| 1791 | 1858 |
<button type="button" class="btnType btnType3" onclick="location.href='/web/member/pay/PayView.do'">충전</button> |
| 1792 |
- <div class="account_box"> |
|
| 1793 |
- <button type="button" class="btnType btnType3" onclick="location.href='/web/member/pay/PayView.do?tabType=2'">전용계좌</button> |
|
| 1794 |
- <c:if test="${not empty myBankList}">
|
|
| 1795 |
- <dl> |
|
| 1796 |
- <dt>전용계좌</dt> |
|
| 1797 |
- <dd><c:out value="${myBankList[0].codeNm}"/> <c:out value="${myBankList[0].acctNo}"/></dd>
|
|
| 1798 |
- </dl> |
|
| 1799 |
- </c:if> |
|
| 1800 |
- </div> |
|
| 1801 | 1859 |
</div> |
| 1802 |
- <div class="point"> |
|
| 1803 |
- <i></i> |
|
| 1804 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${userPoint}" var="commaPoint" />
|
|
| 1805 |
- <p><!-- <em>적립</em> -->포인트 <span class="fwMd"><c:out value="${commaPoint}"/></span>원</p>
|
|
| 1806 |
- <button type="button" data-tooltip="popup04" class="btnType btnType3">교환</button> |
|
| 1807 |
- </div> |
|
| 1860 |
+ </div> |
|
| 1861 |
+ <div class="point"> |
|
| 1862 |
+ <i></i> |
|
| 1863 |
+ <fmt:formatNumber type="number" maxFractionDigits="3" value="${userPoint}" var="commaPoint" />
|
|
| 1864 |
+ <p><!-- <em>적립</em> -->포인트 <span class="fwMd"><c:out value="${commaPoint}"/></span>원</p>
|
|
| 1865 |
+ <button type="button" data-tooltip="popup04" class="btnType btnType3">교환</button> |
|
| 1808 | 1866 |
</div> |
| 1809 | 1867 |
<!-- <div class="event"> |
| 1810 | 1868 |
<span><i></i>이달의 이벤트</span> |
--- src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailPopAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/sent/KakaoSentDetailPopAjax.jsp
... | ... | @@ -26,13 +26,6 @@ |
| 26 | 26 |
<p class="prev_p"><img src="/publish/images/content/kakao_prev_icon.png" alt=""><c:out value="${searchVO.yellowId}"/></p>
|
| 27 | 27 |
<!-- 텍스트 미리보기 --> |
| 28 | 28 |
<div class="text_preview"> |
| 29 |
- <%--< div class="allimtalk_title"> |
|
| 30 |
- <img src="/publish/images/content/icon_allimtalk.png" alt=""> |
|
| 31 |
- <c:choose> |
|
| 32 |
- <c:when test="${msgType eq '8'}">알림톡 도착</c:when>
|
|
| 33 |
- <c:when test="${msgType eq '9'}">친구톡 도착</c:when>
|
|
| 34 |
- </c:choose> |
|
| 35 |
- </div> --%> |
|
| 36 | 29 |
<c:if test="${resultMsgDetail.adFlag eq 'Y'}">
|
| 37 | 30 |
<p class="friend_talk_title"><span>(광고)</span></p> |
| 38 | 31 |
</c:if> |
... | ... | @@ -92,8 +85,8 @@ |
| 92 | 85 |
<!-- <div class="tab_phone" id="tab_phone_2" style="display:none" > --> |
| 93 | 86 |
<div class="phoneIn"> |
| 94 | 87 |
<div> |
| 95 |
- <p class="prev_p"><img src="/publish/images/search.png"> 문자내용</p> |
|
| 96 | 88 |
<div class="text_length2 clearfix"> |
| 89 |
+ <span>발송일시 : <fmt:formatDate value="${parsedDate}" pattern="yyyy-MM-dd HH:mm:ss"/></span>
|
|
| 97 | 90 |
<c:if test="${resultMsgDetail.bizKakaoResendYn eq 'Y'}">
|
| 98 | 91 |
<c:choose> |
| 99 | 92 |
<c:when test="${resultMsgDetail.bizKakaoResendType eq 'SMS'}">
|
... | ... | @@ -105,15 +98,15 @@ |
| 105 | 98 |
</c:choose> |
| 106 | 99 |
<%-- <c:choose> |
| 107 | 100 |
<c:when test="${resultMsgDetail.bizKakaoResendTypeCnt > 1}">
|
| 108 |
- <span class="msg_com msg_short">단문</span> |
|
| 109 |
- <span class="msg_com msg_long">장문</span> |
|
| 101 |
+ <span class="msg_com msg_short" style="float:right;">단문</span> |
|
| 102 |
+ <span class="msg_com msg_long" style="float:right;">장문</span> |
|
| 110 | 103 |
</c:when> |
| 111 | 104 |
<c:when test="${resultMsgDetail.bizKakaoResendTypeCnt < 2
|
| 112 | 105 |
&& resultMsgDetail.bizKakaoResendType eq 'SMS'}"> |
| 113 |
- <span class="msg_com msg_short">단문</span> |
|
| 106 |
+ <span class="msg_com msg_short" style="float:right;">단문</span> |
|
| 114 | 107 |
</c:when> |
| 115 | 108 |
<c:otherwise> |
| 116 |
- <span class="msg_com msg_long">장문</span> |
|
| 109 |
+ <span class="msg_com msg_long" style="float:right;">장문</span> |
|
| 117 | 110 |
</c:otherwise> |
| 118 | 111 |
</c:choose> --%> |
| 119 | 112 |
</c:if> |
--- src/main/webapp/WEB-INF/jsp/web/login/loginRestrictionUse.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/loginRestrictionUse.jsp
... | ... | @@ -273,7 +273,7 @@ |
| 273 | 273 |
</div> |
| 274 | 274 |
|
| 275 | 275 |
<!-- 관리자가 문자 상세에서 이용정지 처리 시 내용(문자 내용 안내) --> |
| 276 |
- <c:if test="${not empty spamMemberInfoVO.msgGroupId}">
|
|
| 276 |
+ <%-- <c:if test="${not empty spamMemberInfoVO.msgGroupId}">
|
|
| 277 | 277 |
<div class="input_list listType2"> |
| 278 | 278 |
<div class="input_list_item"> |
| 279 | 279 |
<div class="input_left">회원님의 아이디로 발송된 <strong>정보통신망법 제50조 위반</strong> 문자내용</div> |
... | ... | @@ -323,7 +323,7 @@ |
| 323 | 323 |
</div> |
| 324 | 324 |
</div> |
| 325 | 325 |
</div> |
| 326 |
- </c:if> |
|
| 326 |
+ </c:if> --%> |
|
| 327 | 327 |
|
| 328 | 328 |
<!-- 관리자가 사용자 상세에서 이용정지 처리 시 내용(관리자가 작성한 사유 안내) --> |
| 329 | 329 |
<c:if test="${not empty spamMemberInfoVO.smiMemo}">
|
--- src/main/webapp/WEB-INF/jsp/web/pay/BillPub.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/BillPub.jsp
... | ... | @@ -495,7 +495,7 @@ |
| 495 | 495 |
<li class="tab"><button type="button" onclick="location.href='/web/pay/PayGuide.do'">요금안내/견적내기</button></li> |
| 496 | 496 |
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayView.do'">결제하기</button></li> |
| 497 | 497 |
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayList.do'">요금 결제내역</button></li> |
| 498 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayUserSWList.do'">요금 사용내역</button></li> |
|
| 498 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/payUserSWList.do'">요금 사용내역</button></li> |
|
| 499 | 499 |
<!-- <li class="tab active"><button type="button">계산서/현금영수증 발행 등록</button></li> --> |
| 500 | 500 |
<li class="tab active"><button type="button">세금계산서 발행 등록</button></li> |
| 501 | 501 |
</ul><!--// tab button --> |
--- src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/MsgPrintUsageDetailsPopUp.jsp
... | ... | @@ -68,22 +68,60 @@ |
| 68 | 68 |
</colgroup> |
| 69 | 69 |
<tbody> |
| 70 | 70 |
<tr> |
| 71 |
- <th>수<span class="blank"></span>신</th> |
|
| 72 |
- <td>${mberNm}</td>
|
|
| 71 |
+ <th>등록번호</th> |
|
| 72 |
+ <td> |
|
| 73 |
+ <c:choose> |
|
| 74 |
+ <c:when test="${mberManageVO.dept eq'c'}">
|
|
| 75 |
+ <c:out value="${mberManageVO.bizNo}"/>
|
|
| 76 |
+ </c:when> |
|
| 77 |
+ <c:otherwise> |
|
| 78 |
+ - |
|
| 79 |
+ </c:otherwise> |
|
| 80 |
+ </c:choose> |
|
| 81 |
+ </td> |
|
| 73 | 82 |
</tr> |
| 74 | 83 |
<tr> |
| 75 |
- <th>참<span class="blank"></span>조</th> |
|
| 76 |
- <td>담당자 ${managerNm} 님</td>
|
|
| 84 |
+ <th>상<span class="blank"></span>호</th> |
|
| 85 |
+ <td> |
|
| 86 |
+ <c:choose> |
|
| 87 |
+ <c:when test="${mberManageVO.dept eq'c'}">
|
|
| 88 |
+ <c:out value="${mberManageVO.mberNm}"/>
|
|
| 89 |
+ </c:when> |
|
| 90 |
+ <c:otherwise> |
|
| 91 |
+ - |
|
| 92 |
+ </c:otherwise> |
|
| 93 |
+ </c:choose> |
|
| 94 |
+ </td> |
|
| 77 | 95 |
</tr> |
| 78 | 96 |
<tr> |
| 79 |
- <th>거래일자</th> |
|
| 80 |
- <td>${startDate}~${endDate}</td>
|
|
| 97 |
+ <th>성<span class="blank"></span>명</th> |
|
| 98 |
+ <td> |
|
| 99 |
+ <c:choose> |
|
| 100 |
+ <c:when test="${mberManageVO.dept eq'c'}">
|
|
| 101 |
+ <c:out value="${mberManageVO.managerNm}"/>
|
|
| 102 |
+ </c:when> |
|
| 103 |
+ <c:otherwise> |
|
| 104 |
+ <c:out value="${mberManageVO.mberNm}"/>
|
|
| 105 |
+ </c:otherwise> |
|
| 106 |
+ </c:choose> |
|
| 107 |
+ </td> |
|
| 108 |
+ </tr> |
|
| 109 |
+ <tr> |
|
| 110 |
+ <th>전화번호</th> |
|
| 111 |
+ <td><c:out value="${mberManageVO.moblphonNo}"/></td>
|
|
| 112 |
+ </tr> |
|
| 113 |
+ <tr> |
|
| 114 |
+ <th style="letter-spacing:-0.85px;">이 메 일</th> |
|
| 115 |
+ <td><c:out value="${mberManageVO.mberEmailAdres}"/></td>
|
|
| 116 |
+ </tr> |
|
| 117 |
+ <tr> |
|
| 118 |
+ <td colspan="2" style="text-align:center;"><span><c:out value="${mberManageVO.mberNm}"/></span>님의 사용내역(<c:out value="${startDate}"/>~<c:out value="${endDate}"/>)을 아래와 같이 확인합니다.</td>
|
|
| 81 | 119 |
</tr> |
| 82 | 120 |
</tbody> |
| 83 | 121 |
</table> |
| 84 | 122 |
</div> |
| 85 | 123 |
</div> |
| 86 |
- <div class="cont2 clearfix"> |
|
| 124 |
+ <%-- <div class="cont2 clearfix"> |
|
| 87 | 125 |
<p>총 사용금액</p> |
| 88 | 126 |
<c:choose> |
| 89 | 127 |
<c:when test="${searchVO.addVatType eq 'N'}">
|
... | ... | @@ -93,24 +131,22 @@ |
| 93 | 131 |
<p><span>${addTaxSumPrice}</span> 원(VAT 포함)</p>
|
| 94 | 132 |
</c:otherwise> |
| 95 | 133 |
</c:choose> |
| 96 |
- </div> |
|
| 134 |
+ </div> --%> |
|
| 97 | 135 |
<div class="cont3"> |
| 98 | 136 |
<p>(단위 : 원, 건)</p> |
| 99 | 137 |
<div class="est_table2_wrap"> |
| 100 | 138 |
<table class="est_table2"> |
| 101 | 139 |
<caption>품목, 발송건수, 공급가액, 부가세, 금액 정보를 제공하는 표</caption> |
| 102 | 140 |
<colgroup> |
| 103 |
- <col style="width:20%;"> |
|
| 104 |
- <col style="width:20%;"> |
|
| 105 |
- <col style="width:20%;"> |
|
| 141 |
+ <col style="width:30%;"> |
|
| 142 |
+ <col style="width:30%;"> |
|
| 106 | 143 |
<col style="width:auto;"> |
| 107 | 144 |
</colgroup> |
| 108 | 145 |
<thead> |
| 109 | 146 |
<tr> |
| 110 |
- <th scope="col">품목</th> |
|
| 147 |
+ <th scope="col">문자유형</th> |
|
| 111 | 148 |
<th scope="col">발송건수</th> |
| 112 |
- <th scope="col">공급가액</th> |
|
| 113 |
- <th scope="col">금액</th> |
|
| 149 |
+ <th scope="col">사용금액</th> |
|
| 114 | 150 |
</tr> |
| 115 | 151 |
</thead> |
| 116 | 152 |
<tbody> |
... | ... | @@ -120,15 +156,15 @@ |
| 120 | 156 |
<td>${result.msgTypeName}</td>
|
| 121 | 157 |
<td> |
| 122 | 158 |
<c:choose> |
| 123 |
- <c:when test="${result.msgTypeName eq '단문(SMS)'}">
|
|
| 159 |
+ <c:when test="${result.msgTypeName eq '단문'}">
|
|
| 124 | 160 |
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.shtSendCount}" var="shtSendCount" />
|
| 125 | 161 |
<c:out value="${shtSendCount}"/>
|
| 126 | 162 |
</c:when> |
| 127 |
- <c:when test="${result.msgTypeName eq '장문(LMS)'}">
|
|
| 163 |
+ <c:when test="${result.msgTypeName eq '장문'}">
|
|
| 128 | 164 |
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.longSendCount}" var="longSendCount" />
|
| 129 | 165 |
<c:out value="${longSendCount}"/>
|
| 130 | 166 |
</c:when> |
| 131 |
- <c:when test="${result.msgTypeName eq '그림(MMS)'}">
|
|
| 167 |
+ <c:when test="${result.msgTypeName eq '그림'}">
|
|
| 132 | 168 |
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.pictSendCount}" var="pictSendCount" />
|
| 133 | 169 |
<c:out value="${pictSendCount}"/>
|
| 134 | 170 |
</c:when> |
... | ... | @@ -144,10 +180,6 @@ |
| 144 | 180 |
<%-- <fmt:formatNumber type="number" maxFractionDigits="3" value="${result.sendCount}" var="sendCount" />
|
| 145 | 181 |
<c:out value="${sendCount}"/> --%>
|
| 146 | 182 |
</td> |
| 147 |
- <td> |
|
| 148 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${result.supplyPrice}" var="supplyPrice" />
|
|
| 149 |
- <c:out value="${supplyPrice}"/>
|
|
| 150 |
- </td> |
|
| 151 | 183 |
<td> |
| 152 | 184 |
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.totalPrice}" var="totalPrice" />
|
| 153 | 185 |
<c:out value="${totalPrice}"/>
|
... | ... | @@ -188,52 +220,13 @@ |
| 188 | 220 |
</div> |
| 189 | 221 |
</div> |
| 190 | 222 |
|
| 191 |
- <div class="cont4"> |
|
| 192 |
- <table class="est_table"> |
|
| 193 |
- <caption>공급가액, 총 결제금액에 대한 표</caption> |
|
| 194 |
- <colgroup> |
|
| 195 |
- <col style="width: 100px;"> |
|
| 196 |
- <col style="width: auto;"> |
|
| 197 |
- </colgroup> |
|
| 198 |
- <tbody> |
|
| 199 |
- <tr> |
|
| 200 |
- <th>공급가액</th> |
|
| 201 |
- <td><span>${supplySumPrice}</span></td>
|
|
| 202 |
- </tr> |
|
| 203 |
- <c:choose> |
|
| 204 |
- <c:when test="${not empty resultList || not empty payUserSumFaxList}">
|
|
| 205 |
- <c:choose> |
|
| 206 |
- <c:when test="${searchVO.addVatType eq 'N'}">
|
|
| 207 |
- <tr class="total_price"> |
|
| 208 |
- <th>총 사용금액</th> |
|
| 209 |
- <td><span>${totalSumPrice}</span></td>
|
|
| 210 |
- </tr> |
|
| 211 |
- </c:when> |
|
| 212 |
- <c:otherwise> |
|
| 213 |
- <tr> |
|
| 214 |
- <th>세액(부가세)</th> |
|
| 215 |
- <td>${addTax}</td>
|
|
| 216 |
- </tr> |
|
| 217 |
- <tr class="total_price"> |
|
| 218 |
- <th>총 사용금액</th> |
|
| 219 |
- <td><span>${addTaxSumPrice}</span></td>
|
|
| 220 |
- </tr> |
|
| 221 |
- </c:otherwise> |
|
| 222 |
- </c:choose> |
|
| 223 |
- </c:when> |
|
| 224 |
- <c:otherwise> |
|
| 225 |
- <c:if test="${ empty resultList && empty payUserSumFaxList}">
|
|
| 226 |
- <tr> |
|
| 227 |
- <td colspan="5"> |
|
| 228 |
- 사용내역이 없습니다. |
|
| 229 |
- </td> |
|
| 230 |
- </tr> |
|
| 231 |
- </c:if> |
|
| 232 |
- </c:otherwise> |
|
| 233 |
- </c:choose> |
|
| 234 |
- </tbody> |
|
| 235 |
- </table> |
|
| 223 |
+ <div class="cont2 clearfix"> |
|
| 224 |
+ <p>총 사용금액 <span>(VAT 별도)</span></p> |
|
| 225 |
+ <p><span> |
|
| 226 |
+ <c:out value="${totalSumPrice}"/>
|
|
| 227 |
+ </span>원</p> |
|
| 236 | 228 |
</div> |
| 229 |
+ |
|
| 237 | 230 |
<div class="cont5"> |
| 238 | 231 |
<p><span>${year} 년 <span>${month}</span> 월 <span>${day}</span> 일</p>
|
| 239 | 232 |
<div> |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayGuide.jsp
... | ... | @@ -1,867 +1,867 @@ |
| 1 |
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
|
| 2 |
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
|
| 3 |
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
|
| 4 |
- |
|
| 5 |
-<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> |
|
| 6 |
- |
|
| 7 |
-<script> |
|
| 8 |
-// 문자 단가 |
|
| 9 |
-var shortPrice = "${shortPrice}";
|
|
| 10 |
-var longPrice = "${longPrice}";
|
|
| 11 |
-var picturePrice = "${picturePrice}";
|
|
| 12 |
-var picturePrice2 = "${picturePrice2}";
|
|
| 13 |
-var picturePrice3 = "${picturePrice3}";
|
|
| 14 |
-var kakaoAtPrice = "${kakaoAtPrice}";
|
|
| 15 |
-var faxPrice = "${faxPrice}";
|
|
| 16 |
- |
|
| 17 |
-var smsList = new Array(); // 품목추가 Array |
|
| 18 |
-var supplySumPrice = 0; // 공급가액 |
|
| 19 |
-var vatSumPrice = 0; // 부가세액 |
|
| 20 |
-var totSumPrice = 0; // 합계 |
|
| 21 |
- |
|
| 22 |
-// 탭이동 |
|
| 23 |
-var tabType = "${tabType}";
|
|
| 24 |
- |
|
| 25 |
-$(document).ready(function () {
|
|
| 26 |
- |
|
| 27 |
- // 품목정보 추가 |
|
| 28 |
- getSmsItemAdd(); |
|
| 29 |
- |
|
| 30 |
- // 품목 Change Event |
|
| 31 |
- $("#smsItem").change(function(){
|
|
| 32 |
- $("#unitPrice").val($("#smsItem option:selected").val());
|
|
| 33 |
- |
|
| 34 |
- var optNm = $("#smsItem option:selected").text();
|
|
| 35 |
- if(optNm.includes('팩스')){
|
|
| 36 |
- $('#faxPages').show();
|
|
| 37 |
- }else{
|
|
| 38 |
- $('#faxPages').hide();
|
|
| 39 |
- } |
|
| 40 |
- }); |
|
| 41 |
- |
|
| 42 |
- // 품목추가 Click Event |
|
| 43 |
- $("#btnItemAdd").click(function(){
|
|
| 44 |
- // 품목추가 |
|
| 45 |
- setItemAdd(); |
|
| 46 |
- }); |
|
| 47 |
- |
|
| 48 |
- // 품목삭제 Click Event |
|
| 49 |
- $("#btnItemDel").click(function(){
|
|
| 50 |
- // 품목삭제 |
|
| 51 |
- setItemDel(); |
|
| 52 |
- |
|
| 53 |
- //품목추가 Html |
|
| 54 |
- setItemAddHtml(); |
|
| 55 |
- }); |
|
| 56 |
- |
|
| 57 |
- // 부가세별도 여부 Change Event |
|
| 58 |
- $("#isVat").change(function(){
|
|
| 59 |
- //품목추가 Html |
|
| 60 |
- setItemAddHtml(); |
|
| 61 |
- }); |
|
| 62 |
- |
|
| 63 |
- // 견적내기화면으로 이동 |
|
| 64 |
- if (tabType == "2") {
|
|
| 65 |
- $("#btnEstimate").trigger("click");
|
|
| 66 |
- } |
|
| 67 |
- |
|
| 68 |
- //등급제 시행 ON/OFF 체크(비로그인) |
|
| 69 |
- //getMberSettingDetailByNotLogin(); |
|
| 70 |
- |
|
| 71 |
- // 등급제 대상 여부 |
|
| 72 |
- //getMberGrdChk(); |
|
| 73 |
- |
|
| 74 |
-}); |
|
| 75 |
- |
|
| 76 |
-//품목정보 추가 |
|
| 77 |
-function getSmsItemAdd() {
|
|
| 78 |
- var sHtml = ""; |
|
| 79 |
- sHtml += "<option value='" + shortPrice + "'>단문(SMS)</option>"; |
|
| 80 |
- sHtml += "<option value='" + longPrice + "'>장문(LMS)</option>"; |
|
| 81 |
- sHtml += "<option value='" + picturePrice + "'>그림문자(1장)</option>"; |
|
| 82 |
- sHtml += "<option value='" + picturePrice2 + "'>그림문자(2장)</option>"; |
|
| 83 |
- sHtml += "<option value='" + picturePrice3 + "'>그림문자(3장)</option>"; |
|
| 84 |
- sHtml += "<option value='" + kakaoAtPrice + "'>카톡(알림톡)</option>"; |
|
| 85 |
- sHtml += "<option value='" + faxPrice + "'>팩스</option>"; |
|
| 86 |
- |
|
| 87 |
- $("#smsItem").append(sHtml);
|
|
| 88 |
- |
|
| 89 |
- // 단가 초기값 |
|
| 90 |
- $("#unitPrice").val($("#smsItem option:selected").val());
|
|
| 91 |
-} |
|
| 92 |
- |
|
| 93 |
- |
|
| 94 |
-// 품목추가 |
|
| 95 |
-function setItemAdd() {
|
|
| 96 |
- var caseNumber = $("#caseNumber").val().trim().replaceAll(",", "");
|
|
| 97 |
- var casePage = $("#casePage").val().trim().replaceAll(",", "");
|
|
| 98 |
- |
|
| 99 |
- if (caseNumber == null || caseNumber == "" || caseNumber == undefined) {
|
|
| 100 |
- alert("건수를 입력하세요.");
|
|
| 101 |
- return false; |
|
| 102 |
- } |
|
| 103 |
- else if (isNaN(caseNumber) == true) {
|
|
| 104 |
- alert("건수는 숫자를 입력하세요.");
|
|
| 105 |
- return false; |
|
| 106 |
- } |
|
| 107 |
- |
|
| 108 |
- // 객체 생성 |
|
| 109 |
- var data = new Object(); |
|
| 110 |
- data.smsItemName = $("#smsItem option:selected").text(); // 품목명
|
|
| 111 |
- data.unitPrice = $("#unitPrice").val(); // 단가
|
|
| 112 |
- data.unitPricePlusVat = $("#unitPrice").val(); // 단가
|
|
| 113 |
- data.caseNumber = caseNumber; // 건수 |
|
| 114 |
- data.supplyPrice = $("#unitPrice").val() * caseNumber;
|
|
| 115 |
- data.totPrice = $("#unitPrice").val() * caseNumber; // 금액
|
|
| 116 |
- |
|
| 117 |
- var itmNm = data.smsItemName |
|
| 118 |
- if(itmNm.includes('팩스')){//팩스인 경우 매수 곱해주기
|
|
| 119 |
- data.casePage = casePage; |
|
| 120 |
- data.supplyPrice = $("#unitPrice").val() * (caseNumber * casePage);
|
|
| 121 |
- data.totPrice = $("#unitPrice").val() * (caseNumber * casePage); // 금액
|
|
| 122 |
- } |
|
| 123 |
- |
|
| 124 |
- // 리스트에 생성된 객체 삽입 |
|
| 125 |
- smsList.push(data); |
|
| 126 |
- |
|
| 127 |
- //품목추가 Html |
|
| 128 |
- setItemAddHtml(); |
|
| 129 |
- } |
|
| 130 |
- |
|
| 131 |
-//품목추가 Html |
|
| 132 |
-function setItemAddHtml() {
|
|
| 133 |
- var isVat = $("#isVat option:selected").val();
|
|
| 134 |
- |
|
| 135 |
- // 부가세 케이스별 다시계산 |
|
| 136 |
- smsList.forEach(function(element) {
|
|
| 137 |
- var itmNm = element.smsItemName; |
|
| 138 |
- |
|
| 139 |
- if (isVat == 1) {
|
|
| 140 |
- |
|
| 141 |
- if(itmNm.includes('팩스')){//팩스인 경우 건수 * 매수에 대한 금액의 부가세를 계산해야함.
|
|
| 142 |
- // 부가세 포함 |
|
| 143 |
- element.vatPrice = Math.round(element.unitPrice * 0.1 * (element.caseNumber * element.casePage)); |
|
| 144 |
- }else{
|
|
| 145 |
- // 부가세 포함 |
|
| 146 |
- element.vatPrice = Math.round(element.unitPrice * 0.1 * element.caseNumber); |
|
| 147 |
- //element.unitPricePlusVat = parseInt(element.unitPrice, 10) + Math.round(element.unitPrice * 0.1); |
|
| 148 |
- } |
|
| 149 |
- |
|
| 150 |
- } |
|
| 151 |
- else {
|
|
| 152 |
- // 부가세 별도(부가세 : 0) |
|
| 153 |
- element.vatPrice = 0; |
|
| 154 |
- } |
|
| 155 |
- |
|
| 156 |
- if(itmNm.includes('팩스')){//팩스인 경우 건수 * 매수에 대한 금액의 부가세를 계산해야함.
|
|
| 157 |
- element.totVatPrice = (element.unitPrice * (element.caseNumber * element.casePage)) + element.vatPrice; // 금액 |
|
| 158 |
- }else{
|
|
| 159 |
- element.totVatPrice = (element.unitPrice * element.caseNumber) + element.vatPrice; // 금액 |
|
| 160 |
- } |
|
| 161 |
- }) |
|
| 162 |
- |
|
| 163 |
- vatSumPrice = 0; |
|
| 164 |
- supplySumPrice = 0; |
|
| 165 |
- totSumPrice = 0; |
|
| 166 |
- |
|
| 167 |
- var sHtml = ""; |
|
| 168 |
- smsList.forEach(function(element) {
|
|
| 169 |
- supplySumPrice += element.supplyPrice; |
|
| 170 |
- totSumPrice += element.totPrice; |
|
| 171 |
- |
|
| 172 |
- sHtml += "<div class='tType3_bd'>"; |
|
| 173 |
- sHtml += " <div>"; |
|
| 174 |
- sHtml += " <label for='' class='label'>한 줄 전체 선택</label>"; |
|
| 175 |
- sHtml += " <input type='checkbox' id='chkEach' name='chkEach'>"; |
|
| 176 |
- sHtml += " </div>"; |
|
| 177 |
- sHtml += " <div>" + element.smsItemName + "</div>"; |
|
| 178 |
- if (isVat == 1) {
|
|
| 179 |
- // 부가세 포함 |
|
| 180 |
- sHtml += " <div>" + element.unitPricePlusVat + "</div>"; |
|
| 181 |
- } |
|
| 182 |
- else {
|
|
| 183 |
- sHtml += " <div>" + element.unitPrice + "</div>"; |
|
| 184 |
- } |
|
| 185 |
- if(element.smsItemName.includes('팩스')){
|
|
| 186 |
- sHtml += " <div>" + numberWithCommas(element.caseNumber * element.casePage) + "</div>"; |
|
| 187 |
- } |
|
| 188 |
- else {
|
|
| 189 |
- sHtml += " <div>" + numberWithCommas(element.caseNumber) + "</div>"; |
|
| 190 |
- } |
|
| 191 |
- sHtml += " <div>" + numberWithCommas(element.supplyPrice) + "</div>"; |
|
| 192 |
- sHtml += " <div>" + numberWithCommas(element.vatPrice) + "</div>"; |
|
| 193 |
- sHtml += " <div>" + numberWithCommas(element.totVatPrice) + "</div>"; |
|
| 194 |
- sHtml += "</div>"; |
|
| 195 |
- }) |
|
| 196 |
- |
|
| 197 |
- $("#itemList").html(sHtml);
|
|
| 198 |
- |
|
| 199 |
- // Sum |
|
| 200 |
- setEstimateSum(); |
|
| 201 |
- } |
|
| 202 |
- |
|
| 203 |
-// Sum |
|
| 204 |
-function setEstimateSum() {
|
|
| 205 |
- var isVat = $("#isVat option:selected").val();
|
|
| 206 |
- console.log("setEstimateSum")
|
|
| 207 |
- if (isVat == 1) {
|
|
| 208 |
- // 부가세 포함 |
|
| 209 |
- vatSumPrice = Math.round(supplySumPrice * 0.1); |
|
| 210 |
- totSumPrice = totSumPrice + vatSumPrice; |
|
| 211 |
- } |
|
| 212 |
- else {
|
|
| 213 |
- // 부가세 별도(부가세 : 0) |
|
| 214 |
- vatSumPrice = 0; |
|
| 215 |
- supplySumPrice = supplySumPrice - vatSumPrice;; |
|
| 216 |
- } |
|
| 217 |
- |
|
| 218 |
- $("#supplySumPriceStr").html(numberWithCommas(supplySumPrice));
|
|
| 219 |
- $("#totSumPriceStr").html(numberWithCommas(totSumPrice));
|
|
| 220 |
- /* if($("#isVat option:selected").val() == '0'){
|
|
| 221 |
- $("#isVatStr").html($("#isVat option:selected").text() + '(' + numberWithCommas(vatSumPrice) + ')');
|
|
| 222 |
- }else{
|
|
| 223 |
- $("#isVatStr").html($("#isVat option:selected").text());
|
|
| 224 |
- } */ |
|
| 225 |
- $("#isVatStr").html(numberWithCommas(vatSumPrice));
|
|
| 226 |
- |
|
| 227 |
- $("#smsList").val(JSON.stringify(smsList));
|
|
| 228 |
- $("#supplySumPrice").val(supplySumPrice);
|
|
| 229 |
- $("#vatSumPrice").val(vatSumPrice);
|
|
| 230 |
- $("#totSumPrice").val(totSumPrice);
|
|
| 231 |
- |
|
| 232 |
-} |
|
| 233 |
- |
|
| 234 |
-// 품목 삭제 |
|
| 235 |
-function setItemDel() {
|
|
| 236 |
- //체크박스 체크 |
|
| 237 |
- var smsListLen = smsList.length; |
|
| 238 |
- while (smsListLen--) {
|
|
| 239 |
- if ($('input[name=chkEach]').eq(smsListLen).is(':checked') == true) {
|
|
| 240 |
- smsList.splice(smsListLen, 1); |
|
| 241 |
- } |
|
| 242 |
- } |
|
| 243 |
-} |
|
| 244 |
- |
|
| 245 |
-//유효성 검사 |
|
| 246 |
-function ValidationCheck() {
|
|
| 247 |
- var title = $("#title").val().trim();
|
|
| 248 |
- var recipientName = $("#recipientName").val().trim();
|
|
| 249 |
- var managerName = $("#managerName").val().trim();
|
|
| 250 |
- var mobile = $("#mobile").val().trim();
|
|
| 251 |
- var publishDate = $("#publishDate").val().trim();
|
|
| 252 |
- |
|
| 253 |
- if (title == null || title == "" || title == undefined) {
|
|
| 254 |
- alert("제목을 입력하세요.");
|
|
| 255 |
- $("#title").focus();
|
|
| 256 |
- return false; |
|
| 257 |
- } |
|
| 258 |
- else if (recipientName == null || recipientName == "" || recipientName == undefined) {
|
|
| 259 |
- alert("수신자(기업명)을 입력하세요.");
|
|
| 260 |
- $("#recipientName").focus();
|
|
| 261 |
- return false; |
|
| 262 |
- } |
|
| 263 |
- else if (managerName == null || managerName == "" || managerName == undefined) {
|
|
| 264 |
- alert("담당자(성명)을 입력하세요.");
|
|
| 265 |
- $("#managerName").focus();
|
|
| 266 |
- return false; |
|
| 267 |
- } |
|
| 268 |
- else if (mobile == null || mobile == "" || mobile == undefined) {
|
|
| 269 |
- alert("연락처를 입력하세요.");
|
|
| 270 |
- $("#mobile").focus();
|
|
| 271 |
- return false; |
|
| 272 |
- } |
|
| 273 |
- else if (publishDate == null || publishDate == "" || publishDate == undefined) {
|
|
| 274 |
- alert("발행일을 입력하세요.");
|
|
| 275 |
- $("#publishDate").focus();
|
|
| 276 |
- return false; |
|
| 277 |
- } |
|
| 278 |
- else if (smsList.length == 0) {
|
|
| 279 |
- alert("품목정보를 하나이상 추가해주세요.");
|
|
| 280 |
- return false; |
|
| 281 |
- } |
|
| 282 |
-} |
|
| 283 |
- |
|
| 284 |
-/* 인쇄미리보기 클릭 시 견적서 새창 팝업 오픈 */ |
|
| 285 |
-function showEst() {
|
|
| 286 |
- |
|
| 287 |
- // 유효성 검사 |
|
| 288 |
- if (ValidationCheck() == false) return false; |
|
| 289 |
- |
|
| 290 |
- //만들려는 팝업의 크기 |
|
| 291 |
- var popup_wid = 820; |
|
| 292 |
- var popup_ht = 900; |
|
| 293 |
- |
|
| 294 |
- //중앙 정렬을 위해 윈도우 스크린의 width,height 구하는 변수 만듦 |
|
| 295 |
- var popup_left = (window.screen.width / 2) - (popup_wid / 2); |
|
| 296 |
- var popup_top =(window.screen.height / 2) - (popup_ht / 2); |
|
| 297 |
- |
|
| 298 |
- // From Submit |
|
| 299 |
- var myForm = document.popForm; |
|
| 300 |
- var url = "/web/pay/PayEstimateAjax.do"; |
|
| 301 |
- window.open('' ,'popForm', 'scrollbars=1, width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top);
|
|
| 302 |
- myForm.action =url; |
|
| 303 |
- myForm.method="post"; |
|
| 304 |
- myForm.target="popForm"; |
|
| 305 |
- myForm.testVal = 'test'; |
|
| 306 |
- myForm.submit(); |
|
| 307 |
-} |
|
| 308 |
- |
|
| 309 |
-function inputNumberFormatPay(obj) {
|
|
| 310 |
- $(obj).val($(obj).val().replace(/[^0-9]/g,"")); |
|
| 311 |
- |
|
| 312 |
- $('#caseNumber').val(numberWithCommas(obj.value));
|
|
| 313 |
-} |
|
| 314 |
- |
|
| 315 |
- |
|
| 316 |
-function inputPagesNumberFormatPay(obj) {
|
|
| 317 |
- $(obj).val($(obj).val().replace(/[^0-9]/g,"")); |
|
| 318 |
- |
|
| 319 |
- $(obj).val(numberWithCommas(obj.value)); |
|
| 320 |
-} |
|
| 321 |
-function inputPagesNumber(obj) {
|
|
| 322 |
- $(obj).val($(obj).val().replace(/[^0-9]/g,"")); |
|
| 323 |
-} |
|
| 324 |
- |
|
| 325 |
-function fn_gunClear(){
|
|
| 326 |
- $('#caseNumber').val('');
|
|
| 327 |
-} |
|
| 328 |
- |
|
| 329 |
- |
|
| 330 |
-//체크박스 전체선택/해제 |
|
| 331 |
-$(document).on("click", "#chkAll", function(e) {
|
|
| 332 |
- var isChecked = $(this).is(":checked");
|
|
| 333 |
- $("input[name=chkEach]:checkbox").prop("checked", isChecked);
|
|
| 334 |
-}); |
|
| 335 |
- |
|
| 336 |
-/* 윈도우팝업 열기 */ |
|
| 337 |
-function infoPop(pageUrl){
|
|
| 338 |
- document.infoPopForm.pageType.value = pageUrl; |
|
| 339 |
- document.infoPopForm.action = "/web/pop/infoPop.do"; |
|
| 340 |
- document.infoPopForm.method = "post"; |
|
| 341 |
- window.open("about:blank", 'infoPop', 'width=790, height=280, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 342 |
- document.infoPopForm.target = "infoPop"; |
|
| 343 |
- document.infoPopForm.submit(); |
|
| 344 |
-} |
|
| 345 |
- |
|
| 346 |
- |
|
| 347 |
-//등급제 시행 ON/OFF 체크(비로그인) |
|
| 348 |
-function getMberSettingDetailByNotLogin() {
|
|
| 349 |
- $.ajax({
|
|
| 350 |
- type: "POST", |
|
| 351 |
- url: "/web/grd/mberSettDetailByNotLoginAjax.do", |
|
| 352 |
- data: {},
|
|
| 353 |
- dataType:'json', |
|
| 354 |
- async: false, |
|
| 355 |
- success: function (data) {
|
|
| 356 |
- if (data.isSuccess) {
|
|
| 357 |
- // 문자(등급별 요금 안내) |
|
| 358 |
- $("#mberGrdSettingArea").show();
|
|
| 359 |
- } |
|
| 360 |
- else {
|
|
| 361 |
- //alert("Msg : " + data.msg);
|
|
| 362 |
- } |
|
| 363 |
- }, |
|
| 364 |
- error: function (e) {
|
|
| 365 |
- //alert("ERROR : " + JSON.stringify(e));
|
|
| 366 |
- } |
|
| 367 |
- }); |
|
| 368 |
-} |
|
| 369 |
- |
|
| 370 |
-// 등급제 대상 여부 |
|
| 371 |
-function getMberGrdChk() {
|
|
| 372 |
- $.ajax({
|
|
| 373 |
- type: "POST", |
|
| 374 |
- url: "/web/grd/mberGrdChkAjax.do", |
|
| 375 |
- data: {},
|
|
| 376 |
- dataType:'json', |
|
| 377 |
- async: false, |
|
| 378 |
- success: function (data) {
|
|
| 379 |
- if (data.isSuccess) {
|
|
| 380 |
- // 등급제 누적결제액 세부내역 |
|
| 381 |
- $("#grdShowArea").html("(등급 : " + data.rtnMberGrdVO.grdSetNm + ")");
|
|
| 382 |
- $("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
|
|
| 383 |
- } |
|
| 384 |
- else {
|
|
| 385 |
- //alert("Msg : " + data.msg);
|
|
| 386 |
- } |
|
| 387 |
- }, |
|
| 388 |
- error: function (e) {
|
|
| 389 |
- //alert("ERROR : " + JSON.stringify(e));
|
|
| 390 |
- } |
|
| 391 |
- }); |
|
| 392 |
-} |
|
| 393 |
- |
|
| 394 |
-</script> |
|
| 395 |
- |
|
| 396 |
-<form name="popForm" method="post"> |
|
| 397 |
- <input type="hidden" name="smsList" id="smsList" value="" /> |
|
| 398 |
- <input type="hidden" name="supplySumPrice" id="supplySumPrice" value="" /> |
|
| 399 |
- <input type="hidden" name="vatSumPrice" id="vatSumPrice" value="" /> |
|
| 400 |
- <input type="hidden" name="totSumPrice" id="totSumPrice" value="" /> |
|
| 401 |
- |
|
| 402 |
- <!-- content 영역 --> |
|
| 403 |
- <div class="inner"> |
|
| 404 |
- <!-- send top --> |
|
| 405 |
- <div class="send_top"> |
|
| 406 |
- <!-- tab button --> |
|
| 407 |
- <ul class="tabType4"> |
|
| 408 |
- <li class="tab active"><button type="button">요금안내/견적내기</button></li> |
|
| 409 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayView.do'">결제하기</button></li> |
|
| 410 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayList.do'">요금 결제내역</button></li> |
|
| 411 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayUserSWList.do'">요금 사용내역</button></li> |
|
| 412 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">세금계산서 발행 등록</button></li> |
|
| 413 |
- </ul> |
|
| 414 |
- <!--// tab button --> |
|
| 415 |
- <!-- 결제관리 - 요금안내/견적내기 --> |
|
| 416 |
- <div class="serv_content charg_cont current" id="tab5_1"> |
|
| 417 |
- <div class="heading"> |
|
| 418 |
- <h2>요금안내/견적내기</h2> |
|
| 419 |
- <button type="button" class="button info" onclick="infoPop('PayGuide');">사용안내</button>
|
|
| 420 |
- </div> |
|
| 421 |
- <!-- tab button --> |
|
| 422 |
- <div class="pay_tab_wrap"> |
|
| 423 |
- <ul class="tabType1"> |
|
| 424 |
- <li class="tab active"> |
|
| 425 |
- <button type="button" onclick="TabType1(this,'1')">요금안내</button> |
|
| 426 |
- </li> |
|
| 427 |
- <li class="tab"> |
|
| 428 |
- <button type="button" onclick="TabType1(this,'2')" id="btnEstimate">견적내기</button> |
|
| 429 |
- </li> |
|
| 430 |
- </ul> |
|
| 431 |
- </div> |
|
| 432 |
- <!--// tab button --> |
|
| 433 |
- <!-- 결제관리 - 요금안내/견적내기 - 요금안내 --> |
|
| 434 |
- <div class="fee_cont current fee_wrap" id="tab1_1"> |
|
| 435 |
- <div> |
|
| 436 |
- <p class="tType1_title"> |
|
| 437 |
- <img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span class="level_first" id="grdShowArea"></span> |
|
| 438 |
- </p> |
|
| 439 |
- <table class="tType2"> |
|
| 440 |
- <caption></caption> |
|
| 441 |
- <colgroup> |
|
| 442 |
- <col style="width: 18%;"> |
|
| 443 |
- <col style="width: auto;"> |
|
| 444 |
- <col style="width: 32%;"> |
|
| 445 |
- </colgroup> |
|
| 446 |
- <thead> |
|
| 447 |
- <tr> |
|
| 448 |
- <th>구분</th> |
|
| 449 |
- <th>특징</th> |
|
| 450 |
- <th>가격</th> |
|
| 451 |
- </tr> |
|
| 452 |
- </thead> |
|
| 453 |
- <tbody> |
|
| 454 |
- <tr> |
|
| 455 |
- <th>단문(SMS)</th> |
|
| 456 |
- <td>90Byte 이하 단문 메시지(이미지 첨부 불가)</td> |
|
| 457 |
- <td><span>${shortPrice}</span>원</td>
|
|
| 458 |
- </tr> |
|
| 459 |
- <tr> |
|
| 460 |
- <th>장문(LMS)</th> |
|
| 461 |
- <td>91~2,000Byte 이하 장문메시지(이미지 첨부 불가)</td> |
|
| 462 |
- <td><span>${longPrice}</span>원</td>
|
|
| 463 |
- </tr> |
|
| 464 |
- <tr> |
|
| 465 |
- <th>그림문자(MMS)</th> |
|
| 466 |
- <td>2,000Byte 이하 문자 및 이미지를 포함하는그림메시지(이미지 최대 3장 첨부 가능) </td> |
|
| 467 |
- <td>1장 : <span>${picturePrice}</span>원 / 2장 : <span>${picturePrice2}<span>원/ 3장 : <span>${picturePrice3}</span>원</td>
|
|
| 468 |
- </tr> |
|
| 469 |
- </tbody> |
|
| 470 |
- </table> |
|
| 471 |
- <span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span> |
|
| 472 |
- |
|
| 473 |
- <!--문자_등급별 요금 안내 추가 시작--> |
|
| 474 |
- <div id="mberGrdSettingArea" style="display: none;"> |
|
| 475 |
- <p class="tType1_title level"><img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span>(등급별 요금 안내)</span></p> |
|
| 476 |
- <table class="tType2 tType2_level"> |
|
| 477 |
- <caption></caption> |
|
| 478 |
- <colgroup> |
|
| 479 |
- <col style="width: 13%;"> |
|
| 480 |
- <col style="width: auto;"> |
|
| 481 |
- <col style="width: 11%;"> |
|
| 482 |
- <col style="width: 11%;"> |
|
| 483 |
- <col style="width: 11%;"> |
|
| 484 |
- <col style="width: 11%;"> |
|
| 485 |
- <col style="width: 11%;"> |
|
| 486 |
- </colgroup> |
|
| 487 |
- <thead> |
|
| 488 |
- <tr> |
|
| 489 |
- <th>등급</th> |
|
| 490 |
- <th class="th_second">누적결제액<span id="levelSubTitle"></span></th> |
|
| 491 |
- <th>단문</th> |
|
| 492 |
- <th>장문</th> |
|
| 493 |
- <th>그림(1장)</th> |
|
| 494 |
- <th>그림(2장)</th> |
|
| 495 |
- <th>그림(3장)</th> |
|
| 496 |
- </tr> |
|
| 497 |
- </thead> |
|
| 498 |
- <tbody> |
|
| 499 |
- <c:forEach var="result" items="${mberGrdSettingList}" varStatus="status">
|
|
| 500 |
- <tr class="level_table"> |
|
| 501 |
- <th><c:out value="${result.grdSetNm}"/></th>
|
|
| 502 |
- <td class="level_price"><c:out value="${result.stdAmtComma}"/></td>
|
|
| 503 |
- <td><c:out value="${result.shortPrice}"/></td>
|
|
| 504 |
- <td><c:out value="${result.longPrice}"/></td>
|
|
| 505 |
- <td><c:out value="${result.picturePrice}"/></td>
|
|
| 506 |
- <td><c:out value="${result.picture2Price}"/></td>
|
|
| 507 |
- <td><c:out value="${result.picture3Price}"/></td>
|
|
| 508 |
- </tr> |
|
| 509 |
- </c:forEach> |
|
| 510 |
- </tbody> |
|
| 511 |
- </table> |
|
| 512 |
- <span class="reqTxt4"> |
|
| 513 |
- * 등급별 요금제는 당사의 정책 및 운영의 필요상 수정, 중단 또는 변경될 수 있습니다. <br> |
|
| 514 |
- * 누적결제액은 등급별 요금제 적용일로부터 적립된 결제금액을 말하며, 누적결제액에 따라 등급은 자동으로 적용됩니다. <br> |
|
| 515 |
- * "첫결제 이벤트" 등 이벤트 결제금액은 등급별 요금제 누적결제액에서 제외됩니다. <br> |
|
| 516 |
- </span> |
|
| 517 |
- <p class="reqTxt4 reqTxt4_last"> |
|
| 518 |
- * 문자피싱, 스미싱, 주식, 도박, 로또, 스팸, 사기, 협박, 범죄, 유사투자, 유사수신 등을 목적으로 하거나 교사 또는 방조하는 내용의 정보, 발신번호 조작 등으로 인지되는 문자에 대해서는 사전 또는 즉시 발송을 차단하고 |
|
| 519 |
- 이용을 정지시킬 수 있으며, 이에 대한 어떠한 환불이나 보상을 실시하지 않습니다. 또한, 상기 문자를 발송한 회원에 대해서는 그 즉시 등급별 요금제 혜택을 취소합니다. |
|
| 520 |
- </p> |
|
| 521 |
- </div> |
|
| 522 |
- <!--문자_등급별 요금 안내 추가 끝--> |
|
| 523 |
- |
|
| 524 |
- <p class="tType1_title"><img src="/publish/images/content/icon_fee2.png" alt="알림톡 아이콘 이미지"> 알림톡</p> |
|
| 525 |
- <table class="tType2"> |
|
| 526 |
- <colgroup> |
|
| 527 |
- <col style="width: 20%;"> |
|
| 528 |
- <col style="width: 60%;"> |
|
| 529 |
- <col style="width: 20%;"> |
|
| 530 |
- </colgroup> |
|
| 531 |
- <thead> |
|
| 532 |
- <tr> |
|
| 533 |
- <th>구분</th> |
|
| 534 |
- <th>특징</th> |
|
| 535 |
- <th>가격</th> |
|
| 536 |
- </tr> |
|
| 537 |
- </thead> |
|
| 538 |
- <tbody> |
|
| 539 |
- <tr> |
|
| 540 |
- <th>알림톡</th> |
|
| 541 |
- <td>카카오톡을 통해 친구 추가 여부와 관계 없이 휴대폰 번호로 발송이 가능한 정보성 메시지<br>(1,000자 이하의 텍스트 및 이미지 중 카카오 사전 승인 건에 한하여 발송 가능)</td> |
|
| 542 |
- <td>1장 : <span>${kakaoAtPrice}</span>원</td>
|
|
| 543 |
- </tr> |
|
| 544 |
- </tbody> |
|
| 545 |
- </table> |
|
| 546 |
- <span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span> |
|
| 547 |
- |
|
| 548 |
- <p class="tType1_title"><img src="/publish/images/content/icon_fee_fax.png" alt="팩스 아이콘 이미지"> 팩스</p> |
|
| 549 |
- <table class="tType2"> |
|
| 550 |
- <colgroup> |
|
| 551 |
- <col style="width: 20%;"> |
|
| 552 |
- <col style="width: 60%;"> |
|
| 553 |
- <col style="width: 20%;"> |
|
| 554 |
- </colgroup> |
|
| 555 |
- <thead> |
|
| 556 |
- <tr> |
|
| 557 |
- <th>구분</th> |
|
| 558 |
- <th>특징(전송가능확장자)</th> |
|
| 559 |
- <th>가격</th> |
|
| 560 |
- </tr> |
|
| 561 |
- </thead> |
|
| 562 |
- <tbody> |
|
| 563 |
- <tr> |
|
| 564 |
- <th>팩스</th> |
|
| 565 |
- <td>전송 가능 파일(hwp, pdf, ppt, xls, xlsx, doc, jpg, jpeg, bmp, txt, gif, hwpml, tif, gul)</td> |
|
| 566 |
- <td>1매 : <span>${faxPrice}</span>원</td>
|
|
| 567 |
- </tr> |
|
| 568 |
- </tbody> |
|
| 569 |
- </table> |
|
| 570 |
- |
|
| 571 |
- <p class="tType1_title"><img src="/publish/images/content/icon_fee3.png" alt="그림문자 맞춤제작 이미지"> 그림문자 맞춤제작</p> |
|
| 572 |
- <table class="tType2"> |
|
| 573 |
- <caption></caption> |
|
| 574 |
- <colgroup> |
|
| 575 |
- <col style="width: 80%;"> |
|
| 576 |
- <col style="width: 20%;"> |
|
| 577 |
- </colgroup> |
|
| 578 |
- <thead> |
|
| 579 |
- <tr> |
|
| 580 |
- <th>구분</th> |
|
| 581 |
- <th>가격</th> |
|
| 582 |
- </tr> |
|
| 583 |
- </thead> |
|
| 584 |
- <tbody> |
|
| 585 |
- <tr> |
|
| 586 |
- <th>문자온 샘플 수정(글자, 색상, 폰트 등)</th> |
|
| 587 |
- <td><span>${customSamplePrice}</span>원</td>
|
|
| 588 |
- </tr> |
|
| 589 |
- <tr> |
|
| 590 |
- <th>이미지 편집(첨부이미지 1장)</th> |
|
| 591 |
- <td><span>${customEditPrice}</span>원</td>
|
|
| 592 |
- </tr> |
|
| 593 |
- <tr> |
|
| 594 |
- <th>이미지 편집(첨부이미지 3장이하)</th> |
|
| 595 |
- <td><span>${customEdit3Price}</span>원</td>
|
|
| 596 |
- </tr> |
|
| 597 |
- <tr> |
|
| 598 |
- <th>텍스트 단순수정</th> |
|
| 599 |
- <td><span>${customTextPrice}</span>원</td>
|
|
| 600 |
- </tr> |
|
| 601 |
- </tbody> |
|
| 602 |
- </table> |
|
| 603 |
- <span class="reqTxt4">* 텍스트 단순수정 요청은 맞춤제작이 완료된 그림문자의 수정 시에만 가능합니다.</span> |
|
| 604 |
- |
|
| 605 |
- <div class="banner"> |
|
| 606 |
- <p>대량발송 고객 가격협의 가능</p> |
|
| 607 |
- <ul> |
|
| 608 |
- <li><img src="/publish/images/content/banner_call01.png" alt=""><p>전화 <strong>1551-8011</strong><p></li> |
|
| 609 |
- <li><img src="/publish/images/content/banner_email01.png" alt=""><p>이메일<span>help@iten.co.kr</span> <button type="button" onclick="location.href='mailto:help@iten.co.kr'">상담하기</button></li> |
|
| 610 |
- <li><img src="/publish/images/content/banner_kakao01.png" alt=""><p>카카오톡<span>munjaon</span><a href="http://pf.kakao.com/_PxoTtb/chat" target="_blank">상담하기</a><p></li> |
|
| 611 |
- </ul> |
|
| 612 |
- </div> |
|
| 613 |
- </div> |
|
| 614 |
- </div> |
|
| 615 |
- <!--// 결제관리 - 요금안내/견적내기 - 요금안내 --> |
|
| 616 |
- |
|
| 617 |
- <!-- 결제관리 - 요금안내/견적내기 - 견적내기 --> |
|
| 618 |
- <div class="fee_cont" id="tab1_2"> |
|
| 619 |
- <ul class="clause_list"> |
|
| 620 |
- <li class="list_open on"> |
|
| 621 |
- <div class="clause_list_head"> |
|
| 622 |
- <div class="list_head_in"> |
|
| 623 |
- <span><i></i>요금안내</span> |
|
| 624 |
- <button type="button" onclick="clause_list(this);"><i></i></button> |
|
| 625 |
- </div> |
|
| 626 |
- </div> |
|
| 627 |
- <div class="clause_list_body"> |
|
| 628 |
- <table class="refund_info"> |
|
| 629 |
- <caption>요금 안내</caption> |
|
| 630 |
- <colgroup> |
|
| 631 |
- <col style="width: 13%;"> |
|
| 632 |
- <col style="width: auto;"> |
|
| 633 |
- <col style="width: 25%;"> |
|
| 634 |
- </colgroup> |
|
| 635 |
- <thead> |
|
| 636 |
- <tr> |
|
| 637 |
- <th>구분</th> |
|
| 638 |
- <th>특징</th> |
|
| 639 |
- <th>금액</th> |
|
| 640 |
- </tr> |
|
| 641 |
- </thead> |
|
| 642 |
- <tbody> |
|
| 643 |
- <tr> |
|
| 644 |
- <td>단문(SMS)</td> |
|
| 645 |
- <td>90Byte 이하 단문 메시지(이미지 첨부 불가)</td> |
|
| 646 |
- <td><span>${shortPrice}</span>원</td>
|
|
| 647 |
- </tr> |
|
| 648 |
- <tr> |
|
| 649 |
- <td>장문(LMS)</td> |
|
| 650 |
- <td>91~2,000Byte 이하 장문메시지(이미지 첨부 불가)</td> |
|
| 651 |
- <td><span>${longPrice}</span>원</td>
|
|
| 652 |
- <tr> |
|
| 653 |
- <td>그림문자(MMS)</td> |
|
| 654 |
- <td>2,000Byte 이하 문자 및 이미지를 포함하는 그림메시지(이미지 최대 3장 첨부 가능)</td> |
|
| 655 |
- <td>1장 : <span>${picturePrice}</span>원 / 2장 : <span>${picturePrice2}</span>원 / 3장 : <span>${picturePrice3}</span>원</td>
|
|
| 656 |
- </tr> |
|
| 657 |
- <tr> |
|
| 658 |
- <td>카카오(알림톡)</td> |
|
| 659 |
- <td>카카오톡을 통해 친구 추가 여부와 관계 없이 휴대폰 번호로 발송이 가능한 정보성 메시지(1,000자 이하의 텍스트 및 이미지 중 카카오 사전 승인 건에 한하여 발송 가능)</td> |
|
| 660 |
- <td><span>${kakaoAtPrice}</span>원</td>
|
|
| 661 |
- </tr> |
|
| 662 |
- <tr> |
|
| 663 |
- <td>팩스</td> |
|
| 664 |
- <td>전송 가능 파일(hwp, pdf, ppt, xls, xlsx, doc, jpg, jpeg, bmp, txt, gif, hwpml, tif, htm, html, gul)</td> |
|
| 665 |
- <td><span>${faxPrice}</span>원</td>
|
|
| 666 |
- </tr> |
|
| 667 |
- <tr> |
|
| 668 |
- <td>맞춤제작</td> |
|
| 669 |
- <td>문자온 샘플 수정(글자, 색상, 폰트 등)</td> |
|
| 670 |
- <td><span>${customSamplePrice}</span>원</td>
|
|
| 671 |
- </tr> |
|
| 672 |
- <tr> |
|
| 673 |
- <td>맞춤제작</td> |
|
| 674 |
- <td>이미지 편집(첨부이미지 1장)</td> |
|
| 675 |
- <td><span>${customEditPrice}</span>원</td>
|
|
| 676 |
- </tr> |
|
| 677 |
- <tr> |
|
| 678 |
- <td>맞춤제작</td> |
|
| 679 |
- <td>이미지 편집(첨부이미지 3장이하)</td> |
|
| 680 |
- <td><span>${customEdit3Price}</span>원</td>
|
|
| 681 |
- </tr> |
|
| 682 |
- <tr> |
|
| 683 |
- <td>맞춤제작</td> |
|
| 684 |
- <td>텍스트 단순수정</td> |
|
| 685 |
- <td><span>${customTextPrice}</span>원</td>
|
|
| 686 |
- </tr> |
|
| 687 |
- </tbody> |
|
| 688 |
- </table> |
|
| 689 |
- </div> |
|
| 690 |
- </li> |
|
| 691 |
- </ul> |
|
| 692 |
- <div> |
|
| 693 |
- <p class="tType1_title">일반정보</p> |
|
| 694 |
- <table class="tType1"> |
|
| 695 |
- <caption></caption> |
|
| 696 |
- <colgroup> |
|
| 697 |
- <col style="width: 150px;"> |
|
| 698 |
- <col style="width: auto;"> |
|
| 699 |
- </colgroup> |
|
| 700 |
- <tbody> |
|
| 701 |
- <tr> |
|
| 702 |
- <th>제목</th> |
|
| 703 |
- <td> |
|
| 704 |
- <label for="" class="label">견적내기 제목</label> |
|
| 705 |
- <input type="text" id="title" name="title" placeholder="견적서" onfocus="this.placeholder=''" onblur="this.placeholder='견적서'" style="width: 400px;" maxlength="20"> |
|
| 706 |
- </td> |
|
| 707 |
- </tr> |
|
| 708 |
- <tr> |
|
| 709 |
- <th>수신자(기업명)</th> |
|
| 710 |
- <td> |
|
| 711 |
- <label for="" class="label">수신자(기업명) 입력</label> |
|
| 712 |
- <input type="text" id="recipientName" name="recipientName" style="width: 400px;" maxlength="18"> |
|
| 713 |
- </td> |
|
| 714 |
- </tr> |
|
| 715 |
- <tr> |
|
| 716 |
- <th>담당자(성명)</th> |
|
| 717 |
- <td> |
|
| 718 |
- <label for="" class="label">담당자(성명) 입력</label> |
|
| 719 |
- <input type="text" id="managerName" name="managerName" style="width: 400px;" maxlength="18"> |
|
| 720 |
- </td> |
|
| 721 |
- </tr> |
|
| 722 |
- <tr> |
|
| 723 |
- <th>연락처</th> |
|
| 724 |
- <td> |
|
| 725 |
- <label for="" class="label">연락처 입력</label> |
|
| 726 |
- <input type="text" onkeyup="inputPagesNumber(this)"; maxlength="11" id="mobile" name="mobile" style="width: 400px;"> |
|
| 727 |
- </td> |
|
| 728 |
- </tr> |
|
| 729 |
- <tr> |
|
| 730 |
- <th>발행일</th> |
|
| 731 |
- <td> |
|
| 732 |
- <div class="calendar_wrap"> |
|
| 733 |
- <input type="text" class="calendar" title="발행일" id="publishDate" name="publishDate"> |
|
| 734 |
- </div> |
|
| 735 |
- </td> |
|
| 736 |
- </tr> |
|
| 737 |
- </tbody> |
|
| 738 |
- </table> |
|
| 739 |
- |
|
| 740 |
- <p class="tType1_title">품목정보</p> |
|
| 741 |
- <table class="tType1 itemInfo"> |
|
| 742 |
- <caption></caption> |
|
| 743 |
- <colgroup> |
|
| 744 |
- <col style="width: 150px;"> |
|
| 745 |
- <col style="width: auto;"> |
|
| 746 |
- </colgroup> |
|
| 747 |
- <tbody> |
|
| 748 |
- <tr> |
|
| 749 |
- <th>구분</th> |
|
| 750 |
- <td> |
|
| 751 |
- <label for="" class="label">품목 선택</label> |
|
| 752 |
- <select id="smsItem" name="smsItem" onchange="fn_gunClear();" style="width: 210px;"> |
|
| 753 |
- </select> |
|
| 754 |
- <label for="" class="label">품목 별 단가</label> |
|
| 755 |
- <input type="text" id="unitPrice" name="unitPrice" value="0" placeholder="" readonly class="readonly"> |
|
| 756 |
- <p class="input_in">원</p> |
|
| 757 |
- </td> |
|
| 758 |
- </tr> |
|
| 759 |
- <tr> |
|
| 760 |
- <th>건수</th> |
|
| 761 |
- <td class="publish_btn"> |
|
| 762 |
- <label for="" class="label">건수 입력</label> |
|
| 763 |
- <input type="text" id="caseNumber" numberOnly maxlength="10" name="caseNumber" style="width: 210px;" onkeyup="inputNumberFormatPay(this)"> |
|
| 764 |
- <p class="input_in">건</p> |
|
| 765 |
- <div> |
|
| 766 |
- <button type="button" class="btnType" id="btnItemAdd">품목추가<i class="arrow_img"></i></button> |
|
| 767 |
- </div> |
|
| 768 |
- </td> |
|
| 769 |
- </tr> |
|
| 770 |
- <tr id="faxPages" style="display:none;"> |
|
| 771 |
- <th>매수</th> |
|
| 772 |
- <td class="publish_btn"> |
|
| 773 |
- <label for="" class="label">매수 입력</label> |
|
| 774 |
- <input type="text" id="casePage" name="casePage" style="width: 210px;" onkeyup="inputPagesNumberFormatPay(this)"> |
|
| 775 |
- <p class="input_in">매</p> |
|
| 776 |
- </td> |
|
| 777 |
- </tr> |
|
| 778 |
- </tbody> |
|
| 779 |
- </table> |
|
| 780 |
- <div class="search_group_bottom2"> |
|
| 781 |
- <div class="btnWrap1"> |
|
| 782 |
- <button type="button" class="btnType" id="btnItemDel"><i class="remove_img"></i>선택삭제</button> |
|
| 783 |
- </div> |
|
| 784 |
- </div> |
|
| 785 |
- <!-- table --> |
|
| 786 |
- <div class="tType3 payDetail"> |
|
| 787 |
- <!-- thead --> |
|
| 788 |
- <div class="tType3_hd"> |
|
| 789 |
- <div> |
|
| 790 |
- <label for="" class="label">전체 선택</label> |
|
| 791 |
- <input type="checkbox" id="chkAll"> |
|
| 792 |
- </div> |
|
| 793 |
- <div>품목</div> |
|
| 794 |
- <div>단가(원)</div> |
|
| 795 |
- <div>건수(건)</div> |
|
| 796 |
- <div>공급가액(원)</div> |
|
| 797 |
- <div>세액(부가세)</div> |
|
| 798 |
- <div>금액(원)</div> |
|
| 799 |
- </div> |
|
| 800 |
- <!-- tbody --> |
|
| 801 |
- <div class="tType3_bd_wrap" id="itemList"> |
|
| 802 |
- <div class="tType3_bd"> |
|
| 803 |
- <div></div> |
|
| 804 |
- <div></div> |
|
| 805 |
- <div></div> |
|
| 806 |
- <div></div> |
|
| 807 |
- <div></div> |
|
| 808 |
- <div></div> |
|
| 809 |
- <div></div> |
|
| 810 |
- </div> |
|
| 811 |
- </div> |
|
| 812 |
- </div> |
|
| 813 |
- <!--// table --> |
|
| 814 |
- <div class="tb_wrap totalPrice_tb"> |
|
| 815 |
- <table class="tType4"> |
|
| 816 |
- <colgroup> |
|
| 817 |
- <col style="width: 25%;"> |
|
| 818 |
- <col style="width: 25%;"> |
|
| 819 |
- <col style="width: 30%;"> |
|
| 820 |
- <col style="width: 15%;"> |
|
| 821 |
- </colgroup> |
|
| 822 |
- <thead> |
|
| 823 |
- <tr> |
|
| 824 |
- <th>공급가액</th> |
|
| 825 |
- <th>세액(부가세)</th> |
|
| 826 |
- <th>합계</th> |
|
| 827 |
- <th>비고</th> |
|
| 828 |
- </tr> |
|
| 829 |
- </thead> |
|
| 830 |
- <tbody> |
|
| 831 |
- <tr> |
|
| 832 |
- <td> |
|
| 833 |
- <span id="supplySumPriceStr"></span> |
|
| 834 |
- </td> |
|
| 835 |
- <td> |
|
| 836 |
- <span id="isVatStr"></span> |
|
| 837 |
- </td> |
|
| 838 |
- <td> |
|
| 839 |
- <span id="totSumPriceStr"></span> |
|
| 840 |
- </td> |
|
| 841 |
- <td style="text-align: center;"> |
|
| 842 |
- <label for="" class="label">부가세 포함,별도 선택</label> |
|
| 843 |
- <select id="isVat" name="isVat" class="selType2"> |
|
| 844 |
- <option value="0">부가세 별도</option> |
|
| 845 |
- <option value="1" selected>부가세 포함</option> |
|
| 846 |
- </select> |
|
| 847 |
- </td> |
|
| 848 |
- </tr> |
|
| 849 |
- </tbody> |
|
| 850 |
- </table> |
|
| 851 |
- </div> |
|
| 852 |
- <!-- //주소록리스트 --> |
|
| 853 |
- <div style="text-align: center;"> |
|
| 854 |
- <button class="btnType btnType16" onclick="showEst(); return false;">발행하기</button> |
|
| 855 |
- </div> |
|
| 856 |
- </div> |
|
| 857 |
- </div> |
|
| 858 |
- <!-- 결제관리 - 요금안내/견적내기 - 견적내기 --> |
|
| 859 |
- </div> |
|
| 860 |
- </div> |
|
| 861 |
- <!-- 결제관리 - 요금안내/견적내기 --> |
|
| 862 |
- </div> |
|
| 863 |
- <!--// send top --> |
|
| 864 |
-</form> |
|
| 865 |
-<form name="infoPopForm" id="infoPopForm" method="post"> |
|
| 866 |
- <input type="hidden" name="pageType" id="pageType" value=""/> |
|
| 867 |
-</form> |
|
| 1 |
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
|
| 2 |
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
|
| 3 |
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
|
| 4 |
+ |
|
| 5 |
+<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> |
|
| 6 |
+ |
|
| 7 |
+<script> |
|
| 8 |
+// 문자 단가 |
|
| 9 |
+var shortPrice = "${shortPrice}";
|
|
| 10 |
+var longPrice = "${longPrice}";
|
|
| 11 |
+var picturePrice = "${picturePrice}";
|
|
| 12 |
+var picturePrice2 = "${picturePrice2}";
|
|
| 13 |
+var picturePrice3 = "${picturePrice3}";
|
|
| 14 |
+var kakaoAtPrice = "${kakaoAtPrice}";
|
|
| 15 |
+var faxPrice = "${faxPrice}";
|
|
| 16 |
+ |
|
| 17 |
+var smsList = new Array(); // 품목추가 Array |
|
| 18 |
+var supplySumPrice = 0; // 공급가액 |
|
| 19 |
+var vatSumPrice = 0; // 부가세액 |
|
| 20 |
+var totSumPrice = 0; // 합계 |
|
| 21 |
+ |
|
| 22 |
+// 탭이동 |
|
| 23 |
+var tabType = "${tabType}";
|
|
| 24 |
+ |
|
| 25 |
+$(document).ready(function () {
|
|
| 26 |
+ |
|
| 27 |
+ // 품목정보 추가 |
|
| 28 |
+ getSmsItemAdd(); |
|
| 29 |
+ |
|
| 30 |
+ // 품목 Change Event |
|
| 31 |
+ $("#smsItem").change(function(){
|
|
| 32 |
+ $("#unitPrice").val($("#smsItem option:selected").val());
|
|
| 33 |
+ |
|
| 34 |
+ var optNm = $("#smsItem option:selected").text();
|
|
| 35 |
+ if(optNm.includes('팩스')){
|
|
| 36 |
+ $('#faxPages').show();
|
|
| 37 |
+ }else{
|
|
| 38 |
+ $('#faxPages').hide();
|
|
| 39 |
+ } |
|
| 40 |
+ }); |
|
| 41 |
+ |
|
| 42 |
+ // 품목추가 Click Event |
|
| 43 |
+ $("#btnItemAdd").click(function(){
|
|
| 44 |
+ // 품목추가 |
|
| 45 |
+ setItemAdd(); |
|
| 46 |
+ }); |
|
| 47 |
+ |
|
| 48 |
+ // 품목삭제 Click Event |
|
| 49 |
+ $("#btnItemDel").click(function(){
|
|
| 50 |
+ // 품목삭제 |
|
| 51 |
+ setItemDel(); |
|
| 52 |
+ |
|
| 53 |
+ //품목추가 Html |
|
| 54 |
+ setItemAddHtml(); |
|
| 55 |
+ }); |
|
| 56 |
+ |
|
| 57 |
+ // 부가세별도 여부 Change Event |
|
| 58 |
+ $("#isVat").change(function(){
|
|
| 59 |
+ //품목추가 Html |
|
| 60 |
+ setItemAddHtml(); |
|
| 61 |
+ }); |
|
| 62 |
+ |
|
| 63 |
+ // 견적내기화면으로 이동 |
|
| 64 |
+ if (tabType == "2") {
|
|
| 65 |
+ $("#btnEstimate").trigger("click");
|
|
| 66 |
+ } |
|
| 67 |
+ |
|
| 68 |
+ //등급제 시행 ON/OFF 체크(비로그인) |
|
| 69 |
+ //getMberSettingDetailByNotLogin(); |
|
| 70 |
+ |
|
| 71 |
+ // 등급제 대상 여부 |
|
| 72 |
+ //getMberGrdChk(); |
|
| 73 |
+ |
|
| 74 |
+}); |
|
| 75 |
+ |
|
| 76 |
+//품목정보 추가 |
|
| 77 |
+function getSmsItemAdd() {
|
|
| 78 |
+ var sHtml = ""; |
|
| 79 |
+ sHtml += "<option value='" + shortPrice + "'>단문(SMS)</option>"; |
|
| 80 |
+ sHtml += "<option value='" + longPrice + "'>장문(LMS)</option>"; |
|
| 81 |
+ sHtml += "<option value='" + picturePrice + "'>그림문자(1장)</option>"; |
|
| 82 |
+ sHtml += "<option value='" + picturePrice2 + "'>그림문자(2장)</option>"; |
|
| 83 |
+ sHtml += "<option value='" + picturePrice3 + "'>그림문자(3장)</option>"; |
|
| 84 |
+ sHtml += "<option value='" + kakaoAtPrice + "'>카톡(알림톡)</option>"; |
|
| 85 |
+ sHtml += "<option value='" + faxPrice + "'>팩스</option>"; |
|
| 86 |
+ |
|
| 87 |
+ $("#smsItem").append(sHtml);
|
|
| 88 |
+ |
|
| 89 |
+ // 단가 초기값 |
|
| 90 |
+ $("#unitPrice").val($("#smsItem option:selected").val());
|
|
| 91 |
+} |
|
| 92 |
+ |
|
| 93 |
+ |
|
| 94 |
+// 품목추가 |
|
| 95 |
+function setItemAdd() {
|
|
| 96 |
+ var caseNumber = $("#caseNumber").val().trim().replaceAll(",", "");
|
|
| 97 |
+ var casePage = $("#casePage").val().trim().replaceAll(",", "");
|
|
| 98 |
+ |
|
| 99 |
+ if (caseNumber == null || caseNumber == "" || caseNumber == undefined) {
|
|
| 100 |
+ alert("건수를 입력하세요.");
|
|
| 101 |
+ return false; |
|
| 102 |
+ } |
|
| 103 |
+ else if (isNaN(caseNumber) == true) {
|
|
| 104 |
+ alert("건수는 숫자를 입력하세요.");
|
|
| 105 |
+ return false; |
|
| 106 |
+ } |
|
| 107 |
+ |
|
| 108 |
+ // 객체 생성 |
|
| 109 |
+ var data = new Object(); |
|
| 110 |
+ data.smsItemName = $("#smsItem option:selected").text(); // 품목명
|
|
| 111 |
+ data.unitPrice = $("#unitPrice").val(); // 단가
|
|
| 112 |
+ data.unitPricePlusVat = $("#unitPrice").val(); // 단가
|
|
| 113 |
+ data.caseNumber = caseNumber; // 건수 |
|
| 114 |
+ data.supplyPrice = $("#unitPrice").val() * caseNumber;
|
|
| 115 |
+ data.totPrice = $("#unitPrice").val() * caseNumber; // 금액
|
|
| 116 |
+ |
|
| 117 |
+ var itmNm = data.smsItemName |
|
| 118 |
+ if(itmNm.includes('팩스')){//팩스인 경우 매수 곱해주기
|
|
| 119 |
+ data.casePage = casePage; |
|
| 120 |
+ data.supplyPrice = $("#unitPrice").val() * (caseNumber * casePage);
|
|
| 121 |
+ data.totPrice = $("#unitPrice").val() * (caseNumber * casePage); // 금액
|
|
| 122 |
+ } |
|
| 123 |
+ |
|
| 124 |
+ // 리스트에 생성된 객체 삽입 |
|
| 125 |
+ smsList.push(data); |
|
| 126 |
+ |
|
| 127 |
+ //품목추가 Html |
|
| 128 |
+ setItemAddHtml(); |
|
| 129 |
+ } |
|
| 130 |
+ |
|
| 131 |
+//품목추가 Html |
|
| 132 |
+function setItemAddHtml() {
|
|
| 133 |
+ var isVat = $("#isVat option:selected").val();
|
|
| 134 |
+ |
|
| 135 |
+ // 부가세 케이스별 다시계산 |
|
| 136 |
+ smsList.forEach(function(element) {
|
|
| 137 |
+ var itmNm = element.smsItemName; |
|
| 138 |
+ |
|
| 139 |
+ if (isVat == 1) {
|
|
| 140 |
+ |
|
| 141 |
+ if(itmNm.includes('팩스')){//팩스인 경우 건수 * 매수에 대한 금액의 부가세를 계산해야함.
|
|
| 142 |
+ // 부가세 포함 |
|
| 143 |
+ element.vatPrice = Math.round(element.unitPrice * 0.1 * (element.caseNumber * element.casePage)); |
|
| 144 |
+ }else{
|
|
| 145 |
+ // 부가세 포함 |
|
| 146 |
+ element.vatPrice = Math.round(element.unitPrice * 0.1 * element.caseNumber); |
|
| 147 |
+ //element.unitPricePlusVat = parseInt(element.unitPrice, 10) + Math.round(element.unitPrice * 0.1); |
|
| 148 |
+ } |
|
| 149 |
+ |
|
| 150 |
+ } |
|
| 151 |
+ else {
|
|
| 152 |
+ // 부가세 별도(부가세 : 0) |
|
| 153 |
+ element.vatPrice = 0; |
|
| 154 |
+ } |
|
| 155 |
+ |
|
| 156 |
+ if(itmNm.includes('팩스')){//팩스인 경우 건수 * 매수에 대한 금액의 부가세를 계산해야함.
|
|
| 157 |
+ element.totVatPrice = (element.unitPrice * (element.caseNumber * element.casePage)) + element.vatPrice; // 금액 |
|
| 158 |
+ }else{
|
|
| 159 |
+ element.totVatPrice = (element.unitPrice * element.caseNumber) + element.vatPrice; // 금액 |
|
| 160 |
+ } |
|
| 161 |
+ }) |
|
| 162 |
+ |
|
| 163 |
+ vatSumPrice = 0; |
|
| 164 |
+ supplySumPrice = 0; |
|
| 165 |
+ totSumPrice = 0; |
|
| 166 |
+ |
|
| 167 |
+ var sHtml = ""; |
|
| 168 |
+ smsList.forEach(function(element) {
|
|
| 169 |
+ supplySumPrice += element.supplyPrice; |
|
| 170 |
+ totSumPrice += element.totPrice; |
|
| 171 |
+ |
|
| 172 |
+ sHtml += "<div class='tType3_bd'>"; |
|
| 173 |
+ sHtml += " <div>"; |
|
| 174 |
+ sHtml += " <label for='' class='label'>한 줄 전체 선택</label>"; |
|
| 175 |
+ sHtml += " <input type='checkbox' id='chkEach' name='chkEach'>"; |
|
| 176 |
+ sHtml += " </div>"; |
|
| 177 |
+ sHtml += " <div>" + element.smsItemName + "</div>"; |
|
| 178 |
+ if (isVat == 1) {
|
|
| 179 |
+ // 부가세 포함 |
|
| 180 |
+ sHtml += " <div>" + element.unitPricePlusVat + "</div>"; |
|
| 181 |
+ } |
|
| 182 |
+ else {
|
|
| 183 |
+ sHtml += " <div>" + element.unitPrice + "</div>"; |
|
| 184 |
+ } |
|
| 185 |
+ if(element.smsItemName.includes('팩스')){
|
|
| 186 |
+ sHtml += " <div>" + numberWithCommas(element.caseNumber * element.casePage) + "</div>"; |
|
| 187 |
+ } |
|
| 188 |
+ else {
|
|
| 189 |
+ sHtml += " <div>" + numberWithCommas(element.caseNumber) + "</div>"; |
|
| 190 |
+ } |
|
| 191 |
+ sHtml += " <div>" + numberWithCommas(element.supplyPrice) + "</div>"; |
|
| 192 |
+ sHtml += " <div>" + numberWithCommas(element.vatPrice) + "</div>"; |
|
| 193 |
+ sHtml += " <div>" + numberWithCommas(element.totVatPrice) + "</div>"; |
|
| 194 |
+ sHtml += "</div>"; |
|
| 195 |
+ }) |
|
| 196 |
+ |
|
| 197 |
+ $("#itemList").html(sHtml);
|
|
| 198 |
+ |
|
| 199 |
+ // Sum |
|
| 200 |
+ setEstimateSum(); |
|
| 201 |
+ } |
|
| 202 |
+ |
|
| 203 |
+// Sum |
|
| 204 |
+function setEstimateSum() {
|
|
| 205 |
+ var isVat = $("#isVat option:selected").val();
|
|
| 206 |
+ console.log("setEstimateSum")
|
|
| 207 |
+ if (isVat == 1) {
|
|
| 208 |
+ // 부가세 포함 |
|
| 209 |
+ vatSumPrice = Math.round(supplySumPrice * 0.1); |
|
| 210 |
+ totSumPrice = totSumPrice + vatSumPrice; |
|
| 211 |
+ } |
|
| 212 |
+ else {
|
|
| 213 |
+ // 부가세 별도(부가세 : 0) |
|
| 214 |
+ vatSumPrice = 0; |
|
| 215 |
+ supplySumPrice = supplySumPrice - vatSumPrice;; |
|
| 216 |
+ } |
|
| 217 |
+ |
|
| 218 |
+ $("#supplySumPriceStr").html(numberWithCommas(supplySumPrice));
|
|
| 219 |
+ $("#totSumPriceStr").html(numberWithCommas(totSumPrice));
|
|
| 220 |
+ /* if($("#isVat option:selected").val() == '0'){
|
|
| 221 |
+ $("#isVatStr").html($("#isVat option:selected").text() + '(' + numberWithCommas(vatSumPrice) + ')');
|
|
| 222 |
+ }else{
|
|
| 223 |
+ $("#isVatStr").html($("#isVat option:selected").text());
|
|
| 224 |
+ } */ |
|
| 225 |
+ $("#isVatStr").html(numberWithCommas(vatSumPrice));
|
|
| 226 |
+ |
|
| 227 |
+ $("#smsList").val(JSON.stringify(smsList));
|
|
| 228 |
+ $("#supplySumPrice").val(supplySumPrice);
|
|
| 229 |
+ $("#vatSumPrice").val(vatSumPrice);
|
|
| 230 |
+ $("#totSumPrice").val(totSumPrice);
|
|
| 231 |
+ |
|
| 232 |
+} |
|
| 233 |
+ |
|
| 234 |
+// 품목 삭제 |
|
| 235 |
+function setItemDel() {
|
|
| 236 |
+ //체크박스 체크 |
|
| 237 |
+ var smsListLen = smsList.length; |
|
| 238 |
+ while (smsListLen--) {
|
|
| 239 |
+ if ($('input[name=chkEach]').eq(smsListLen).is(':checked') == true) {
|
|
| 240 |
+ smsList.splice(smsListLen, 1); |
|
| 241 |
+ } |
|
| 242 |
+ } |
|
| 243 |
+} |
|
| 244 |
+ |
|
| 245 |
+//유효성 검사 |
|
| 246 |
+function ValidationCheck() {
|
|
| 247 |
+ var title = $("#title").val().trim();
|
|
| 248 |
+ var recipientName = $("#recipientName").val().trim();
|
|
| 249 |
+ var managerName = $("#managerName").val().trim();
|
|
| 250 |
+ var mobile = $("#mobile").val().trim();
|
|
| 251 |
+ var publishDate = $("#publishDate").val().trim();
|
|
| 252 |
+ |
|
| 253 |
+ if (title == null || title == "" || title == undefined) {
|
|
| 254 |
+ alert("제목을 입력하세요.");
|
|
| 255 |
+ $("#title").focus();
|
|
| 256 |
+ return false; |
|
| 257 |
+ } |
|
| 258 |
+ else if (recipientName == null || recipientName == "" || recipientName == undefined) {
|
|
| 259 |
+ alert("수신자(기업명)을 입력하세요.");
|
|
| 260 |
+ $("#recipientName").focus();
|
|
| 261 |
+ return false; |
|
| 262 |
+ } |
|
| 263 |
+ else if (managerName == null || managerName == "" || managerName == undefined) {
|
|
| 264 |
+ alert("담당자(성명)을 입력하세요.");
|
|
| 265 |
+ $("#managerName").focus();
|
|
| 266 |
+ return false; |
|
| 267 |
+ } |
|
| 268 |
+ else if (mobile == null || mobile == "" || mobile == undefined) {
|
|
| 269 |
+ alert("연락처를 입력하세요.");
|
|
| 270 |
+ $("#mobile").focus();
|
|
| 271 |
+ return false; |
|
| 272 |
+ } |
|
| 273 |
+ else if (publishDate == null || publishDate == "" || publishDate == undefined) {
|
|
| 274 |
+ alert("발행일을 입력하세요.");
|
|
| 275 |
+ $("#publishDate").focus();
|
|
| 276 |
+ return false; |
|
| 277 |
+ } |
|
| 278 |
+ else if (smsList.length == 0) {
|
|
| 279 |
+ alert("품목정보를 하나이상 추가해주세요.");
|
|
| 280 |
+ return false; |
|
| 281 |
+ } |
|
| 282 |
+} |
|
| 283 |
+ |
|
| 284 |
+/* 인쇄미리보기 클릭 시 견적서 새창 팝업 오픈 */ |
|
| 285 |
+function showEst() {
|
|
| 286 |
+ |
|
| 287 |
+ // 유효성 검사 |
|
| 288 |
+ if (ValidationCheck() == false) return false; |
|
| 289 |
+ |
|
| 290 |
+ //만들려는 팝업의 크기 |
|
| 291 |
+ var popup_wid = 820; |
|
| 292 |
+ var popup_ht = 900; |
|
| 293 |
+ |
|
| 294 |
+ //중앙 정렬을 위해 윈도우 스크린의 width,height 구하는 변수 만듦 |
|
| 295 |
+ var popup_left = (window.screen.width / 2) - (popup_wid / 2); |
|
| 296 |
+ var popup_top =(window.screen.height / 2) - (popup_ht / 2); |
|
| 297 |
+ |
|
| 298 |
+ // From Submit |
|
| 299 |
+ var myForm = document.popForm; |
|
| 300 |
+ var url = "/web/pay/PayEstimateAjax.do"; |
|
| 301 |
+ window.open('' ,'popForm', 'scrollbars=1, width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top);
|
|
| 302 |
+ myForm.action =url; |
|
| 303 |
+ myForm.method="post"; |
|
| 304 |
+ myForm.target="popForm"; |
|
| 305 |
+ myForm.testVal = 'test'; |
|
| 306 |
+ myForm.submit(); |
|
| 307 |
+} |
|
| 308 |
+ |
|
| 309 |
+function inputNumberFormatPay(obj) {
|
|
| 310 |
+ $(obj).val($(obj).val().replace(/[^0-9]/g,"")); |
|
| 311 |
+ |
|
| 312 |
+ $('#caseNumber').val(numberWithCommas(obj.value));
|
|
| 313 |
+} |
|
| 314 |
+ |
|
| 315 |
+ |
|
| 316 |
+function inputPagesNumberFormatPay(obj) {
|
|
| 317 |
+ $(obj).val($(obj).val().replace(/[^0-9]/g,"")); |
|
| 318 |
+ |
|
| 319 |
+ $(obj).val(numberWithCommas(obj.value)); |
|
| 320 |
+} |
|
| 321 |
+function inputPagesNumber(obj) {
|
|
| 322 |
+ $(obj).val($(obj).val().replace(/[^0-9]/g,"")); |
|
| 323 |
+} |
|
| 324 |
+ |
|
| 325 |
+function fn_gunClear(){
|
|
| 326 |
+ $('#caseNumber').val('');
|
|
| 327 |
+} |
|
| 328 |
+ |
|
| 329 |
+ |
|
| 330 |
+//체크박스 전체선택/해제 |
|
| 331 |
+$(document).on("click", "#chkAll", function(e) {
|
|
| 332 |
+ var isChecked = $(this).is(":checked");
|
|
| 333 |
+ $("input[name=chkEach]:checkbox").prop("checked", isChecked);
|
|
| 334 |
+}); |
|
| 335 |
+ |
|
| 336 |
+/* 윈도우팝업 열기 */ |
|
| 337 |
+function infoPop(pageUrl){
|
|
| 338 |
+ document.infoPopForm.pageType.value = pageUrl; |
|
| 339 |
+ document.infoPopForm.action = "/web/pop/infoPop.do"; |
|
| 340 |
+ document.infoPopForm.method = "post"; |
|
| 341 |
+ window.open("about:blank", 'infoPop', 'width=790, height=280, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 342 |
+ document.infoPopForm.target = "infoPop"; |
|
| 343 |
+ document.infoPopForm.submit(); |
|
| 344 |
+} |
|
| 345 |
+ |
|
| 346 |
+ |
|
| 347 |
+//등급제 시행 ON/OFF 체크(비로그인) |
|
| 348 |
+function getMberSettingDetailByNotLogin() {
|
|
| 349 |
+ $.ajax({
|
|
| 350 |
+ type: "POST", |
|
| 351 |
+ url: "/web/grd/mberSettDetailByNotLoginAjax.do", |
|
| 352 |
+ data: {},
|
|
| 353 |
+ dataType:'json', |
|
| 354 |
+ async: false, |
|
| 355 |
+ success: function (data) {
|
|
| 356 |
+ if (data.isSuccess) {
|
|
| 357 |
+ // 문자(등급별 요금 안내) |
|
| 358 |
+ $("#mberGrdSettingArea").show();
|
|
| 359 |
+ } |
|
| 360 |
+ else {
|
|
| 361 |
+ //alert("Msg : " + data.msg);
|
|
| 362 |
+ } |
|
| 363 |
+ }, |
|
| 364 |
+ error: function (e) {
|
|
| 365 |
+ //alert("ERROR : " + JSON.stringify(e));
|
|
| 366 |
+ } |
|
| 367 |
+ }); |
|
| 368 |
+} |
|
| 369 |
+ |
|
| 370 |
+// 등급제 대상 여부 |
|
| 371 |
+function getMberGrdChk() {
|
|
| 372 |
+ $.ajax({
|
|
| 373 |
+ type: "POST", |
|
| 374 |
+ url: "/web/grd/mberGrdChkAjax.do", |
|
| 375 |
+ data: {},
|
|
| 376 |
+ dataType:'json', |
|
| 377 |
+ async: false, |
|
| 378 |
+ success: function (data) {
|
|
| 379 |
+ if (data.isSuccess) {
|
|
| 380 |
+ // 등급제 누적결제액 세부내역 |
|
| 381 |
+ $("#grdShowArea").html("(등급 : " + data.rtnMberGrdVO.grdSetNm + ")");
|
|
| 382 |
+ $("#levelSubTitle").html("(" + data.rtnMberGrdVO.grdDate + " ~ 현재)");
|
|
| 383 |
+ } |
|
| 384 |
+ else {
|
|
| 385 |
+ //alert("Msg : " + data.msg);
|
|
| 386 |
+ } |
|
| 387 |
+ }, |
|
| 388 |
+ error: function (e) {
|
|
| 389 |
+ //alert("ERROR : " + JSON.stringify(e));
|
|
| 390 |
+ } |
|
| 391 |
+ }); |
|
| 392 |
+} |
|
| 393 |
+ |
|
| 394 |
+</script> |
|
| 395 |
+ |
|
| 396 |
+<form name="popForm" method="post"> |
|
| 397 |
+ <input type="hidden" name="smsList" id="smsList" value="" /> |
|
| 398 |
+ <input type="hidden" name="supplySumPrice" id="supplySumPrice" value="" /> |
|
| 399 |
+ <input type="hidden" name="vatSumPrice" id="vatSumPrice" value="" /> |
|
| 400 |
+ <input type="hidden" name="totSumPrice" id="totSumPrice" value="" /> |
|
| 401 |
+ |
|
| 402 |
+ <!-- content 영역 --> |
|
| 403 |
+ <div class="inner"> |
|
| 404 |
+ <!-- send top --> |
|
| 405 |
+ <div class="send_top"> |
|
| 406 |
+ <!-- tab button --> |
|
| 407 |
+ <ul class="tabType4"> |
|
| 408 |
+ <li class="tab active"><button type="button">요금안내/견적내기</button></li> |
|
| 409 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayView.do'">결제하기</button></li> |
|
| 410 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayList.do'">요금 결제내역</button></li> |
|
| 411 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/payUserSWList.do'">요금 사용내역</button></li> |
|
| 412 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">세금계산서 발행 등록</button></li> |
|
| 413 |
+ </ul> |
|
| 414 |
+ <!--// tab button --> |
|
| 415 |
+ <!-- 결제관리 - 요금안내/견적내기 --> |
|
| 416 |
+ <div class="serv_content charg_cont current" id="tab5_1"> |
|
| 417 |
+ <div class="heading"> |
|
| 418 |
+ <h2>요금안내/견적내기</h2> |
|
| 419 |
+ <button type="button" class="button info" onclick="infoPop('PayGuide');">사용안내</button>
|
|
| 420 |
+ </div> |
|
| 421 |
+ <!-- tab button --> |
|
| 422 |
+ <div class="pay_tab_wrap"> |
|
| 423 |
+ <ul class="tabType1"> |
|
| 424 |
+ <li class="tab active"> |
|
| 425 |
+ <button type="button" onclick="TabType1(this,'1')">요금안내</button> |
|
| 426 |
+ </li> |
|
| 427 |
+ <li class="tab"> |
|
| 428 |
+ <button type="button" onclick="TabType1(this,'2')" id="btnEstimate">견적내기</button> |
|
| 429 |
+ </li> |
|
| 430 |
+ </ul> |
|
| 431 |
+ </div> |
|
| 432 |
+ <!--// tab button --> |
|
| 433 |
+ <!-- 결제관리 - 요금안내/견적내기 - 요금안내 --> |
|
| 434 |
+ <div class="fee_cont current fee_wrap" id="tab1_1"> |
|
| 435 |
+ <div> |
|
| 436 |
+ <p class="tType1_title"> |
|
| 437 |
+ <img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span class="level_first" id="grdShowArea"></span> |
|
| 438 |
+ </p> |
|
| 439 |
+ <table class="tType2"> |
|
| 440 |
+ <caption></caption> |
|
| 441 |
+ <colgroup> |
|
| 442 |
+ <col style="width: 18%;"> |
|
| 443 |
+ <col style="width: auto;"> |
|
| 444 |
+ <col style="width: 32%;"> |
|
| 445 |
+ </colgroup> |
|
| 446 |
+ <thead> |
|
| 447 |
+ <tr> |
|
| 448 |
+ <th>구분</th> |
|
| 449 |
+ <th>특징</th> |
|
| 450 |
+ <th>가격</th> |
|
| 451 |
+ </tr> |
|
| 452 |
+ </thead> |
|
| 453 |
+ <tbody> |
|
| 454 |
+ <tr> |
|
| 455 |
+ <th>단문(SMS)</th> |
|
| 456 |
+ <td>90Byte 이하 단문 메시지(이미지 첨부 불가)</td> |
|
| 457 |
+ <td><span>${shortPrice}</span>원</td>
|
|
| 458 |
+ </tr> |
|
| 459 |
+ <tr> |
|
| 460 |
+ <th>장문(LMS)</th> |
|
| 461 |
+ <td>91~2,000Byte 이하 장문메시지(이미지 첨부 불가)</td> |
|
| 462 |
+ <td><span>${longPrice}</span>원</td>
|
|
| 463 |
+ </tr> |
|
| 464 |
+ <tr> |
|
| 465 |
+ <th>그림문자(MMS)</th> |
|
| 466 |
+ <td>2,000Byte 이하 문자 및 이미지를 포함하는그림메시지(이미지 최대 3장 첨부 가능) </td> |
|
| 467 |
+ <td>1장 : <span>${picturePrice}</span>원 / 2장 : <span>${picturePrice2}<span>원/ 3장 : <span>${picturePrice3}</span>원</td>
|
|
| 468 |
+ </tr> |
|
| 469 |
+ </tbody> |
|
| 470 |
+ </table> |
|
| 471 |
+ <span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span> |
|
| 472 |
+ |
|
| 473 |
+ <!--문자_등급별 요금 안내 추가 시작--> |
|
| 474 |
+ <div id="mberGrdSettingArea" style="display: none;"> |
|
| 475 |
+ <p class="tType1_title level"><img src="/publish/images/content/icon_fee1.png" alt="문자이미지"> 문자<span>(등급별 요금 안내)</span></p> |
|
| 476 |
+ <table class="tType2 tType2_level"> |
|
| 477 |
+ <caption></caption> |
|
| 478 |
+ <colgroup> |
|
| 479 |
+ <col style="width: 13%;"> |
|
| 480 |
+ <col style="width: auto;"> |
|
| 481 |
+ <col style="width: 11%;"> |
|
| 482 |
+ <col style="width: 11%;"> |
|
| 483 |
+ <col style="width: 11%;"> |
|
| 484 |
+ <col style="width: 11%;"> |
|
| 485 |
+ <col style="width: 11%;"> |
|
| 486 |
+ </colgroup> |
|
| 487 |
+ <thead> |
|
| 488 |
+ <tr> |
|
| 489 |
+ <th>등급</th> |
|
| 490 |
+ <th class="th_second">누적결제액<span id="levelSubTitle"></span></th> |
|
| 491 |
+ <th>단문</th> |
|
| 492 |
+ <th>장문</th> |
|
| 493 |
+ <th>그림(1장)</th> |
|
| 494 |
+ <th>그림(2장)</th> |
|
| 495 |
+ <th>그림(3장)</th> |
|
| 496 |
+ </tr> |
|
| 497 |
+ </thead> |
|
| 498 |
+ <tbody> |
|
| 499 |
+ <c:forEach var="result" items="${mberGrdSettingList}" varStatus="status">
|
|
| 500 |
+ <tr class="level_table"> |
|
| 501 |
+ <th><c:out value="${result.grdSetNm}"/></th>
|
|
| 502 |
+ <td class="level_price"><c:out value="${result.stdAmtComma}"/></td>
|
|
| 503 |
+ <td><c:out value="${result.shortPrice}"/></td>
|
|
| 504 |
+ <td><c:out value="${result.longPrice}"/></td>
|
|
| 505 |
+ <td><c:out value="${result.picturePrice}"/></td>
|
|
| 506 |
+ <td><c:out value="${result.picture2Price}"/></td>
|
|
| 507 |
+ <td><c:out value="${result.picture3Price}"/></td>
|
|
| 508 |
+ </tr> |
|
| 509 |
+ </c:forEach> |
|
| 510 |
+ </tbody> |
|
| 511 |
+ </table> |
|
| 512 |
+ <span class="reqTxt4"> |
|
| 513 |
+ * 등급별 요금제는 당사의 정책 및 운영의 필요상 수정, 중단 또는 변경될 수 있습니다. <br> |
|
| 514 |
+ * 누적결제액은 등급별 요금제 적용일로부터 적립된 결제금액을 말하며, 누적결제액에 따라 등급은 자동으로 적용됩니다. <br> |
|
| 515 |
+ * "첫결제 이벤트" 등 이벤트 결제금액은 등급별 요금제 누적결제액에서 제외됩니다. <br> |
|
| 516 |
+ </span> |
|
| 517 |
+ <p class="reqTxt4 reqTxt4_last"> |
|
| 518 |
+ * 문자피싱, 스미싱, 주식, 도박, 로또, 스팸, 사기, 협박, 범죄, 유사투자, 유사수신 등을 목적으로 하거나 교사 또는 방조하는 내용의 정보, 발신번호 조작 등으로 인지되는 문자에 대해서는 사전 또는 즉시 발송을 차단하고 |
|
| 519 |
+ 이용을 정지시킬 수 있으며, 이에 대한 어떠한 환불이나 보상을 실시하지 않습니다. 또한, 상기 문자를 발송한 회원에 대해서는 그 즉시 등급별 요금제 혜택을 취소합니다. |
|
| 520 |
+ </p> |
|
| 521 |
+ </div> |
|
| 522 |
+ <!--문자_등급별 요금 안내 추가 끝--> |
|
| 523 |
+ |
|
| 524 |
+ <p class="tType1_title"><img src="/publish/images/content/icon_fee2.png" alt="알림톡 아이콘 이미지"> 알림톡</p> |
|
| 525 |
+ <table class="tType2"> |
|
| 526 |
+ <colgroup> |
|
| 527 |
+ <col style="width: 20%;"> |
|
| 528 |
+ <col style="width: 60%;"> |
|
| 529 |
+ <col style="width: 20%;"> |
|
| 530 |
+ </colgroup> |
|
| 531 |
+ <thead> |
|
| 532 |
+ <tr> |
|
| 533 |
+ <th>구분</th> |
|
| 534 |
+ <th>특징</th> |
|
| 535 |
+ <th>가격</th> |
|
| 536 |
+ </tr> |
|
| 537 |
+ </thead> |
|
| 538 |
+ <tbody> |
|
| 539 |
+ <tr> |
|
| 540 |
+ <th>알림톡</th> |
|
| 541 |
+ <td>카카오톡을 통해 친구 추가 여부와 관계 없이 휴대폰 번호로 발송이 가능한 정보성 메시지<br>(1,000자 이하의 텍스트 및 이미지 중 카카오 사전 승인 건에 한하여 발송 가능)</td> |
|
| 542 |
+ <td>1장 : <span>${kakaoAtPrice}</span>원</td>
|
|
| 543 |
+ </tr> |
|
| 544 |
+ </tbody> |
|
| 545 |
+ </table> |
|
| 546 |
+ <span class="reqTxt4">* 텍스트 용량(Byte)에 대한 안내 : 한글2Byte, 영문·숫자 1Byte를 차지.</span> |
|
| 547 |
+ |
|
| 548 |
+ <p class="tType1_title"><img src="/publish/images/content/icon_fee_fax.png" alt="팩스 아이콘 이미지"> 팩스</p> |
|
| 549 |
+ <table class="tType2"> |
|
| 550 |
+ <colgroup> |
|
| 551 |
+ <col style="width: 20%;"> |
|
| 552 |
+ <col style="width: 60%;"> |
|
| 553 |
+ <col style="width: 20%;"> |
|
| 554 |
+ </colgroup> |
|
| 555 |
+ <thead> |
|
| 556 |
+ <tr> |
|
| 557 |
+ <th>구분</th> |
|
| 558 |
+ <th>특징(전송가능확장자)</th> |
|
| 559 |
+ <th>가격</th> |
|
| 560 |
+ </tr> |
|
| 561 |
+ </thead> |
|
| 562 |
+ <tbody> |
|
| 563 |
+ <tr> |
|
| 564 |
+ <th>팩스</th> |
|
| 565 |
+ <td>전송 가능 파일(hwp, pdf, ppt, xls, xlsx, doc, jpg, jpeg, bmp, txt, gif, hwpml, tif, gul)</td> |
|
| 566 |
+ <td>1매 : <span>${faxPrice}</span>원</td>
|
|
| 567 |
+ </tr> |
|
| 568 |
+ </tbody> |
|
| 569 |
+ </table> |
|
| 570 |
+ |
|
| 571 |
+ <p class="tType1_title"><img src="/publish/images/content/icon_fee3.png" alt="그림문자 맞춤제작 이미지"> 그림문자 맞춤제작</p> |
|
| 572 |
+ <table class="tType2"> |
|
| 573 |
+ <caption></caption> |
|
| 574 |
+ <colgroup> |
|
| 575 |
+ <col style="width: 80%;"> |
|
| 576 |
+ <col style="width: 20%;"> |
|
| 577 |
+ </colgroup> |
|
| 578 |
+ <thead> |
|
| 579 |
+ <tr> |
|
| 580 |
+ <th>구분</th> |
|
| 581 |
+ <th>가격</th> |
|
| 582 |
+ </tr> |
|
| 583 |
+ </thead> |
|
| 584 |
+ <tbody> |
|
| 585 |
+ <tr> |
|
| 586 |
+ <th>문자온 샘플 수정(글자, 색상, 폰트 등)</th> |
|
| 587 |
+ <td><span>${customSamplePrice}</span>원</td>
|
|
| 588 |
+ </tr> |
|
| 589 |
+ <tr> |
|
| 590 |
+ <th>이미지 편집(첨부이미지 1장)</th> |
|
| 591 |
+ <td><span>${customEditPrice}</span>원</td>
|
|
| 592 |
+ </tr> |
|
| 593 |
+ <tr> |
|
| 594 |
+ <th>이미지 편집(첨부이미지 3장이하)</th> |
|
| 595 |
+ <td><span>${customEdit3Price}</span>원</td>
|
|
| 596 |
+ </tr> |
|
| 597 |
+ <tr> |
|
| 598 |
+ <th>텍스트 단순수정</th> |
|
| 599 |
+ <td><span>${customTextPrice}</span>원</td>
|
|
| 600 |
+ </tr> |
|
| 601 |
+ </tbody> |
|
| 602 |
+ </table> |
|
| 603 |
+ <span class="reqTxt4">* 텍스트 단순수정 요청은 맞춤제작이 완료된 그림문자의 수정 시에만 가능합니다.</span> |
|
| 604 |
+ |
|
| 605 |
+ <div class="banner"> |
|
| 606 |
+ <p>대량발송 고객 가격협의 가능</p> |
|
| 607 |
+ <ul> |
|
| 608 |
+ <li><img src="/publish/images/content/banner_call01.png" alt=""><p>전화 <strong>1551-8011</strong><p></li> |
|
| 609 |
+ <li><img src="/publish/images/content/banner_email01.png" alt=""><p>이메일<span>help@iten.co.kr</span> <button type="button" onclick="location.href='mailto:help@iten.co.kr'">상담하기</button></li> |
|
| 610 |
+ <li><img src="/publish/images/content/banner_kakao01.png" alt=""><p>카카오톡<span>munjaon</span><a href="http://pf.kakao.com/_PxoTtb/chat" target="_blank">상담하기</a><p></li> |
|
| 611 |
+ </ul> |
|
| 612 |
+ </div> |
|
| 613 |
+ </div> |
|
| 614 |
+ </div> |
|
| 615 |
+ <!--// 결제관리 - 요금안내/견적내기 - 요금안내 --> |
|
| 616 |
+ |
|
| 617 |
+ <!-- 결제관리 - 요금안내/견적내기 - 견적내기 --> |
|
| 618 |
+ <div class="fee_cont" id="tab1_2"> |
|
| 619 |
+ <ul class="clause_list"> |
|
| 620 |
+ <li class="list_open on"> |
|
| 621 |
+ <div class="clause_list_head"> |
|
| 622 |
+ <div class="list_head_in"> |
|
| 623 |
+ <span><i></i>요금안내</span> |
|
| 624 |
+ <button type="button" onclick="clause_list(this);"><i></i></button> |
|
| 625 |
+ </div> |
|
| 626 |
+ </div> |
|
| 627 |
+ <div class="clause_list_body"> |
|
| 628 |
+ <table class="refund_info"> |
|
| 629 |
+ <caption>요금 안내</caption> |
|
| 630 |
+ <colgroup> |
|
| 631 |
+ <col style="width: 13%;"> |
|
| 632 |
+ <col style="width: auto;"> |
|
| 633 |
+ <col style="width: 25%;"> |
|
| 634 |
+ </colgroup> |
|
| 635 |
+ <thead> |
|
| 636 |
+ <tr> |
|
| 637 |
+ <th>구분</th> |
|
| 638 |
+ <th>특징</th> |
|
| 639 |
+ <th>금액</th> |
|
| 640 |
+ </tr> |
|
| 641 |
+ </thead> |
|
| 642 |
+ <tbody> |
|
| 643 |
+ <tr> |
|
| 644 |
+ <td>단문(SMS)</td> |
|
| 645 |
+ <td>90Byte 이하 단문 메시지(이미지 첨부 불가)</td> |
|
| 646 |
+ <td><span>${shortPrice}</span>원</td>
|
|
| 647 |
+ </tr> |
|
| 648 |
+ <tr> |
|
| 649 |
+ <td>장문(LMS)</td> |
|
| 650 |
+ <td>91~2,000Byte 이하 장문메시지(이미지 첨부 불가)</td> |
|
| 651 |
+ <td><span>${longPrice}</span>원</td>
|
|
| 652 |
+ <tr> |
|
| 653 |
+ <td>그림문자(MMS)</td> |
|
| 654 |
+ <td>2,000Byte 이하 문자 및 이미지를 포함하는 그림메시지(이미지 최대 3장 첨부 가능)</td> |
|
| 655 |
+ <td>1장 : <span>${picturePrice}</span>원 / 2장 : <span>${picturePrice2}</span>원 / 3장 : <span>${picturePrice3}</span>원</td>
|
|
| 656 |
+ </tr> |
|
| 657 |
+ <tr> |
|
| 658 |
+ <td>카카오(알림톡)</td> |
|
| 659 |
+ <td>카카오톡을 통해 친구 추가 여부와 관계 없이 휴대폰 번호로 발송이 가능한 정보성 메시지(1,000자 이하의 텍스트 및 이미지 중 카카오 사전 승인 건에 한하여 발송 가능)</td> |
|
| 660 |
+ <td><span>${kakaoAtPrice}</span>원</td>
|
|
| 661 |
+ </tr> |
|
| 662 |
+ <tr> |
|
| 663 |
+ <td>팩스</td> |
|
| 664 |
+ <td>전송 가능 파일(hwp, pdf, ppt, xls, xlsx, doc, jpg, jpeg, bmp, txt, gif, hwpml, tif, htm, html, gul)</td> |
|
| 665 |
+ <td><span>${faxPrice}</span>원</td>
|
|
| 666 |
+ </tr> |
|
| 667 |
+ <tr> |
|
| 668 |
+ <td>맞춤제작</td> |
|
| 669 |
+ <td>문자온 샘플 수정(글자, 색상, 폰트 등)</td> |
|
| 670 |
+ <td><span>${customSamplePrice}</span>원</td>
|
|
| 671 |
+ </tr> |
|
| 672 |
+ <tr> |
|
| 673 |
+ <td>맞춤제작</td> |
|
| 674 |
+ <td>이미지 편집(첨부이미지 1장)</td> |
|
| 675 |
+ <td><span>${customEditPrice}</span>원</td>
|
|
| 676 |
+ </tr> |
|
| 677 |
+ <tr> |
|
| 678 |
+ <td>맞춤제작</td> |
|
| 679 |
+ <td>이미지 편집(첨부이미지 3장이하)</td> |
|
| 680 |
+ <td><span>${customEdit3Price}</span>원</td>
|
|
| 681 |
+ </tr> |
|
| 682 |
+ <tr> |
|
| 683 |
+ <td>맞춤제작</td> |
|
| 684 |
+ <td>텍스트 단순수정</td> |
|
| 685 |
+ <td><span>${customTextPrice}</span>원</td>
|
|
| 686 |
+ </tr> |
|
| 687 |
+ </tbody> |
|
| 688 |
+ </table> |
|
| 689 |
+ </div> |
|
| 690 |
+ </li> |
|
| 691 |
+ </ul> |
|
| 692 |
+ <div> |
|
| 693 |
+ <p class="tType1_title">일반정보</p> |
|
| 694 |
+ <table class="tType1"> |
|
| 695 |
+ <caption></caption> |
|
| 696 |
+ <colgroup> |
|
| 697 |
+ <col style="width: 150px;"> |
|
| 698 |
+ <col style="width: auto;"> |
|
| 699 |
+ </colgroup> |
|
| 700 |
+ <tbody> |
|
| 701 |
+ <tr> |
|
| 702 |
+ <th>제목</th> |
|
| 703 |
+ <td> |
|
| 704 |
+ <label for="" class="label">견적내기 제목</label> |
|
| 705 |
+ <input type="text" id="title" name="title" placeholder="견적서" onfocus="this.placeholder=''" onblur="this.placeholder='견적서'" style="width: 400px;" maxlength="20"> |
|
| 706 |
+ </td> |
|
| 707 |
+ </tr> |
|
| 708 |
+ <tr> |
|
| 709 |
+ <th>수신자(기업명)</th> |
|
| 710 |
+ <td> |
|
| 711 |
+ <label for="" class="label">수신자(기업명) 입력</label> |
|
| 712 |
+ <input type="text" id="recipientName" name="recipientName" style="width: 400px;" maxlength="18"> |
|
| 713 |
+ </td> |
|
| 714 |
+ </tr> |
|
| 715 |
+ <tr> |
|
| 716 |
+ <th>담당자(성명)</th> |
|
| 717 |
+ <td> |
|
| 718 |
+ <label for="" class="label">담당자(성명) 입력</label> |
|
| 719 |
+ <input type="text" id="managerName" name="managerName" style="width: 400px;" maxlength="18"> |
|
| 720 |
+ </td> |
|
| 721 |
+ </tr> |
|
| 722 |
+ <tr> |
|
| 723 |
+ <th>연락처</th> |
|
| 724 |
+ <td> |
|
| 725 |
+ <label for="" class="label">연락처 입력</label> |
|
| 726 |
+ <input type="text" onkeyup="inputPagesNumber(this)"; maxlength="11" id="mobile" name="mobile" style="width: 400px;"> |
|
| 727 |
+ </td> |
|
| 728 |
+ </tr> |
|
| 729 |
+ <tr> |
|
| 730 |
+ <th>발행일</th> |
|
| 731 |
+ <td> |
|
| 732 |
+ <div class="calendar_wrap"> |
|
| 733 |
+ <input type="text" class="calendar" title="발행일" id="publishDate" name="publishDate"> |
|
| 734 |
+ </div> |
|
| 735 |
+ </td> |
|
| 736 |
+ </tr> |
|
| 737 |
+ </tbody> |
|
| 738 |
+ </table> |
|
| 739 |
+ |
|
| 740 |
+ <p class="tType1_title">품목정보</p> |
|
| 741 |
+ <table class="tType1 itemInfo"> |
|
| 742 |
+ <caption></caption> |
|
| 743 |
+ <colgroup> |
|
| 744 |
+ <col style="width: 150px;"> |
|
| 745 |
+ <col style="width: auto;"> |
|
| 746 |
+ </colgroup> |
|
| 747 |
+ <tbody> |
|
| 748 |
+ <tr> |
|
| 749 |
+ <th>구분</th> |
|
| 750 |
+ <td> |
|
| 751 |
+ <label for="" class="label">품목 선택</label> |
|
| 752 |
+ <select id="smsItem" name="smsItem" onchange="fn_gunClear();" style="width: 210px;"> |
|
| 753 |
+ </select> |
|
| 754 |
+ <label for="" class="label">품목 별 단가</label> |
|
| 755 |
+ <input type="text" id="unitPrice" name="unitPrice" value="0" placeholder="" readonly class="readonly"> |
|
| 756 |
+ <p class="input_in">원</p> |
|
| 757 |
+ </td> |
|
| 758 |
+ </tr> |
|
| 759 |
+ <tr> |
|
| 760 |
+ <th>건수</th> |
|
| 761 |
+ <td class="publish_btn"> |
|
| 762 |
+ <label for="" class="label">건수 입력</label> |
|
| 763 |
+ <input type="text" id="caseNumber" numberOnly maxlength="10" name="caseNumber" style="width: 210px;" onkeyup="inputNumberFormatPay(this)"> |
|
| 764 |
+ <p class="input_in">건</p> |
|
| 765 |
+ <div> |
|
| 766 |
+ <button type="button" class="btnType" id="btnItemAdd">품목추가<i class="arrow_img"></i></button> |
|
| 767 |
+ </div> |
|
| 768 |
+ </td> |
|
| 769 |
+ </tr> |
|
| 770 |
+ <tr id="faxPages" style="display:none;"> |
|
| 771 |
+ <th>매수</th> |
|
| 772 |
+ <td class="publish_btn"> |
|
| 773 |
+ <label for="" class="label">매수 입력</label> |
|
| 774 |
+ <input type="text" id="casePage" name="casePage" style="width: 210px;" onkeyup="inputPagesNumberFormatPay(this)"> |
|
| 775 |
+ <p class="input_in">매</p> |
|
| 776 |
+ </td> |
|
| 777 |
+ </tr> |
|
| 778 |
+ </tbody> |
|
| 779 |
+ </table> |
|
| 780 |
+ <div class="search_group_bottom2"> |
|
| 781 |
+ <div class="btnWrap1"> |
|
| 782 |
+ <button type="button" class="btnType" id="btnItemDel"><i class="remove_img"></i>선택삭제</button> |
|
| 783 |
+ </div> |
|
| 784 |
+ </div> |
|
| 785 |
+ <!-- table --> |
|
| 786 |
+ <div class="tType3 payDetail"> |
|
| 787 |
+ <!-- thead --> |
|
| 788 |
+ <div class="tType3_hd"> |
|
| 789 |
+ <div> |
|
| 790 |
+ <label for="" class="label">전체 선택</label> |
|
| 791 |
+ <input type="checkbox" id="chkAll"> |
|
| 792 |
+ </div> |
|
| 793 |
+ <div>품목</div> |
|
| 794 |
+ <div>단가(원)</div> |
|
| 795 |
+ <div>건수(건)</div> |
|
| 796 |
+ <div>공급가액(원)</div> |
|
| 797 |
+ <div>세액(부가세)</div> |
|
| 798 |
+ <div>금액(원)</div> |
|
| 799 |
+ </div> |
|
| 800 |
+ <!-- tbody --> |
|
| 801 |
+ <div class="tType3_bd_wrap" id="itemList"> |
|
| 802 |
+ <div class="tType3_bd"> |
|
| 803 |
+ <div></div> |
|
| 804 |
+ <div></div> |
|
| 805 |
+ <div></div> |
|
| 806 |
+ <div></div> |
|
| 807 |
+ <div></div> |
|
| 808 |
+ <div></div> |
|
| 809 |
+ <div></div> |
|
| 810 |
+ </div> |
|
| 811 |
+ </div> |
|
| 812 |
+ </div> |
|
| 813 |
+ <!--// table --> |
|
| 814 |
+ <div class="tb_wrap totalPrice_tb"> |
|
| 815 |
+ <table class="tType4"> |
|
| 816 |
+ <colgroup> |
|
| 817 |
+ <col style="width: 25%;"> |
|
| 818 |
+ <col style="width: 25%;"> |
|
| 819 |
+ <col style="width: 30%;"> |
|
| 820 |
+ <col style="width: 15%;"> |
|
| 821 |
+ </colgroup> |
|
| 822 |
+ <thead> |
|
| 823 |
+ <tr> |
|
| 824 |
+ <th>공급가액</th> |
|
| 825 |
+ <th>세액(부가세)</th> |
|
| 826 |
+ <th>합계</th> |
|
| 827 |
+ <th>비고</th> |
|
| 828 |
+ </tr> |
|
| 829 |
+ </thead> |
|
| 830 |
+ <tbody> |
|
| 831 |
+ <tr> |
|
| 832 |
+ <td> |
|
| 833 |
+ <span id="supplySumPriceStr"></span> |
|
| 834 |
+ </td> |
|
| 835 |
+ <td> |
|
| 836 |
+ <span id="isVatStr"></span> |
|
| 837 |
+ </td> |
|
| 838 |
+ <td> |
|
| 839 |
+ <span id="totSumPriceStr"></span> |
|
| 840 |
+ </td> |
|
| 841 |
+ <td style="text-align: center;"> |
|
| 842 |
+ <label for="" class="label">부가세 포함,별도 선택</label> |
|
| 843 |
+ <select id="isVat" name="isVat" class="selType2"> |
|
| 844 |
+ <option value="0">부가세 별도</option> |
|
| 845 |
+ <option value="1" selected>부가세 포함</option> |
|
| 846 |
+ </select> |
|
| 847 |
+ </td> |
|
| 848 |
+ </tr> |
|
| 849 |
+ </tbody> |
|
| 850 |
+ </table> |
|
| 851 |
+ </div> |
|
| 852 |
+ <!-- //주소록리스트 --> |
|
| 853 |
+ <div style="text-align: center;"> |
|
| 854 |
+ <button class="btnType btnType16" onclick="showEst(); return false;">발행하기</button> |
|
| 855 |
+ </div> |
|
| 856 |
+ </div> |
|
| 857 |
+ </div> |
|
| 858 |
+ <!-- 결제관리 - 요금안내/견적내기 - 견적내기 --> |
|
| 859 |
+ </div> |
|
| 860 |
+ </div> |
|
| 861 |
+ <!-- 결제관리 - 요금안내/견적내기 --> |
|
| 862 |
+ </div> |
|
| 863 |
+ <!--// send top --> |
|
| 864 |
+</form> |
|
| 865 |
+<form name="infoPopForm" id="infoPopForm" method="post"> |
|
| 866 |
+ <input type="hidden" name="pageType" id="pageType" value=""/> |
|
| 867 |
+</form> |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayList.jsp
... | ... | @@ -141,21 +141,11 @@ |
| 141 | 141 |
} |
| 142 | 142 |
|
| 143 | 143 |
//환불요청 내역 프린트 출력 팝업 |
| 144 |
-function fnShowRefundPrintPopup(){
|
|
| 145 |
- |
|
| 146 |
- //날자 체크 |
|
| 147 |
- if( $('#startDate').val() != '' && $('#endDate').val() != '' ){
|
|
| 148 |
- var iChkBeginDe = Number($('#startDate').val().replaceAll("/", ""));
|
|
| 149 |
- var iChkEndDe = Number($('#endDate').val().replaceAll("/", ""));
|
|
| 150 |
- if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){
|
|
| 151 |
- alert("기간설정의 시작일자는 종료일자 보다 클수 없습니다.");
|
|
| 152 |
- return; |
|
| 153 |
- } |
|
| 154 |
- } |
|
| 144 |
+function fnShowRefundPrintPopup(moid){
|
|
| 155 | 145 |
|
| 156 | 146 |
//만들려는 팝업의 크기 |
| 157 |
- var popup_wid = '840'; |
|
| 158 |
- var popup_ht = '900'; |
|
| 147 |
+ var popup_wid = '790'; |
|
| 148 |
+ var popup_ht = '800'; |
|
| 159 | 149 |
|
| 160 | 150 |
var popup_left = (window.screen.width / 2) - (popup_wid / 2); |
| 161 | 151 |
var popup_top =(window.screen.height / 2) - (popup_ht / 2); |
... | ... | @@ -165,6 +155,23 @@ |
| 165 | 155 |
$("#listForm").attr({"action":"/web/member/pay/PayPrintRefundListPopUpAjax.do", "method":"post"}).submit();
|
| 166 | 156 |
} |
| 167 | 157 |
|
| 158 |
+//거래명세서 팝업 |
|
| 159 |
+function fnShowPayInvoicePrintPopup(moid){
|
|
| 160 |
+ |
|
| 161 |
+ |
|
| 162 |
+ //만들려는 팝업의 크기 |
|
| 163 |
+ var popup_wid = '790'; |
|
| 164 |
+ var popup_ht = '800'; |
|
| 165 |
+ |
|
| 166 |
+ var popup_left = (window.screen.width / 2) - (popup_wid / 2); |
|
| 167 |
+ var popup_top =(window.screen.height / 2) - (popup_ht / 2); |
|
| 168 |
+ |
|
| 169 |
+ document.invoiceForm.moid.value = moid; |
|
| 170 |
+ |
|
| 171 |
+ $("#invoiceForm").attr("target","invoicePrint");
|
|
| 172 |
+ window.open('', 'invoicePrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top +',scrollbars=1');
|
|
| 173 |
+ $("#invoiceForm").attr({"action":"/web/member/pay/payInvoicePopupAjax.do", "method":"post"}).submit();
|
|
| 174 |
+} |
|
| 168 | 175 |
</script> |
| 169 | 176 |
|
| 170 | 177 |
<!-- content 영역 --> |
... | ... | @@ -176,7 +183,7 @@ |
| 176 | 183 |
<li class="tab"><button type="button" onclick="location.href='/web/pay/PayGuide.do'">요금안내/견적내기</button></li> |
| 177 | 184 |
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayView.do'">결제하기</button></li> |
| 178 | 185 |
<li class="tab active"><button type="button" >요금 결제내역</button></li> |
| 179 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayUserSWList.do'">요금 사용내역</button></li> |
|
| 186 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/payUserSWList.do'">요금 사용내역</button></li> |
|
| 180 | 187 |
<!-- 현금영수증 자동발행 주석 --> |
| 181 | 188 |
<!-- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">계산서/현금영수증 발행 등록</button></li> --> |
| 182 | 189 |
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">세금계산서 발행 등록</button></li> |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayListAllAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayListAllAjax.jsp
... | ... | @@ -409,13 +409,13 @@ |
| 409 | 409 |
</tbody> |
| 410 | 410 |
</table> |
| 411 | 411 |
<div class="excel_middle"> |
| 412 |
- <div class="select_btnWrap clearfix"> |
|
| 412 |
+ <div class="select_btnWrap"> |
|
| 413 | 413 |
<div class="add_text2" style="line-height: 1.3em;"> |
| 414 | 414 |
※ 요금 결제내역은 결제일을 기준으로 최대 6개월까지만 조회가능합니다. |
| 415 | 415 |
<br /> |
| 416 | 416 |
<c:choose> |
| 417 | 417 |
<c:when test="${prePaymentYn eq 'Y'}">
|
| 418 |
- ※ 간편결제 영수증은 결제하신 서비스를 통해 제공됩니다. |
|
| 418 |
+ ※ 간편결제 영수증은 결제하신 서비스를 통해 제공됩니다.<br /> |
|
| 419 | 419 |
</c:when> |
| 420 | 420 |
<c:otherwise> |
| 421 | 421 |
※ 후불제 고객의 사용금액 결제수단은 계좌이체만 가능합니다. <br /> |
... | ... | @@ -423,6 +423,7 @@ |
| 423 | 423 |
<p class="accountinfo"><span>-입금은행:</span>우리은행<span>-입금계좌:</span>1005-904-154328<span>-받는사람:</span>주식회사 아이티앤</p> |
| 424 | 424 |
</c:otherwise> |
| 425 | 425 |
</c:choose> |
| 426 |
+ ※ 거래명세서는 세금계산서 발행일로부터 30일 이내에만 출력 가능합니다. |
|
| 426 | 427 |
</div> |
| 427 | 428 |
<div style="padding-top: 10px;"> |
| 428 | 429 |
<button type="button" class="level_btn" data-tooltip="level_check_popup01" id="levelIconBtn" style="display: none;"> |
... | ... | @@ -447,15 +448,13 @@ |
| 447 | 448 |
<div class="tb_wrap pay3_list"> |
| 448 | 449 |
<table class="tType4"> |
| 449 | 450 |
<colgroup> |
| 450 |
- <%-- <col style="width: 40px;"> --%> |
|
| 451 | 451 |
<col style="width: 5%;"> |
| 452 | 452 |
<col style="width: 18%;"> |
| 453 | 453 |
<col style="width: 20%;"> |
| 454 | 454 |
<col style="width: 15%;"> |
| 455 | 455 |
<col style="width: 15%;"> |
| 456 | 456 |
<col style="width: 15%;"> |
| 457 |
- <%-- <col style="width: 30%;"> --%> |
|
| 458 |
- <col style="width: 20%;"> |
|
| 457 |
+ <col style="width: 25%;"> |
|
| 459 | 458 |
</colgroup> |
| 460 | 459 |
<thead> |
| 461 | 460 |
<tr> |
... | ... | @@ -506,7 +505,25 @@ |
| 506 | 505 |
<tbody> |
| 507 | 506 |
<c:choose> |
| 508 | 507 |
<c:when test="${not empty resultList}">
|
| 508 |
+ <!-- 오늘날짜 - 거래명세서 버튼 조건으로 사용 --> |
|
| 509 |
+ <c:set var="now" value="<%=new java.util.Date()%>" /> |
|
| 510 |
+ |
|
| 509 | 511 |
<c:forEach var="result" items="${resultList}" varStatus="status">
|
| 512 |
+ <!-- 거래명세서 버튼 조건(250723) |
|
| 513 |
+ 1.전용계좌 or 즉시이체 |
|
| 514 |
+ 2.세금계산서 발행 완료 이후 30일간 노출 |
|
| 515 |
+ 3.발행 최대 횟수 2회 --> |
|
| 516 |
+ <c:set var="invoiceYn" value="N"/> |
|
| 517 |
+ <c:if test="${(result.payMethod eq 'BANK' or result.payMethod eq 'VBANK' or result.payMethod eq 'AFTERPAY')
|
|
| 518 |
+ and (result.confirmYn eq 'Y' and result.rcptType eq '9')}"> |
|
| 519 |
+ <c:set var="confirmDateStr" value="${fn:substring(result.confirmDate,0,10)}" />
|
|
| 520 |
+ <fmt:parseDate value="${confirmDateStr}" pattern="yyyy-MM-dd" var="confirmDateObj" />
|
|
| 521 |
+ <c:set var="dayDiff" value="${(now.time - confirmDateObj.time) / (1000*60*60*24)}" />
|
|
| 522 |
+ <c:if test="${dayDiff <= 31}">
|
|
| 523 |
+ <c:set var="invoiceYn" value="Y"/> |
|
| 524 |
+ </c:if> |
|
| 525 |
+ </c:if> |
|
| 526 |
+ |
|
| 510 | 527 |
<tr class="tType3_bd"> |
| 511 | 528 |
<%-- <td> |
| 512 | 529 |
<label for="" class="label">한 줄 전체 선택</label> <input type="checkbox" name="eachChk"> |
... | ... | @@ -628,7 +645,7 @@ |
| 628 | 645 |
</c:if> |
| 629 | 646 |
<!-- 발행완료 --> |
| 630 | 647 |
<c:if test="${result.confirmYn eq 'Y'}">
|
| 631 |
- <c:if test="${result.rcptType eq '9'}">
|
|
| 648 |
+ <c:if test="${result.rcptType eq '9' and invoiceYn eq 'N'}">
|
|
| 632 | 649 |
<p class="fwRg c_002c9a">세금계산서 발행완료</p> |
| 633 | 650 |
</c:if> |
| 634 | 651 |
<c:if test="${result.rcptType eq '1' || result.rcptType eq '2'}">
|
... | ... | @@ -694,7 +711,7 @@ |
| 694 | 711 |
</c:if> |
| 695 | 712 |
<!-- 발행완료 --> |
| 696 | 713 |
<c:if test="${result.confirmYn eq 'Y'}">
|
| 697 |
- <c:if test="${result.rcptType eq '9'}">
|
|
| 714 |
+ <c:if test="${result.rcptType eq '9' and invoiceYn eq 'N'}">
|
|
| 698 | 715 |
<p class="fwRg c_002c9a">세금계산서 발행완료</p> |
| 699 | 716 |
</c:if> |
| 700 | 717 |
<c:if test="${result.rcptType eq '1' || result.rcptType eq '2'}">
|
... | ... | @@ -712,7 +729,13 @@ |
| 712 | 729 |
</c:if> |
| 713 | 730 |
</c:if> |
| 714 | 731 |
</c:otherwise> |
| 715 |
- </c:choose> |
|
| 732 |
+ </c:choose> |
|
| 733 |
+ |
|
| 734 |
+ <c:if test="${invoiceYn eq 'Y'}">
|
|
| 735 |
+ <!-- <button class="btnType btnType20 btn_use_status" onclick="window.open('/publish/transaction_statement.html','','width=790,height=800')">거래명세서</button> -->
|
|
| 736 |
+ <button class="btnType btnType20 btn_use_status" onclick="fnShowPayInvoicePrintPopup('<c:out value="${result.moid}"/>'); return false;">거래명세서</button>
|
|
| 737 |
+ </c:if> |
|
| 738 |
+ |
|
| 716 | 739 |
</td> |
| 717 | 740 |
</tr> |
| 718 | 741 |
</c:forEach> |
... | ... | @@ -1065,4 +1088,8 @@ |
| 1065 | 1088 |
</div> |
| 1066 | 1089 |
</div> |
| 1067 | 1090 |
</div> |
| 1091 |
+ <!-- 거래명세서 팝업 --> |
|
| 1092 |
+ <form id="invoiceForm" name="invoiceForm" method="post"> |
|
| 1093 |
+ <input type="hidden" id="moid" name="moid" value=""/> |
|
| 1094 |
+ </form> |
|
| 1068 | 1095 |
<!-- 등급 및 누적결제액 확인 팝업 data-tooltip:level_check_popup01 끝 --> |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWList.jsp
... | ... | @@ -24,6 +24,9 @@ |
| 24 | 24 |
var lastfuledday = ""; |
| 25 | 25 |
var thisfulstlday = ""; |
| 26 | 26 |
var thisfuledtlday = ""; |
| 27 |
+var threefulstday = ""; |
|
| 28 |
+var threefuledday = ""; |
|
| 29 |
+ |
|
| 27 | 30 |
$(document).ready(function(){
|
| 28 | 31 |
payUserListAjax(1); |
| 29 | 32 |
var date = new Date() ; |
... | ... | @@ -47,7 +50,33 @@ |
| 47 | 50 |
thisYearStart = date.getFullYear() + "/01/01" ; |
| 48 | 51 |
thisYearEnd = date.getFullYear() + "/12/31" ; |
| 49 | 52 |
|
| 53 |
+ //시작일 3개월 / 종료일 현재 조회 |
|
| 54 |
+ var threeMonthAgo = new Date(date); |
|
| 55 |
+ threeMonthAgo.setMonth(threeMonthAgo.getMonth() - 3); |
|
| 56 |
+ threeMonthAgo.setDate(threeMonthAgo.getDate() + 1); //하루 더하기 |
|
| 57 |
+ |
|
| 58 |
+ threefulstday = threeMonthAgo.getFullYear() + "/"; |
|
| 59 |
+ threefulstday += (threeMonthAgo.getMonth() + 1) < 10 ? "0" + (threeMonthAgo.getMonth() + 1) : (threeMonthAgo.getMonth() + 1) + ""; |
|
| 60 |
+ threefulstday += "/"; |
|
| 61 |
+ threefulstday += threeMonthAgo.getDate() < 10 ? "0" + threeMonthAgo.getDate() : threeMonthAgo.getDate(); |
|
| 62 |
+ |
|
| 63 |
+ threefuledday = date.getFullYear() + "/"; |
|
| 64 |
+ threefuledday += (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1) + ""; |
|
| 65 |
+ threefuledday += "/"; |
|
| 66 |
+ threefuledday += date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); |
|
| 67 |
+ |
|
| 68 |
+ $(document).on('change','#pageUnitS', function(){
|
|
| 69 |
+ setPageUnit($(this).val()); |
|
| 70 |
+ |
|
| 71 |
+ payUserListAjax(1); |
|
| 72 |
+ |
|
| 73 |
+ }); |
|
| 74 |
+ |
|
| 50 | 75 |
}); |
| 76 |
+ |
|
| 77 |
+function setPageUnit(val){
|
|
| 78 |
+ $('#pageUnit').val(val);
|
|
| 79 |
+} |
|
| 51 | 80 |
|
| 52 | 81 |
// 기간 요일 지정 |
| 53 | 82 |
function setCalVal(val,targetObj){
|
... | ... | @@ -61,10 +90,16 @@ |
| 61 | 90 |
return; |
| 62 | 91 |
}; |
| 63 | 92 |
|
| 93 |
+ if(!fn_G_limitDateChk("startDate", 3)){
|
|
| 94 |
+ return; |
|
| 95 |
+ }; |
|
| 64 | 96 |
|
| 65 | 97 |
document.listForm.pageIndex.value = pageNo; |
| 66 | 98 |
var sendData= $(document.listForm).serializeArray(); |
| 67 |
- $("#payUserListLoad").load("/web/member/pay/PayUserSWListAjax.do", sendData ,function(response, status, xhr){
|
|
| 99 |
+ //조회 완료 인지를 위하여 hide show로 화면 변화 추가 |
|
| 100 |
+ $("#payUserListLoad").hide();
|
|
| 101 |
+ $("#payUserListLoad").load("/web/member/pay/payUserSWListAjax.do", sendData ,function(response, status, xhr){
|
|
| 102 |
+ $("#payUserListLoad").show();
|
|
| 68 | 103 |
}); |
| 69 | 104 |
} |
| 70 | 105 |
|
... | ... | @@ -74,7 +109,7 @@ |
| 74 | 109 |
|
| 75 | 110 |
document.listForm.pageIndex.value = pageNo; |
| 76 | 111 |
var sendData= $(document.listForm).serializeArray(); |
| 77 |
- $("#payUserListLoad").load("/web/member/pay/PayUserSWListAjax.do", sendData ,function(response, status, xhr){
|
|
| 112 |
+ $("#payUserListLoad").load("/web/member/pay/payUserSWListAjax.do", sendData ,function(response, status, xhr){
|
|
| 78 | 113 |
}); |
| 79 | 114 |
} |
| 80 | 115 |
|
... | ... | @@ -90,42 +125,6 @@ |
| 90 | 125 |
$("#pageType").val(pageType);
|
| 91 | 126 |
payUserListTabMoveAjax(1); |
| 92 | 127 |
} |
| 93 |
- |
|
| 94 |
- |
|
| 95 |
- |
|
| 96 |
- |
|
| 97 |
- |
|
| 98 |
-function getUsedCashTotList(){
|
|
| 99 |
- var sendData = {
|
|
| 100 |
- "startDate" : $("#startDate").val(),
|
|
| 101 |
- "endDate" : $("#endDate").val()
|
|
| 102 |
- }; |
|
| 103 |
- |
|
| 104 |
- console.log('sendData : ', sendData);
|
|
| 105 |
-// url: '/web/member/pay/getUsedCashTotList.do', |
|
| 106 |
- |
|
| 107 |
- $.ajax({
|
|
| 108 |
- type:"POST", |
|
| 109 |
- url:"<c:url value='/web/member/pay/getUsedCashTotList.do' />", |
|
| 110 |
- data: sendData, |
|
| 111 |
- dataType:'json', |
|
| 112 |
- success:function(data){
|
|
| 113 |
- console.log('data :: ', data);
|
|
| 114 |
- if(data.status == 'OK') {
|
|
| 115 |
- // 성공 처리 |
|
| 116 |
- } else {
|
|
| 117 |
- // 오류 처리 |
|
| 118 |
- } |
|
| 119 |
- }, |
|
| 120 |
- error: function(jqXHR, textStatus, errorThrown) {
|
|
| 121 |
- console.error("AJAX Error:", textStatus, errorThrown);
|
|
| 122 |
- console.error("Response:", jqXHR.responseText);
|
|
| 123 |
- } |
|
| 124 |
- }); |
|
| 125 |
-} |
|
| 126 |
- |
|
| 127 |
- |
|
| 128 |
- |
|
| 129 | 128 |
|
| 130 | 129 |
|
| 131 | 130 |
/* 윈도우팝업 열기 */ |
... | ... | @@ -534,6 +533,7 @@ |
| 534 | 533 |
<form id="listForm" name="listForm" method="post"> |
| 535 | 534 |
<input type="hidden" id="pageType" name="pageType" value="<c:out value='${searchVO.pageType}'/>"/>
|
| 536 | 535 |
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value='${searchVO.pageIndex}'/>"/>
|
| 536 |
+ <input type="hidden" id="pageUnit" name="pageUnit" value="10"/> |
|
| 537 | 537 |
<div class="excel_middle"> |
| 538 | 538 |
<div class="select_btnWrap clearfix"> |
| 539 | 539 |
<div class="btn_left"> |
... | ... | @@ -543,9 +543,9 @@ |
| 543 | 543 |
<span class="dateEtc">~</span> |
| 544 | 544 |
<input type="text" class="endDate inp calendar" title="검색 종료일" id="endDate" name="endDate" value="${endDate }" data-datecontrol="true">
|
| 545 | 545 |
</div> |
| 546 |
- <button type="button" onclick="setCalVal(thisYearStart,'startDate');setCalVal( thisYearEnd,'endDate'); return false;" class="btnType btnType19">이번년도</button> |
|
| 547 | 546 |
<button type="button" onclick="setCalVal(lastfulstday,'startDate');setCalVal( lastfuledday,'endDate'); return false;" class="btnType btnType19">전월</button> |
| 548 | 547 |
<button type="button" onclick="setCalVal(thisfulstlday,'startDate');setCalVal( thisfuledtlday,'endDate'); return false;" class="btnType btnType19">당월</button> |
| 548 |
+ <button type="button" onclick="setCalVal(threefulstday,'startDate');setCalVal( threefuledday,'endDate'); return false;" class="btnType btnType19">3개월</button> |
|
| 549 | 549 |
<button type="button" class="btnType6" onclick="payUserListAjax(1); return false;">조회</button> |
| 550 | 550 |
<span class="reqTxt4"> |
| 551 | 551 |
<span class="vMiddle">*</span> 조회기간의 사용내역만 보여집니다. |
--- src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayUserSWListAjax.jsp
... | ... | @@ -91,8 +91,39 @@ |
| 91 | 91 |
}); |
| 92 | 92 |
|
| 93 | 93 |
|
| 94 |
-/* 사용내역서 클릭 시 내역서 새창 팝업 오픈 */ |
|
| 94 |
+/* 250530 - 거래명세서, 사용내역서 분리 */ |
|
| 95 | 95 |
function fnShowPrintPopup() {
|
| 96 |
+ //만들려는 팝업의 크기 |
|
| 97 |
+ var url = "printMsgUsageDetailsAjax.do"; |
|
| 98 |
+ var popup_wid = '790'; |
|
| 99 |
+ var popup_ht = '800'; |
|
| 100 |
+ var popup_left = (window.screen.width/2)-(popup_wid/2); |
|
| 101 |
+ var popup_top =(window.screen.height/2)-(popup_ht/2); |
|
| 102 |
+ |
|
| 103 |
+ //날짜 체크 |
|
| 104 |
+ if(($('#startDate').val() != '' && $('#endDate').val() == '') || ($('#startDate').val() == '' && $('#endDate').val() != '')){
|
|
| 105 |
+ alert("기간설정을 정상적으로 선택해 주세요.");
|
|
| 106 |
+ return; |
|
| 107 |
+ } |
|
| 108 |
+ |
|
| 109 |
+ if( $('#startDate').val() != '' && $('#endDate').val() != '' ){
|
|
| 110 |
+ var iChkBeginDe = Number($('#startDate').val().replaceAll("/", ""));
|
|
| 111 |
+ var iChkEndDe = Number($('#endDate').val().replaceAll("/", ""));
|
|
| 112 |
+ if(iChkBeginDe > iChkEndDe || iChkEndDe < iChkBeginDe ){
|
|
| 113 |
+ alert("기간설정의 시작일자는 종료일자 보다 클수 없습니다.");
|
|
| 114 |
+ return; |
|
| 115 |
+ } |
|
| 116 |
+ } |
|
| 117 |
+ |
|
| 118 |
+ document.listForm.action = url; |
|
| 119 |
+ document.listForm.method = "post"; |
|
| 120 |
+ window.open("about:blank", 'printPop', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top + ', fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
|
| 121 |
+ document.listForm.target = "printPop"; |
|
| 122 |
+ document.listForm.submit(); |
|
| 123 |
+} |
|
| 124 |
+ |
|
| 125 |
+/* 사용내역서 클릭 시 내역서 새창 팝업 오픈 */ |
|
| 126 |
+/* function fnShowPrintPopup() {
|
|
| 96 | 127 |
//만들려는 팝업의 크기 |
| 97 | 128 |
var url = ""; |
| 98 | 129 |
var popup_wid = '830'; |
... | ... | @@ -131,7 +162,7 @@ |
| 131 | 162 |
window.open("about:blank", 'printPop', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top + ', fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
|
| 132 | 163 |
document.listForm.target = "printPop"; |
| 133 | 164 |
document.listForm.submit(); |
| 134 |
-} |
|
| 165 |
+} */ |
|
| 135 | 166 |
|
| 136 | 167 |
/* 사용내역서 클릭 시 내역서 새창 팝업 오픈 */ |
| 137 | 168 |
function fnShowPrintPopup_OLD() {
|
... | ... | @@ -214,41 +245,48 @@ |
| 214 | 245 |
<div class="pay_cont current" id="listTab2_1"> |
| 215 | 246 |
<input type="hidden" id="searchSortCnd" name="searchSortCnd" value="<c:out value="${searchVO.searchSortCnd}" />" />
|
| 216 | 247 |
<input type="hidden" id="searchSortOrd" name="searchSortOrd" value="<c:out value="${searchVO.searchSortOrd}" />" />
|
| 248 |
+ <input type="hidden" id="addVatType" name="addVatType" value="N" /> |
|
| 217 | 249 |
<div class="list_info"> |
| 218 | 250 |
<p>총 <span>${paginationInfo.totalRecordCount}</span>건 (<fmt:formatNumber value="${totSuccSendPrice}" pattern="" /> 원)</p>
|
| 219 | 251 |
<div> |
| 220 |
- <button type="button" class="print_btn" onclick="javascript:fnPayUserPrintPopup();"> |
|
| 252 |
+ <!-- <button type="button" class="print_btn" onclick="javascript:fnPayUserPrintPopup();"> |
|
| 221 | 253 |
<i class="print_img"></i>인쇄하기 |
| 222 | 254 |
</button> |
| 223 | 255 |
<button type="button" class="pdf_btn" onclick="javascript:fnShowPdfPrintPopup();"> |
| 224 | 256 |
<i class="pdf_img"></i>PDF저장 |
| 225 |
- </button> |
|
| 257 |
+ </button> --> |
|
| 258 |
+ <c:choose> |
|
| 259 |
+ <c:when test="${not empty payUserSWList}">
|
|
| 260 |
+ <button type="button" class="btnType btn_36 border_gray btnType12" onclick="fnShowPrintPopup(); return false;">사용내역서</button> |
|
| 261 |
+ </c:when> |
|
| 262 |
+ <c:otherwise> |
|
| 263 |
+ <button type="button" class="btnType btn_36 border_gray btnType12" onclick="alert('선택한 조회기간의 요금사용내역이 없습니다.');">사용내역서</button>
|
|
| 264 |
+ </c:otherwise> |
|
| 265 |
+ </c:choose> |
|
| 226 | 266 |
<button type="button" class="excel_btn"> |
| 227 | 267 |
<i class="downroad"></i>엑셀 다운로드 |
| 228 | 268 |
</button> |
| 269 |
+ <label for="pageUnitS" class="label">검색조건 선택</label> |
|
| 270 |
+ <select id="pageUnitS" class="selType2"> |
|
| 271 |
+ <option value="10" <c:if test="${paginationInfo.recordCountPerPage == '10'}">selected</c:if> >10줄</option>
|
|
| 272 |
+ <option value="20" <c:if test="${paginationInfo.recordCountPerPage == '20'}">selected</c:if> >20줄</option>
|
|
| 273 |
+ <option value="30" <c:if test="${paginationInfo.recordCountPerPage == '30'}">selected</c:if> >30줄</option>
|
|
| 274 |
+ <option value="100" <c:if test="${paginationInfo.recordCountPerPage == '100'}">selected</c:if> >100줄</option>
|
|
| 275 |
+ </select> |
|
| 229 | 276 |
</div> |
| 230 | 277 |
</div> |
| 231 | 278 |
<div class="tb_wrap"> |
| 232 | 279 |
<table class="tType4"> |
| 233 | 280 |
<colgroup> |
| 234 |
- <%-- <col style="width: 5%;"> --%> |
|
| 235 |
- <col style="width: *%;"> |
|
| 236 |
- <col style="width: 15%;"> |
|
| 237 |
- <col style="width: 15%;"> |
|
| 238 |
- <col style="width: 15%;"> |
|
| 239 |
- <col style="width: 20%;"> |
|
| 240 |
-<%-- <col style="width: 20%;"> --%> |
|
| 241 |
- <%-- <col style="width: 10%;"> |
|
| 281 |
+ <col style="width: auto;"> |
|
| 282 |
+ <col style="width: 9%;"> |
|
| 242 | 283 |
<col style="width: 10%;"> |
| 243 |
- <col style="width: 10%;"> |
|
| 244 |
- <col style="width: 10%;"> --%> |
|
| 284 |
+ <col style="width: 12%;"> |
|
| 285 |
+ <col style="width: 12%;"> |
|
| 286 |
+ <col style="width: 16%;"> |
|
| 245 | 287 |
</colgroup> |
| 246 | 288 |
<thead> |
| 247 | 289 |
<tr> |
| 248 |
- <%-- <th rowspan="2"> |
|
| 249 |
- <label for="" class="label">전체 선택</label> |
|
| 250 |
- <input type="checkbox" id="chkAll"> |
|
| 251 |
- </th> --%> |
|
| 252 | 290 |
<th rowspan="2"> |
| 253 | 291 |
발송일시 |
| 254 | 292 |
<div class="sort_wrap"> |
... | ... | @@ -256,28 +294,18 @@ |
| 256 | 294 |
</div> |
| 257 | 295 |
</th> |
| 258 | 296 |
<th rowspan="2"> |
| 259 |
- 문자유형 |
|
| 297 |
+ 형태 |
|
| 260 | 298 |
<div class="sort_wrap"> |
| 261 | 299 |
<input type="button" class="sort sortBtn" id="sort_orderByCode"> |
| 262 | 300 |
</div> |
| 263 | 301 |
</th> |
| 264 | 302 |
<th rowspan="2">내용</th> |
| 265 |
- <th rowspan="2">발송건수</th> |
|
| 266 |
- <!-- <th colspan="2">충전</th> |
|
| 267 |
- <th colspan="2">사용</th> |
|
| 268 |
- <th colspan="2">잔액</th> --> |
|
| 269 |
-<!-- <th colspan="2">사용</th> --> |
|
| 270 |
- <th>사용</th> |
|
| 271 |
- <!-- <th>반환(실패)</th> --> |
|
| 272 |
- <!-- <th colspan="2">잔액</th> --> |
|
| 303 |
+ <th colspan="2">발송건수</th> |
|
| 304 |
+ <th rowspan="2">금액(원)</th> |
|
| 273 | 305 |
</tr> |
| 274 | 306 |
<tr> |
| 275 |
- <th>충전금</th> |
|
| 276 |
-<!-- <th>포인트</th> --> |
|
| 277 |
- <!-- <th>캐시</th> --> |
|
| 278 |
- <!-- <th>포인트</th> --> |
|
| 279 |
- <!-- <th>충전금</th> |
|
| 280 |
- <th>포인트</th> --> |
|
| 307 |
+ <th>성공</th> |
|
| 308 |
+ <th style="border-right:1px solid #ccc;">실패</th> |
|
| 281 | 309 |
</tr> |
| 282 | 310 |
</thead> |
| 283 | 311 |
<tbody> |
... | ... | @@ -285,10 +313,6 @@ |
| 285 | 313 |
<c:when test="${not empty payUserSWList}">
|
| 286 | 314 |
<c:forEach var="payUserInfo" items="${payUserSWList}" varStatus="status">
|
| 287 | 315 |
<tr> |
| 288 |
- <%-- <td> |
|
| 289 |
- <label for="" class="label">선택</label> |
|
| 290 |
- <input type="checkbox" name="eachChk"> |
|
| 291 |
- </td> --%> |
|
| 292 | 316 |
<td> |
| 293 | 317 |
<p><c:out value="${payUserInfo.reqDate}"/></p>
|
| 294 | 318 |
</td> |
... | ... | @@ -339,11 +363,11 @@ |
| 339 | 363 |
<c:if test="${payUserInfo.msgTypeTxt eq 'fax'}">
|
| 340 | 364 |
(<c:out value="${payUserInfo.fileCnt}"/>매)
|
| 341 | 365 |
</c:if> |
| 342 |
- / <c:out value="${payUserInfo.failSendCnt}"/>
|
|
| 343 |
- <%-- <c:out value="${payUserInfo.sendCount}"/>
|
|
| 344 |
- <c:if test="${payUserInfo.msgTypeTxt eq 'fax'}">
|
|
| 345 |
- (<c:out value="${payUserInfo.fileCnt}"/>)
|
|
| 346 |
- </c:if> --%> |
|
| 366 |
+ </p> |
|
| 367 |
+ </td> |
|
| 368 |
+ <td> |
|
| 369 |
+ <p class="fwRg c_222"> |
|
| 370 |
+ <c:out value="${payUserInfo.failSendCnt}"/>
|
|
| 347 | 371 |
</p> |
| 348 | 372 |
</td> |
| 349 | 373 |
<td> |
... | ... | @@ -352,58 +376,12 @@ |
| 352 | 376 |
<c:out value="${succCash}"/>
|
| 353 | 377 |
</p> |
| 354 | 378 |
</td> |
| 355 |
- <%-- <td> |
|
| 356 |
- <p class="fwRg c_002c9a"> |
|
| 357 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.failSendPrice}" var="failPrice" />
|
|
| 358 |
- <c:out value="${failPrice}"/>
|
|
| 359 |
- </p> |
|
| 360 |
- </td> --%> |
|
| 361 |
- <!-- <td> |
|
| 362 |
- <p class="fwRg c_002c9a"> |
|
| 363 |
- 0 |
|
| 364 |
- </p> |
|
| 365 |
- </td> --> |
|
| 366 |
- <%-- <td> |
|
| 367 |
- <p> |
|
| 368 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befCash}" var="befCash" />
|
|
| 369 |
- <c:out value="${befCash}"/>
|
|
| 370 |
- </p> |
|
| 371 |
- </td> |
|
| 372 |
- <td> |
|
| 373 |
- <p> |
|
| 374 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befPoint}" var="befPoint" />
|
|
| 375 |
- <c:out value="${befPoint}"/>
|
|
| 376 |
- </p> |
|
| 377 |
- </td> |
|
| 378 |
- <td> |
|
| 379 |
- <p class="fwRg c_002c9a"> |
|
| 380 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.totPrice}" var="totPrice" />
|
|
| 381 |
- <c:out value="${totPrice}"/>
|
|
| 382 |
- </p> |
|
| 383 |
- </td> |
|
| 384 |
- <td> |
|
| 385 |
- <p class="fwRg c_002c9a"> |
|
| 386 |
- 0 |
|
| 387 |
- </p> |
|
| 388 |
- </td> --%> |
|
| 389 |
- <%-- <td> |
|
| 390 |
- <p class="fwRg c_222"> |
|
| 391 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.thisPoint}" var="thisPoint" />
|
|
| 392 |
- <c:out value="${thisPoint}"/>
|
|
| 393 |
- </p> |
|
| 394 |
- </td> |
|
| 395 |
- <td> |
|
| 396 |
- <p class="fwRg c_222"> |
|
| 397 |
- <fmt:formatNumber type="number" maxFractionDigits="3" value="${payUserInfo.befPoint}" var="befPoint" />
|
|
| 398 |
- <c:out value="${befPoint}"/>
|
|
| 399 |
- </p> |
|
| 400 |
- </td> --%> |
|
| 401 | 379 |
</tr> |
| 402 | 380 |
</c:forEach> |
| 403 | 381 |
</c:when> |
| 404 | 382 |
<c:otherwise> |
| 405 | 383 |
<tr> |
| 406 |
- <td colspan="5"> |
|
| 384 |
+ <td colspan="6"> |
|
| 407 | 385 |
검색 결과가 없습니다. |
| 408 | 386 |
</td> |
| 409 | 387 |
</tr> |
... | ... | @@ -412,7 +390,9 @@ |
| 412 | 390 |
</tbody> |
| 413 | 391 |
</table> |
| 414 | 392 |
</div> |
| 415 |
- <div class="publish_btn clearfix"> |
|
| 393 |
+ |
|
| 394 |
+ <!-- 250530 - 거래명세서, 사용내역서 분리 --> |
|
| 395 |
+ <%-- <div class="publish_btn clearfix"> |
|
| 416 | 396 |
<div> |
| 417 | 397 |
<input type="radio" name="publish" id="publish1" value="statement"> |
| 418 | 398 |
<label for="publish1">거래명세서</label> |
... | ... | @@ -434,7 +414,7 @@ |
| 434 | 414 |
</c:otherwise> |
| 435 | 415 |
</c:choose> |
| 436 | 416 |
</div> |
| 437 |
- </div> |
|
| 417 |
+ </div> --%> |
|
| 438 | 418 |
|
| 439 | 419 |
<!-- pagination --> |
| 440 | 420 |
<c:if test="${!empty payUserSWList}">
|
--- src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
... | ... | @@ -41,7 +41,7 @@ |
| 41 | 41 |
var nextPayMethod = ""; |
| 42 | 42 |
$.ajax({
|
| 43 | 43 |
type: "POST", |
| 44 |
- url: "/web/member/pay/selectNextPayMethodAjax.do", |
|
| 44 |
+ url: "/web/member/pay/selectLastPayMethodAjax.do", |
|
| 45 | 45 |
data: {},
|
| 46 | 46 |
dataType:'json', |
| 47 | 47 |
async: false, |
... | ... | @@ -817,7 +817,7 @@ |
| 817 | 817 |
<li class="tab"><button type="button" onclick="location.href='/web/pay/PayGuide.do'">요금안내/견적내기</button></li> |
| 818 | 818 |
<li class="tab active"><button type="button">결제하기</button></li> |
| 819 | 819 |
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayList.do'">요금 결제내역</button></li> |
| 820 |
- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/PayUserSWList.do'">요금 사용내역</button></li> |
|
| 820 |
+ <li class="tab"><button type="button" onclick="location.href='/web/member/pay/payUserSWList.do'">요금 사용내역</button></li> |
|
| 821 | 821 |
<!-- 현금영수증 자동발행 주석 --> |
| 822 | 822 |
<!-- <li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">계산서/현금영수증 발행 등록</button></li> --> |
| 823 | 823 |
<li class="tab"><button type="button" onclick="location.href='/web/member/pay/BillPub.do'">세금계산서 발행 등록</button></li> |
+++ src/main/webapp/WEB-INF/jsp/web/pay/payInvoicePrintPopup.jsp
... | ... | @@ -0,0 +1,384 @@ |
| 1 | +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> | |
| 2 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 3 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 4 | +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> | |
| 5 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> | |
| 6 | +<%@ page import="itn.com.cmm.LoginVO" %> | |
| 7 | +<!DOCTYPE html> | |
| 8 | +<html lang="ko"> | |
| 9 | + <head> | |
| 10 | + <meta charset="UTF-8"> | |
| 11 | + <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| 12 | + <title>거래명세서</title> | |
| 13 | + <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet"> | |
| 14 | + <link rel="stylesheet" href="/publish/css/reset.css"> | |
| 15 | + <link rel="stylesheet" href="/publish/css/common.css"> | |
| 16 | + <link rel="stylesheet" href="/publish/css/estimate.css"> | |
| 17 | + <link rel="stylesheet" href="/publish/css/font.css"> | |
| 18 | + <link rel="stylesheet" href="/publish/css/button.css"> | |
| 19 | + </head> | |
| 20 | + <script type="text/javascript"> | |
| 21 | + function f_print(){ | |
| 22 | + | |
| 23 | + document.getElementById('est_btn_wrap').style.display = 'none'; | |
| 24 | + var initBody = document.body.innerHTML; | |
| 25 | + window.onbeforeprint = function(){ | |
| 26 | + // print_area는 인쇄하고자 하는 영역의 ID를 말합니다.( 필수 ) | |
| 27 | +// document.body.innerHTML = document.getElementById("print_area").innerHTML; | |
| 28 | + } | |
| 29 | + window.onafterprint = function(){ | |
| 30 | + document.body.innerHTML = initBody; | |
| 31 | + } | |
| 32 | + window.print(); | |
| 33 | + document.getElementById('est_btn_wrap').style.display = ''; | |
| 34 | + } | |
| 35 | + </script> | |
| 36 | + <body> | |
| 37 | + <!-- 견적서 --> | |
| 38 | + <div class="estimate_wrap"> | |
| 39 | + <div class="estimate"> | |
| 40 | + <div class="est_head clearfix"> | |
| 41 | + <img src="/publish/images/CI.png" alt="문자온 CI"> | |
| 42 | + <div class="clearfix"> | |
| 43 | + <p>(12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)</p> | |
| 44 | + <p>TEL 1551-8011</p> | |
| 45 | + </div> | |
| 46 | + </div> | |
| 47 | + <div class="est_body"> | |
| 48 | + <h2>거래명세서<span style="font-size:20px;font-weight:400;">(공급받는자 보관용)</span></h2> | |
| 49 | + <div class="cont1 tb_ver2" style="display:flex;"> | |
| 50 | + <div style="width:calc((100% - 40px)/2);"> | |
| 51 | + <p>공급받는 자</p> | |
| 52 | + <table class="est_table"> | |
| 53 | + <caption>등록번호, 상호, 성명, 전화번호, 이메일 정보 제공</caption> | |
| 54 | + <colgroup> | |
| 55 | + <col style="width: 60px;"> | |
| 56 | + <col style="width: auto;"> | |
| 57 | + </colgroup> | |
| 58 | + <tbody> | |
| 59 | + <tr> | |
| 60 | + <th>등록번호</th> | |
| 61 | + <td> | |
| 62 | + <c:choose> | |
| 63 | + <c:when test="${result.dept eq 'c'}"> | |
| 64 | + <c:out value="${result.bizNo}"/> | |
| 65 | + </c:when> | |
| 66 | + <c:otherwise> | |
| 67 | + - | |
| 68 | + </c:otherwise> | |
| 69 | + </c:choose> | |
| 70 | + <!--(개인회원인 경우 하이픈(-) 처리)--> | |
| 71 | + </td> | |
| 72 | + </tr> | |
| 73 | + <tr> | |
| 74 | + <th style="letter-spacing:-0.69px;">상    호</th> | |
| 75 | + <td> | |
| 76 | + <c:choose> | |
| 77 | + <c:when test="${result.dept eq 'c'}"> | |
| 78 | + <c:out value="${result.mberNm}"/> | |
| 79 | + </c:when> | |
| 80 | + <c:otherwise> | |
| 81 | + - | |
| 82 | + </c:otherwise> | |
| 83 | + </c:choose> | |
| 84 | + </td> | |
| 85 | + </tr> | |
| 86 | + <tr> | |
| 87 | + <th style="letter-spacing:-0.69px;">성    명</th> | |
| 88 | + <td> | |
| 89 | + <c:choose> | |
| 90 | + <c:when test="${result.dept eq 'c'}"> | |
| 91 | + <c:out value="${result.managerNm}"/> | |
| 92 | + </c:when> | |
| 93 | + <c:otherwise> | |
| 94 | + <c:out value="${result.mberNm}"/> | |
| 95 | + </c:otherwise> | |
| 96 | + </c:choose> | |
| 97 | + </td> | |
| 98 | + </tr> | |
| 99 | + <tr> | |
| 100 | + <th>전화번호</th> | |
| 101 | + <td> | |
| 102 | + <c:out value="${result.mbtlNum}"/> | |
| 103 | + </td> | |
| 104 | + </tr> | |
| 105 | + <tr> | |
| 106 | + <th style="letter-spacing:-0.85px;">이 메 일</th> | |
| 107 | + <td> | |
| 108 | + <c:out value="${result.email}"/> | |
| 109 | + </td> | |
| 110 | + </tr> | |
| 111 | + </tbody> | |
| 112 | + </table> | |
| 113 | + </div> | |
| 114 | + <div style="width:calc((100% - 40px)/2);"> | |
| 115 | + <p>공급자</p> | |
| 116 | + <img src="/publish/images/content/stamp.png" alt="도장" class="stamp mCS_img_loaded"> | |
| 117 | + <table class="est_table"> | |
| 118 | + <caption>등록번호, 상호, 성명, 전화번호, 이메일 정보 제공</caption> | |
| 119 | + <colgroup> | |
| 120 | + <col style="width: 60px;"> | |
| 121 | + <col style="width: auto;"> | |
| 122 | + </colgroup> | |
| 123 | + <tbody> | |
| 124 | + <tr> | |
| 125 | + <th>등록번호</th> | |
| 126 | + <td>653-87-00858</td> | |
| 127 | + </tr> | |
| 128 | + <tr> | |
| 129 | + <th style="letter-spacing:-0.69px;">상    호</th> | |
| 130 | + <td>주식회사 아이티앤</td> | |
| 131 | + </tr> | |
| 132 | + <tr> | |
| 133 | + <th style="letter-spacing:-0.69px;">성    명</th> | |
| 134 | + <td>유인식</td> | |
| 135 | + </tr> | |
| 136 | + <tr> | |
| 137 | + <th>전화번호</th> | |
| 138 | + <td>1551-8011</td> | |
| 139 | + </tr> | |
| 140 | + <tr> | |
| 141 | + <th style="letter-spacing:-0.85px;">이 메 일</th> | |
| 142 | + <td>help@iten.co.kr</td> | |
| 143 | + </tr> | |
| 144 | + </tbody> | |
| 145 | + </table> | |
| 146 | + </div> | |
| 147 | + </div> | |
| 148 | + <div class="cont3"> | |
| 149 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${result.amt}" var="commaAmt" /> | |
| 150 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${result.cash}" var="commaCash" /> | |
| 151 | + <fmt:formatNumber type="number" maxFractionDigits="3" value="${result.amt - result.cash}" var="commaETC" /> | |
| 152 | + <div class="est_table2_wrap"> | |
| 153 | + <table class="est_table2"> | |
| 154 | + <caption>작성일자, 공급가액, 세액, 비고 정보를 제공하는 표</caption> | |
| 155 | + <colgroup> | |
| 156 | + <col style="width: 25%;"> | |
| 157 | + <col style="width: 25%;"> | |
| 158 | + <col style="width: 25%;"> | |
| 159 | + </colgroup> | |
| 160 | + <thead> | |
| 161 | + <tr> | |
| 162 | + <th scope="col">작성일자</th> | |
| 163 | + <th scope="col">공급가액</th> | |
| 164 | + <th scope="col">세액</th> | |
| 165 | + </tr> | |
| 166 | + </thead> | |
| 167 | + <tbody> | |
| 168 | + <fmt:parseDate value="${result.regDate}" pattern="yyyy-MM-dd HH:mm:ss.S" var="parsedDate"/> | |
| 169 | + <tr> | |
| 170 | + <td><fmt:formatDate value="${parsedDate}" pattern="yyyy-MM-dd"/></td> | |
| 171 | + <td><c:out value="${commaCash}"/></td> | |
| 172 | + <td><c:out value="${commaETC}"/></td> | |
| 173 | + </tr> | |
| 174 | + </tbody> | |
| 175 | + <tfoot> | |
| 176 | + <tr> | |
| 177 | + <th>비고</th> | |
| 178 | + <td style="padding:0 0 0 20px;"> | |
| 179 | + <c:choose> | |
| 180 | + <c:when test="${result.prePaymentYn eq 'N'}"> | |
| 181 | + 사용기간(${result.startDate} ~ ${result.endDate}) | |
| 182 | + </c:when> | |
| 183 | + <c:otherwise> | |
| 184 | + - | |
| 185 | + </c:otherwise> | |
| 186 | + </c:choose> | |
| 187 | + | |
| 188 | + </td> | |
| 189 | + </tr> | |
| 190 | + </tfoot> | |
| 191 | + </table> | |
| 192 | + </div> | |
| 193 | + | |
| 194 | + | |
| 195 | + <div class="est_table2_wrap" style="margin:20px 0 0 0;"> | |
| 196 | + <table class="est_table2"> | |
| 197 | + <caption>월, 일, 품목, 규격, 수량, 단가, 공급가액, 세액, 비고 정보를 제공하는 표</caption> | |
| 198 | + <colgroup> | |
| 199 | + <col style="width: 60px;"> | |
| 200 | + <col style="width: 60px;"> | |
| 201 | + <col style="width: auto;"> | |
| 202 | + <col style="width: 60px;"> | |
| 203 | + <col style="width: 60px;"> | |
| 204 | + <col style="width: 60px;"> | |
| 205 | + <col style="width: 100px;"> | |
| 206 | + <col style="width: 60px;"> | |
| 207 | + <col style="width: 70px;"> | |
| 208 | + </colgroup> | |
| 209 | + <thead> | |
| 210 | + <tr> | |
| 211 | + <th scope="col">월</th> | |
| 212 | + <th scope="col">일</th> | |
| 213 | + <th scope="col">품목</th> | |
| 214 | + <th scope="col">규격</th> | |
| 215 | + <th scope="col">수량</th> | |
| 216 | + <th scope="col">단가</th> | |
| 217 | + <th scope="col">공급가액</th> | |
| 218 | + <th scope="col">세액</th> | |
| 219 | + <th scope="col">비고</th> | |
| 220 | + </tr> | |
| 221 | + </thead> | |
| 222 | + <tbody> | |
| 223 | + <tr> | |
| 224 | + <td><fmt:formatDate value="${parsedDate}" pattern="M"/></td> | |
| 225 | + <td><fmt:formatDate value="${parsedDate}" pattern="d"/></td> | |
| 226 | + <td>문자온 메시징 서비스 이용료</td> | |
| 227 | + <td></td> | |
| 228 | + <td></td> | |
| 229 | + <td></td> | |
| 230 | + <td><c:out value="${commaCash}"/></td> | |
| 231 | + <td><c:out value="${commaETC}"/></td> | |
| 232 | + <td>-</td> | |
| 233 | + </tr> | |
| 234 | + <tr> | |
| 235 | + <td></td> | |
| 236 | + <td></td> | |
| 237 | + <td></td> | |
| 238 | + <td></td> | |
| 239 | + <td></td> | |
| 240 | + <td></td> | |
| 241 | + <td></td> | |
| 242 | + <td></td> | |
| 243 | + <td></td> | |
| 244 | + </tr> | |
| 245 | + <tr> | |
| 246 | + <td></td> | |
| 247 | + <td></td> | |
| 248 | + <td></td> | |
| 249 | + <td></td> | |
| 250 | + <td></td> | |
| 251 | + <td></td> | |
| 252 | + <td></td> | |
| 253 | + <td></td> | |
| 254 | + <td></td> | |
| 255 | + </tr> | |
| 256 | + <tr> | |
| 257 | + <td></td> | |
| 258 | + <td></td> | |
| 259 | + <td></td> | |
| 260 | + <td></td> | |
| 261 | + <td></td> | |
| 262 | + <td></td> | |
| 263 | + <td></td> | |
| 264 | + <td></td> | |
| 265 | + <td></td> | |
| 266 | + </tr> | |
| 267 | + <tr> | |
| 268 | + <td></td> | |
| 269 | + <td></td> | |
| 270 | + <td></td> | |
| 271 | + <td></td> | |
| 272 | + <td></td> | |
| 273 | + <td></td> | |
| 274 | + <td></td> | |
| 275 | + <td></td> | |
| 276 | + <td></td> | |
| 277 | + </tr> | |
| 278 | + <tr> | |
| 279 | + <td></td> | |
| 280 | + <td></td> | |
| 281 | + <td></td> | |
| 282 | + <td></td> | |
| 283 | + <td></td> | |
| 284 | + <td></td> | |
| 285 | + <td></td> | |
| 286 | + <td></td> | |
| 287 | + <td></td> | |
| 288 | + </tr> | |
| 289 | + <tr> | |
| 290 | + <td></td> | |
| 291 | + <td></td> | |
| 292 | + <td></td> | |
| 293 | + <td></td> | |
| 294 | + <td></td> | |
| 295 | + <td></td> | |
| 296 | + <td></td> | |
| 297 | + <td></td> | |
| 298 | + <td></td> | |
| 299 | + </tr> | |
| 300 | + <tr> | |
| 301 | + <td></td> | |
| 302 | + <td></td> | |
| 303 | + <td></td> | |
| 304 | + <td></td> | |
| 305 | + <td></td> | |
| 306 | + <td></td> | |
| 307 | + <td></td> | |
| 308 | + <td></td> | |
| 309 | + <td></td> | |
| 310 | + </tr> | |
| 311 | + </tbody> | |
| 312 | + | |
| 313 | + <!-- 후불제 --> | |
| 314 | + <!-- <tfoot> | |
| 315 | + <tr> | |
| 316 | + <th colspan="2">합계금액</th> | |
| 317 | + <th>전잔액</th> | |
| 318 | + <th colspan="2">입금액</th> | |
| 319 | + <th colspan="2">현잔액</th> | |
| 320 | + <th colspan="2" rowspan="2" style="background:#fff;vertical-align:middle;">이 금액을 [<span>청 구</span>]함</th> | |
| 321 | + </tr> | |
| 322 | + <tr> | |
| 323 | + <td style="text-align:center;" colspan="2">550,000</td> | |
| 324 | + <td style="text-align:center;">-</td> | |
| 325 | + <td style="text-align:center;" colspan="2">-</td> | |
| 326 | + <td style="text-align:center;" colspan="2">550,000</td> | |
| 327 | + </tr> | |
| 328 | + </tfoot> --> | |
| 329 | + <!-- //후불제 --> | |
| 330 | + | |
| 331 | + <!-- 일반회원(선불제) --> | |
| 332 | + <tfoot> | |
| 333 | + <tr> | |
| 334 | + <th colspan="2">합계금액</th> | |
| 335 | + <th>전잔액</th> | |
| 336 | + <th colspan="2">입금액</th> | |
| 337 | + <th colspan="2">현잔액</th> | |
| 338 | + <th colspan="2" rowspan="2" style="background:#fff;vertical-align:middle;"> | |
| 339 | + | |
| 340 | + <c:choose> | |
| 341 | + <c:when test="${result.prePaymentYn eq 'N' and result.pgStatus ne '1'}"> | |
| 342 | + 이 금액을 [<span>청 구</span>]함 | |
| 343 | + </c:when> | |
| 344 | + <c:otherwise> | |
| 345 | + 이 금액을 [<span>영 수</span>]함 | |
| 346 | + </c:otherwise> | |
| 347 | + </c:choose> | |
| 348 | + </th> | |
| 349 | + </tr> | |
| 350 | + <tr> | |
| 351 | + <td style="text-align:center;" colspan="2"> | |
| 352 | + <c:out value="${commaAmt}"/> | |
| 353 | + </td> | |
| 354 | + <td style="text-align:center;">-</td> | |
| 355 | + <td style="text-align:center;" colspan="2">-</td> | |
| 356 | + <td style="text-align:center;" colspan="2"> | |
| 357 | + <c:out value="${commaAmt}"/> | |
| 358 | + </td> | |
| 359 | + </tr> | |
| 360 | + </tfoot> | |
| 361 | + <!-- //일반회원(선불제) --> | |
| 362 | + | |
| 363 | + </table> | |
| 364 | + </div> | |
| 365 | + </div> | |
| 366 | + | |
| 367 | + <!-- <div class="cont5"> | |
| 368 | + <p><span>2021</span> 년 <span>6</span> 월 <span>17</span> 일</p> | |
| 369 | + <div> | |
| 370 | + <span></span> | |
| 371 | + <span>주식회사 아이티앤</span> | |
| 372 | + <span>유 인 식 (인)</span> | |
| 373 | + </div> | |
| 374 | + </div> --> | |
| 375 | + | |
| 376 | + </div> | |
| 377 | + <div class="est_btn_wrap"> | |
| 378 | + <button type="button" class="btnType" onclick="window.print();"><i class="print_img"></i>인쇄하기</button> | |
| 379 | + </div> | |
| 380 | + </div> | |
| 381 | + </div> | |
| 382 | + <!--// 견적서 --> | |
| 383 | + </body> | |
| 384 | +</html> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
... | ... | @@ -242,25 +242,17 @@ |
| 242 | 242 |
$("#receivemail").val("N");
|
| 243 | 243 |
} |
| 244 | 244 |
|
| 245 |
- if($("#emailId").val() == ""){
|
|
| 246 |
- alert("이메일을 입력해주세요.");
|
|
| 245 |
+ if($("#emailId").val().trim() == "" || $("#emailAdd").val().trim() == ""){
|
|
| 246 |
+ alert("이메일은 필수 입력 항목입니다.")
|
|
| 247 | 247 |
return false; |
| 248 |
- } |
|
| 249 |
- |
|
| 250 |
- if($("#emailId").val() != ""|| $("#emailAdd").val() != ""){
|
|
| 251 |
- if($("#emailAdd").val() != ""){
|
|
| 252 |
- var email = $("#emailId").val() + "@" + $("#emailAdd").val();
|
|
| 253 |
- var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
|
| 254 |
- if(taxExptext.test(email)==false){
|
|
| 255 |
- alert("이메일주소 형식이 올바르지 않습니다.");
|
|
| 256 |
- return false; |
|
| 257 |
- } |
|
| 258 |
- |
|
| 259 |
- $("#mberEmailAdres").val(email);
|
|
| 260 |
- }else{
|
|
| 261 |
- alert("이메일 주소를 확인해 주세요");
|
|
| 248 |
+ }else {
|
|
| 249 |
+ var email = $("#emailId").val() + "@" + $("#emailAdd").val();
|
|
| 250 |
+ var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
|
| 251 |
+ if(taxExptext.test(email)==false){
|
|
| 252 |
+ alert("이메일주소 형식이 올바르지 않습니다.");
|
|
| 262 | 253 |
return false; |
| 263 | 254 |
} |
| 255 |
+ $("#mberEmailAdres").val(email);
|
|
| 264 | 256 |
} |
| 265 | 257 |
|
| 266 | 258 |
if("${cmpPhoneChangeManageVO.hstSttus}" == '03'){
|
... | ... | @@ -678,7 +670,7 @@ |
| 678 | 670 |
</c:if> |
| 679 | 671 |
<div class="input_list_item emailWrap"> |
| 680 | 672 |
<div> |
| 681 |
- <div class="input_left"><span class="essential">*</span>이메일</div> |
|
| 673 |
+ <div class="input_left">이메일</div> |
|
| 682 | 674 |
<div class="input_right"> |
| 683 | 675 |
<div class="email"> |
| 684 | 676 |
<label for="" class="label">이메일 주소 앞자리</label> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
... | ... | @@ -149,21 +149,17 @@ |
| 149 | 149 |
$("#receivemail").val("N");
|
| 150 | 150 |
} |
| 151 | 151 |
|
| 152 |
- |
|
| 153 |
- if($("#emailId").val() != ""|| $("#emailAdd").val() != ""){
|
|
| 154 |
- if($("#emailAdd").val() != ""){
|
|
| 155 |
- var email = $("#emailId").val() + "@" + $("#emailAdd").val();
|
|
| 156 |
- var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
|
| 157 |
- if(taxExptext.test(email)==false){
|
|
| 158 |
- alert("이메일주소 형식이 올바르지 않습니다.");
|
|
| 159 |
- return false; |
|
| 160 |
- } |
|
| 161 |
- |
|
| 162 |
- $("#mberEmailAdres").val(email);
|
|
| 163 |
- }else{
|
|
| 164 |
- alert("이메일 주소를 확인해 주세요");
|
|
| 152 |
+ if($("#emailId").val().trim() == "" || $("#emailAdd").val().trim() == ""){
|
|
| 153 |
+ alert("이메일은 필수 입력 항목입니다.")
|
|
| 154 |
+ return false; |
|
| 155 |
+ }else {
|
|
| 156 |
+ var email = $("#emailId").val() + "@" + $("#emailAdd").val();
|
|
| 157 |
+ var taxExptext = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
|
|
| 158 |
+ if(taxExptext.test(email)==false){
|
|
| 159 |
+ alert("이메일주소 형식이 올바르지 않습니다.");
|
|
| 165 | 160 |
return false; |
| 166 | 161 |
} |
| 162 |
+ $("#mberEmailAdres").val(email);
|
|
| 167 | 163 |
} |
| 168 | 164 |
|
| 169 | 165 |
if("${userInfo.moblphonNo}" != $("#moblphonNo").val()){
|
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
... | ... | @@ -671,7 +671,7 @@ |
| 671 | 671 |
</c:otherwise> |
| 672 | 672 |
</c:choose> |
| 673 | 673 |
|
| 674 |
- <button type="button" onclick="location.href='/web/member/pay/PayUserSWList.do';"> |
|
| 674 |
+ <button type="button" onclick="location.href='/web/member/pay/payUserSWList.do';"> |
|
| 675 | 675 |
<img src="/publish/images/content/mypage_plus.png" alt="더보기"> |
| 676 | 676 |
</button> |
| 677 | 677 |
<div class="table_wrap" id="send_reserv"> |
--- src/main/webapp/WEB-INF/jsp/web/user/mypageHeader.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mypageHeader.jsp
... | ... | @@ -30,9 +30,6 @@ |
| 30 | 30 |
<li class="tab" id="sendNumberManage"> |
| 31 | 31 |
<button type="button" onclick="TabType5(this,'4'); location.href='/web/user/sendNumberManage.do'">발신번호 관리</button> |
| 32 | 32 |
</li> |
| 33 |
- <li class="tab" id="notifyManage"> |
|
| 34 |
- <button type="button" onclick="TabType5(this,'5'); location.href='/web/user/notifyManage.do'">알림설정</button> |
|
| 35 |
- </li> |
|
| 36 | 33 |
<li class="tab" id="mberSecession"> |
| 37 | 34 |
<button type="button" onclick="TabType5(this,'6'); location.href='/web/user/mberSecession.do'">회원탈퇴</button> |
| 38 | 35 |
</li> |
--- src/main/webapp/publish/js/dateUtils.js
+++ src/main/webapp/publish/js/dateUtils.js
... | ... | @@ -112,3 +112,26 @@ |
| 112 | 112 |
return ( year + '/' + month + '/' + day ); |
| 113 | 113 |
} |
| 114 | 114 |
|
| 115 |
+/** |
|
| 116 |
+ * 검색 날짜관련 ID로 검색 시작일 최대 기간을 제한 function |
|
| 117 |
+ * @param {String} a 검색 시작 ID
|
|
| 118 |
+ * @param {String} b 최대 기간 달 수
|
|
| 119 |
+ * @returns {Boolean} a날짜와 현재 날짜를 비교해서 차이가 b월 이상이면 false 이하면 true
|
|
| 120 |
+ */ |
|
| 121 |
+function fn_G_limitDateChk(startId, limitMonth) {
|
|
| 122 |
+ // 시작일자 가져오기 |
|
| 123 |
+ var startDate = document.getElementById(startId).value; |
|
| 124 |
+ |
|
| 125 |
+ // 날짜 형식으로 변환 및 현재 날짜 설정 |
|
| 126 |
+ var start = new Date(startDate); |
|
| 127 |
+ var today = new Date(); |
|
| 128 |
+ |
|
| 129 |
+ var maxDate = new Date(today); |
|
| 130 |
+ maxDate.setMonth(maxDate.getMonth() - limitMonth); |
|
| 131 |
+ |
|
| 132 |
+ if(start < maxDate){
|
|
| 133 |
+ alert("검색 시작일자를 최근 "+limitMonth+"개월 이내로 입력해주세요.");
|
|
| 134 |
+ return false; |
|
| 135 |
+ } |
|
| 136 |
+ return true; |
|
| 137 |
+} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?