이지우 - 사용자 > 결제관리 > 요금 결제내역 / 요금 사용내역 수정 작업

This commit is contained in:
JIWOO 2025-07-24 15:36:29 +09:00
parent 4839033257
commit 60dbb225ea
3 changed files with 404 additions and 2 deletions

View File

@ -7,7 +7,11 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
@ -2972,6 +2976,20 @@ public class MjonPayServiceImpl extends EgovAbstractServiceImpl implements MjonP
@Override
public MjonPayVO selectPayDetail(MjonPayVO mjonPayVO) throws Exception {
return mjonPayDAO.selectPayDetail(mjonPayVO);
MjonPayVO result = mjonPayDAO.selectPayDetail(mjonPayVO);
/* 후불제 고객의 사용기한 조회(결제일의 전달 1일 ~ 말일) */
if("N".equals(result.getPrePaymentYn())) {
String regDateStr = result.getRegDate();
LocalDateTime regDate = Timestamp.valueOf(regDateStr).toLocalDateTime();
LocalDate lastMonth = regDate.toLocalDate().withDayOfMonth(1).minusMonths(1);
LocalDate startDate = lastMonth.withDayOfMonth(1);
LocalDate endDate = lastMonth.withDayOfMonth(lastMonth.lengthOfMonth());
result.setStartDate(startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
result.setEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
return result;
}
}

View File

@ -514,7 +514,7 @@ function getMberGrdChk() {
2.세금계산서 발행 완료 이후 30일간 노출
3.발행 최대 횟수 2회 -->
<c:set var="invoiceYn" value="N"/>
<c:if test="${(result.payMethod eq 'BANK' or result.payMethod eq 'VBANK')
<c:if test="${(result.payMethod eq 'BANK' or result.payMethod eq 'VBANK' or result.payMethod eq 'AFTERPAY')
and (result.confirmYn eq 'Y' and result.rcptType eq '9')}">
<c:set var="confirmDateStr" value="${fn:substring(result.confirmDate,0,10)}" />
<fmt:parseDate value="${confirmDateStr}" pattern="yyyy-MM-dd" var="confirmDateObj" />

View File

@ -0,0 +1,384 @@
<%@ 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>
<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">
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 1551-8011</p>
</div>
</div>
<div class="est_body">
<h2>거래명세서<span style="font-size:20px;font-weight:400;">(공급받는자 보관용)</span></h2>
<div class="cont1 tb_ver2" style="display:flex;">
<div style="width:calc((100% - 40px)/2);">
<p>공급받는 자</p>
<table class="est_table">
<caption>등록번호, 상호, 성명, 전화번호, 이메일 정보 제공</caption>
<colgroup>
<col style="width: 60px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>등록번호</th>
<td>
<c:choose>
<c:when test="${result.dept eq 'c'}">
<c:out value="${result.bizNo}"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
<!--(개인회원인 경우 하이픈(-) 처리)-->
</td>
</tr>
<tr>
<th style="letter-spacing:-0.69px;">상&ensp;&ensp;&ensp;&nbsp;&nbsp;호</th>
<td>
<c:choose>
<c:when test="${result.dept eq 'c'}">
<c:out value="${result.mberNm}"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th style="letter-spacing:-0.69px;">성&ensp;&ensp;&ensp;&nbsp;&nbsp;명</th>
<td>
<c:choose>
<c:when test="${result.dept eq 'c'}">
<c:out value="${result.managerNm}"/>
</c:when>
<c:otherwise>
<c:out value="${result.mberNm}"/>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th>전화번호</th>
<td>
<c:out value="${result.mbtlNum}"/>
</td>
</tr>
<tr>
<th style="letter-spacing:-0.85px;">이&ensp;메&ensp;일</th>
<td>
<c:out value="${result.email}"/>
</td>
</tr>
</tbody>
</table>
</div>
<div style="width:calc((100% - 40px)/2);">
<p>공급자</p>
<img src="/publish/images/content/stamp.png" alt="도장" class="stamp mCS_img_loaded">
<table class="est_table">
<caption>등록번호, 상호, 성명, 전화번호, 이메일 정보 제공</caption>
<colgroup>
<col style="width: 60px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>등록번호</th>
<td>653-87-00858</td>
</tr>
<tr>
<th style="letter-spacing:-0.69px;">상&ensp;&ensp;&ensp;&nbsp;&nbsp;호</th>
<td>주식회사 아이티앤</td>
</tr>
<tr>
<th style="letter-spacing:-0.69px;">성&ensp;&ensp;&ensp;&nbsp;&nbsp;명</th>
<td>유인식</td>
</tr>
<tr>
<th>전화번호</th>
<td>1551-8011</td>
</tr>
<tr>
<th style="letter-spacing:-0.85px;">이&ensp;메&ensp;일</th>
<td>help@iten.co.kr</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="cont3">
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.amt}" var="commaAmt" />
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.cash}" var="commaCash" />
<fmt:formatNumber type="number" maxFractionDigits="3" value="${result.amt - result.cash}" var="commaETC" />
<div class="est_table2_wrap">
<table class="est_table2">
<caption>작성일자, 공급가액, 세액, 비고 정보를 제공하는 표</caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th scope="col">작성일자</th>
<th scope="col">공급가액</th>
<th scope="col">세액</th>
</tr>
</thead>
<tbody>
<fmt:parseDate value="${result.regDate}" pattern="yyyy-MM-dd HH:mm:ss.S" var="parsedDate"/>
<tr>
<td><fmt:formatDate value="${parsedDate}" pattern="yyyy-MM-dd"/></td>
<td><c:out value="${commaCash}"/></td>
<td><c:out value="${commaETC}"/></td>
</tr>
</tbody>
<tfoot>
<tr>
<th>비고</th>
<td style="padding:0 0 0 20px;">
<c:choose>
<c:when test="${result.prePaymentYn eq 'N'}">
사용기간(${result.startDate} ~ ${result.endDate})
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
</tfoot>
</table>
</div>
<div class="est_table2_wrap" style="margin:20px 0 0 0;">
<table class="est_table2">
<caption>월, 일, 품목, 규격, 수량, 단가, 공급가액, 세액, 비고 정보를 제공하는 표</caption>
<colgroup>
<col style="width: 60px;">
<col style="width: 60px;">
<col style="width: auto;">
<col style="width: 60px;">
<col style="width: 60px;">
<col style="width: 60px;">
<col style="width: 100px;">
<col style="width: 60px;">
<col style="width: 70px;">
</colgroup>
<thead>
<tr>
<th scope="col">월</th>
<th scope="col">일</th>
<th scope="col">품목</th>
<th scope="col">규격</th>
<th scope="col">수량</th>
<th scope="col">단가</th>
<th scope="col">공급가액</th>
<th scope="col">세액</th>
<th scope="col">비고</th>
</tr>
</thead>
<tbody>
<tr>
<td><fmt:formatDate value="${parsedDate}" pattern="M"/></td>
<td><fmt:formatDate value="${parsedDate}" pattern="d"/></td>
<td>문자온 메시징 서비스 이용료</td>
<td></td>
<td></td>
<td></td>
<td><c:out value="${commaCash}"/></td>
<td><c:out value="${commaETC}"/></td>
<td>-</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
<!-- 후불제 -->
<!-- <tfoot>
<tr>
<th colspan="2">합계금액</th>
<th>전잔액</th>
<th colspan="2">입금액</th>
<th colspan="2">현잔액</th>
<th colspan="2" rowspan="2" style="background:#fff;vertical-align:middle;">이 금액을 [<span>청&ensp;구</span>]함</th>
</tr>
<tr>
<td style="text-align:center;" colspan="2">550,000</td>
<td style="text-align:center;">-</td>
<td style="text-align:center;" colspan="2">-</td>
<td style="text-align:center;" colspan="2">550,000</td>
</tr>
</tfoot> -->
<!-- //후불제 -->
<!-- 일반회원(선불제) -->
<tfoot>
<tr>
<th colspan="2">합계금액</th>
<th>전잔액</th>
<th colspan="2">입금액</th>
<th colspan="2">현잔액</th>
<th colspan="2" rowspan="2" style="background:#fff;vertical-align:middle;">
<c:choose>
<c:when test="${result.prePaymentYn eq 'N'}">
이 금액을 [<span>청&ensp;구</span>]함
</c:when>
<c:otherwise>
이 금액을 [<span>영&ensp;수</span>]함
</c:otherwise>
</c:choose>
</th>
</tr>
<tr>
<td style="text-align:center;" colspan="2">
<c:out value="${commaAmt}"/>
</td>
<td style="text-align:center;">-</td>
<td style="text-align:center;" colspan="2">-</td>
<td style="text-align:center;" colspan="2">
<c:out value="${commaAmt}"/>
</td>
</tr>
</tfoot>
<!-- //일반회원(선불제) -->
</table>
</div>
</div>
<!-- <div class="cont5">
<p><span>2021</span> 년&nbsp;&nbsp;<span>6</span> 월&nbsp;&nbsp;<span>17</span> 일</p>
<div>
<span></span>
<span>주식회사 아이티앤</span>
<span>유&nbsp;&nbsp;인&nbsp;&nbsp;식&nbsp;&nbsp;(인)</span>
</div>
</div> -->
</div>
<div class="est_btn_wrap">
<button type="button" class="btnType" onclick="window.print();"><i class="print_img"></i>인쇄하기</button>
</div>
</div>
</div>
<!--// 견적서 -->
</body>
</html>