rosewiper 2024-07-22
결제하기 > 전용계좌 선택시 가상계좌 확인서 팝업 추가 - 전용계좌가 있는 경우 확인서 팝업 호출 하여 출력기능 추가
  - 전용계좌가 있는 경우 확인서 팝업 호출 하여 출력기능 추가
@26c92d4945348fcd02eae480ebe8133f3bcb79b3
src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
@@ -3,6 +3,7 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Random;
@@ -191,6 +192,65 @@
     	
 		return "/web/pay/PayView";
 	}
+    
+    
+    /**
+     * 결제하기
+     * @param searchVO
+     * @param model
+     * @return	"/web/pay/PayView.do"
+     * @throws Exception
+     */
+    @RequestMapping(value= {"/web/member/pay/selectVaViewPrintPopupAjax.do"})
+	public String selectVaViewPrintPopupAjax(@ModelAttribute("mjonPayVO") MjonPayVO mjonPayVO, 
+			HttpServletRequest request, RedirectAttributes redirectAttributes,
+			ModelMap model) throws Exception{
+    	
+    	String pattern = (String) request.getAttribute(
+                HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE) ;
+    	
+    	//로그인 정보 획득
+    	LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
+    	String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
+    	String userNm = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getName());
+    	
+		if(loginVO == null) {
+			return "redirect:/web/user/login/login.do";
+		}
+		
+		// 하드코딩
+		// Itm Member Id Check
+		//if(!getItnMemberId(userId)) {
+		//	return "redirect:/web/main/mainPage.do";
+		//}
+		
+		MberManageVO mberManageVO = mberManageService.selectMber(loginVO.getId());
+    	model.addAttribute("mberManageVO", mberManageVO);
+    	
+		//회원 전용계좌 정보  리스트 가져오기    
+		VacsVactVO vacsVactVO = new VacsVactVO();
+		vacsVactVO.setMberId(loginVO.getId());
+    	List<?> myBankList = vacsVactService.selectMyBankAcctList(vacsVactVO);		//내가 할당받은 전용계좌 리스트 받아오기
+    	
+    	//대상 리스트, 페이징 정보 전달
+    	model.addAttribute("resultMyList", myBankList);
+    	//사용자 정보
+    	model.addAttribute("userId", userId);
+    	model.addAttribute("userNm", userNm);
+    	
+    	Calendar cal = Calendar.getInstance();
+
+    	int year = cal.get(Calendar.YEAR);
+    	int month = cal.get(Calendar.MONTH) + 1;
+    	int day = cal.get(Calendar.DAY_OF_MONTH);
+    	
+    	model.addAttribute("year", year);
+    	model.addAttribute("month", month);
+    	model.addAttribute("day", day);
+    	
+    	
+		return "/web/pay/PayVaViewPrintPopup";
+	}
 
 	/**
    	 * 다음 결제시 결제수단 SELECT
 
src/main/webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp (added)
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayVaViewPrintPopup.jsp
@@ -0,0 +1,153 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ page import="itn.com.cmm.LoginVO" %>
+<!DOCTYPE html>
+<html lang="ko">
+
+<head>
+	<meta charset="UTF-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>가상계좌 확인서</title>
+	<script type="text/javascript" src="/publish/js/jquery-3.5.0.js"></script>
+	
+	<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap" rel="stylesheet">
+	<link rel="stylesheet" href="/publish/css/reset.css">
+	<link rel="stylesheet" href="/publish/css/common.css">
+	<link rel="stylesheet" href="/publish/css/estimate.css">
+	<link rel="stylesheet" href="/publish/css/font.css">
+	<link rel="stylesheet" href="/publish/css/button.css">
+</head>
+<script type="text/javascript">
+$(document).ready(function(){
+	
+});
+
+function f_print(){
+	document.getElementById('est_btn_wrap').style.display = 'none';
+	var initBody = document.body.innerHTML;
+	window.onbeforeprint = function(){
+		// print_area는 인쇄하고자 하는 영역의 ID를 말합니다.( 필수 )
+		// document.body.innerHTML = document.getElementById("print_area").innerHTML;
+	}
+	window.onafterprint = function(){
+		document.body.innerHTML = initBody;
+	}
+	window.print();
+	document.getElementById('est_btn_wrap').style.display = '';
+}
+
+</script>
+	<body>
+		<!-- 발송결과 출력 -->
+		<div class="estimate_wrap" >
+			<div class="estimate">
+				<div class="est_head clearfix">
+					<img src="/publish/images/CI.png" alt="문자온 CI">
+					<div class="clearfix">
+						<p>(12248) 경기도 남양주시 다산순환로 20, A동 735호(다산동, 현대프리미어캠퍼스)</p>
+						<p>TEL  010-8432-9333</p>
+					</div>
+				</div>
+				<div class="est_body">
+	                <h2>가상계좌 확인서</h2>
+	                <div class="cont1 tb_ver2">
+	                    <div>
+	                        <table class="est_table">
+	                            <caption>가상계좌 사실 확인</caption>
+	                            <colgroup>
+	                                <col style="width: 50px;">
+	                                <col style="width: auto;">
+	                            </colgroup>
+	                            <tbody>
+	                                <tr>
+	                                    <td colspan="2" class="colspan"><span><c:out value="${userNm}"/></span> &nbsp;님의 가상계좌 발급 사실을 아래와 같이 확인합니다.</td>
+	                                </tr>
+	                            </tbody>
+	                        </table>
+	                    </div>
+	                </div>
+	                <div class="cont3">
+	                    <div class="est_table2_wrap">
+	                        <table class="est_table2">
+	                            <caption>예금주명, 발급은행, 계좌번호 정보를 제공하는 표</caption>
+	                            <colgroup>
+	                                <col style="width: 25%;">
+	                                <col style="width: 25%;">
+	                                <col style="width: auto;">
+	                            </colgroup>
+	                            <thead>
+	                                <tr>
+	                                    <th scope="col">예금주명</th>
+	                                    <th scope="col">발급은행</th>
+	                                    <th scope="col">계좌번호</th>
+	                                </tr>
+	                            </thead>
+	                            <tbody>
+	                            	<c:choose>
+										<c:when test="${not empty resultMyList}">
+											<c:forEach var="result" items="${resultMyList}" varStatus="status">										
+												<tr>
+													<td>
+														<c:out value="${result.cmfNm}"/>
+													</td>
+													<td>
+														<c:out value='${result.codeNm}'/>
+													</td>
+													<td>
+														<c:out value='${result.acctNo}'/>
+													</td>
+												</tr>
+											</c:forEach>								
+										</c:when>
+										<c:otherwise>
+											<tr>
+												<td colspan="3">
+													<div>
+														보유한 전용 계좌가 없습니다.
+													</div>
+												</td>
+											</tr>
+										</c:otherwise>
+									</c:choose>
+	                                <!-- <tr>
+	                                    <td>홍길동</td>
+	                                    <td>신한은행</td>
+	                                    <td>56212519512583</td>
+	                                </tr> -->
+	                            </tbody>
+	                        </table>
+	                    </div>
+	                </div>
+	                <div class="cont4 account">
+	                    <table class="est_table">
+	                        <caption>추가설명</caption>
+	                        <colgroup>
+	                            <col style="width: 64px;">
+	                            <col style="width: auto;">
+	                        </colgroup>
+	                        <tbody>
+	                            <tr>
+	                                <td class="acc_te">* 본 확인서는 결제 증빙 용도로만 활용될 수 있습니다. (법적 효력 없음)</td>
+	                            </tr>
+	                        </tbody>
+	                    </table>
+	                </div>
+	                <div class="cont5">
+						<p><span><c:out value="${year}"/></span> 년&nbsp;&nbsp;<span><c:out value="${month}"/></span> 월&nbsp;&nbsp;<span><c:out value="${day}"/></span> 일</p>
+						<div>
+							<span>주식회사 아이티앤 대표이사</span>
+							<span>유&nbsp;인&nbsp;식</span>
+							<span class="big_stamp"><img src="/publish/images/content/big_stamp.png"></span>
+						</div>
+					</div>
+	            </div>
+				<div class="est_btn_wrap" id="est_btn_wrap">
+					<button type="button" class="btnType" onclick="javascript:f_print(); return false;"><i class="print_img"></i>인쇄하기</button>                  
+				</div>
+			</div>
+		</div><!--// 견적서 -->
+	</body>
+</html>
src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
--- src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/pay/PayView.jsp
@@ -777,6 +777,23 @@
     });				
 }		
 
+
+/* 사용내역서 클릭 시 내역서 새창 팝업 오픈  */
+function fnShowVaViewPrintPopup() { 
+	//만들려는 팝업의 크기
+	var popup_wid = '840';
+	var popup_ht = '800';
+
+	var popup_left = (window.screen.width / 2) - (popup_wid / 2);
+	var popup_top =(window.screen.height / 2) - (popup_ht / 2);
+
+	$("#pgForm").attr("target","payVaPrint");
+	
+	window.open('', 'payVaPrint', 'width='+ popup_wid +', height='+ popup_ht +', left=' + popup_left + ', top='+ popup_top +',scrollbars=1');
+	$("#pgForm").attr({"action":"/web/member/pay/selectVaViewPrintPopupAjax.do", "method":"post"}).submit();
+	
+}
+
 </script>
 
 <!-- </head>
@@ -972,7 +989,7 @@
 														
 													</td>
 													<td class="right account_te">
-														<button type="button">가상계좌 확인서</button>
+														<button type="button" onClick="javascript:fnShowVaViewPrintPopup(); return false;">가상계좌 확인서</button>
 													</td>
 												</tr>
 											</c:forEach>								
Add a comment
List