초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,331 @@
<%@ page import="java.util.Date" %>
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%--
Class Name : CrmOrdrComptR.jsp
Description : CRM 주문 완료 페이지
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2025-01-20 최남식 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/views/comm/crm/Include.jsp"%>
<script>
$(document).ready(function() {
//crm 정보 조회
if ($("#mbrTyCd").val() === '01') {
fn_get_crm_info($("#leftMbrInnb").val(), $("#leftMbrDvCd").val());
} else {
fn_get_crm_info_nmbr($("#leftMbtlnb").val());
$("#nmbrMbtlnb").text(fn_format_mbtlnb($("#nmbrMbtlnb").text()));
}
fn_add_crm_menu_class("leftActInfo");
});
</script>
</head>
<body>
<%@ include file="/WEB-INF/views/comm/crm/Header.jsp"%>
<main class="main">
<%-- CRM left 공통 --%>
<%@ include file="/WEB-INF/views/comm/crm/Left.jsp"%>
<c:set var="order" value="${data.order}"/>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">주문 완료</h2>
<div class="page-title__btn-container">
</div>
</div>
<section class="content-section">
<h3 class="content-section__title">상품 정보</h3>
<form id="listForm">
<div class="table-wrapper">
<table class="table">
<caption>배송지 정보</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
<c:forEach var="goods" items="${shipping.goodsList}" varStatus="status">
<tr>
<th>상품명</th>
<td class="td-inner">
<div class="order-section__product">
<img src="<c:out value="${ cdnurl }${goods.goodsImgCours}"/>" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>" alt="<c:out value="${goods.goodsNm}"/>" width="56" height="56">
<div class="order-section__product-info">
<span class="order-section__product-productTitle"><c:out value="${goods.goodsNm}"/></span>
<span class="option-text"><span class="option-badge">옵션</span> <c:out value="${goods.optnNm}"/></span>
<c:if test="${not empty goods.inputOptnText}">
<span class="cartItem__productOption"><c:out value="${goods.inputOptnText}"/></span>
</c:if>
</div>
</div>
</td>
<th>수량</th>
<td>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${goods.ordrQy}" pattern="#,###"/></span>
</div>
</td>
<th>상품금액</th>
<td>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/></span>원
</div>
</td>
</tr>
<tr>
<th>할인금액</th>
<td>
<div class="td-inner">
(-)<span class="comma"><fmt:formatNumber value="${goods.dscntAmt}" pattern="#,###"/></span>원
</div>
</td>
<th>할인적용금액</th>
<td>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${goods.applyDscntAmt}" pattern="#,###"/></span>원
</div>
</td>
<th>적립금</th>
<td>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${goods.mlgAmt}" pattern="#,###"/></span>원
</div>
</td>
</tr>
</c:forEach>
</c:forEach>
</tbody>
</table>
</div>
</form>
</section>
<section class="content-section">
<h3 class="content-section__title">결제 정보</h3>
<form id="listForm">
<div class="table-wrapper">
<table class="table">
<caption>주문 결제 정보</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<tr>
<th>주문번호</th>
<td colspan=3>
<div class="td-inner">
<c:out value=" ${ order.ordrInnb }"/>
<span class="stone-7">
(<c:out value="${order.ordrRceptDt}"/>)
</span>
</div>
</td>
</tr>
<c:forEach var="setle" items="${data.setleList}" varStatus="status">
<tr>
<th>주문상태</th>
<td>
<div class="td-inner">
<c:out value="${setle.ordrSttusNm}"/>
</div>
</td>
<th>결제방식</th>
<td>
<div class="td-inner">
<c:out value="${setle.setleTyNm}"/>
</div>
</td>
<c:if test="${not empty setle.rcpmnyBnnkNm}">
<th>입금계좌</th>
<td>
<div class="td-inner">
<c:out value="${setle.rcpmnyBnnkNm}"/> <c:out value="${setle.rcpmnyAcntnb}"/><br>(<c:out value="${setle.rcpmnyDpstrNm}"/>)
</div>
</td>
</c:if>
</tr>
<tr>
<th>결제일시</th>
<td>
<div class="td-inner">
<c:out value="${not empty setle.setleDt ? setle.setleDt : '입금대기'}"/>
</div>
</td>
<c:if test="${setle.reqstDvCd ne '04' && not empty setle.issuSttusCd}">
<th>현금영수증</th>
<td colspan=2>
<c:choose>
<c:when test="${setle.crtnb eq '0100001234'}">
발급상태 : 미신청
</c:when>
<c:otherwise>
발급상태 : <c:out value="${setle.issuSttusNm}"/>
</c:otherwise>
</c:choose>
</td>
</c:if>
</tr>
</c:forEach>
<c:set var="total" value="${data.total}"/>
<tr>
<th>총 주문금액</th>
<td>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${total.slepric}" pattern="#,###"/></span>원
</div>
</td>
<th>할인금액</th>
<td>
<div class="td-inner">
(-)<span class="comma"><fmt:formatNumber value="${total.dscntAmt}" pattern="#,###"/></span>원
</div>
</td>
<th>배송비</th>
<td>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${total.dlvyAmt}" pattern="#,###"/></span>원
</div>
</td>
</tr>
<tr>
<th>최종 결제금액</th>
<td colspan=3>
<div class="td-inner">
<span class="comma"><fmt:formatNumber value="${total.setleAmt}" pattern="#,###"/></span>원
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
<section class="content-section">
<h3 class="content-section__title">주문자 정보</h3>
<form id="listForm">
<div class="table-wrapper">
<table class="table">
<caption>주문자 정보</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<tr>
<th>이름</th>
<td>
<div class="td-inner">
<c:out value="${order.mbrNm}"/>
</div>
</td>
<th>휴대폰번호</th>
<td>
<div class="td-inner">
<c:out value="${order.ordrrMbtlnb}"/>
</div>
</td>
<th>이메일</th>
<td>
<div class="td-inner">
<c:out value="${order.ordrrEmail}"/>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
</section>
<section class="content-section">
<h3 class="content-section__title">배송지 정보</h3>
<form id="listForm">
<div class="table-wrapper">
<table class="table">
<caption>배송지 정보</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
<tr>
<th>받는분</th>
<td colspan=3>
<div class="td-inner">
<c:out value="${shipping.recpntNm}"/>
</div>
</td>
</tr>
<tr>
<th>주소</th>
<td colspan=3>
<div class="td-inner">
<c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
<c:out value="${shipping.adres}"/>
<c:out value="${shipping.dlvylcAdresDtl}"/>
</div>
</td>
</tr>
<tr>
<th>휴대폰번호</th>
<td colspan=3>
<div class="td-inner">
<c:out value="${shipping.recpntMbtlnb}"/>
</div>
</td>
</tr>
<tr>
<th>배송 시 요청사항</th>
<td colspan=3>
<div class="td-inner">
<c:out value=" ${ shipping.dlvyMssageCn }"/>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</form>
</section>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
<%-- CRM right 공통 --%>
<%@ include file="/WEB-INF/views/comm/crm/Right.jsp"%>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,240 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%--
Class Name : MbrOrdrListInqireRForm.jsp
Description : 회원 주문 조회 jsp
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024.02.19 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<div class="table-wrapper">
<table class="table order-section vertical">
<colgroup>
<col style="width: 6%;">
<col style="width: 5%">
<col style="width: 6%;">
<col style="width: 12%;">
<col style="width: auto">
<col style="width: 6%;">
<%-- <col style="width: 6%;"> --%>
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 6%;">
<col style="width: 6%;">
</colgroup>
<thead>
<tr>
<th>선택</th>
<th>번호</th>
<th>주문일시</th>
<th>주문번호</th>
<th>주문상품</th>
<th>수(종)</th>
<%-- <th>출고</th> --%>
<th>받는분/주문자</th>
<th>결제수단/일시</th>
<th>결제금액</th>
<th>처리상태</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty resultMap.allOrdrList}">
<c:set var="totalRow" value="${resultMap.paginationInfo.totalRecordCount - ((resultMap.paginationInfo.currentPageNo -1) * resultMap.paginationInfo.recordCountPerPage) + 2}"/>
<c:forEach items="${resultMap.allOrdrList}" var="ordr" varStatus="status">
<c:set var="totalRow" value="${totalRow - 1}"/>
<c:if test="${ordr.ordrSttusCd != resultMap.allOrdrList[status.index - 1].ordrSttusCd}">
<tr class="order-section__header">
<td colspan="11" class="order-search__tab-title">
<div class="order-step__wrapper">
<div class="order-step order-status-badge <c:choose><c:when test = "${ordr.ordrSttusCd eq '15'}">recept</c:when>
<c:when test = "${ordr.ordrSttusCd eq '25'}">confirm</c:when>
<c:when test = "${ordr.ordrSttusCd eq '35'}">prep</c:when>
<c:when test = "${ordr.ordrSttusCd eq '50' || ordr.ordrSttusCd eq '55'}">export</c:when>
<c:when test = "${ordr.ordrSttusCd > 84 && ordr.ordrSttusCd < 100}">gray</c:when>
<c:when test = "${ordr.ordrSttusCd eq '60' || ordr.ordrSttusCd eq '65'}">delivery</c:when>
<c:otherwise>complete</c:otherwise></c:choose>">
<c:if test="${(ordr.ordrSttusCd > 14 && ordr.ordrSttusCd < 36) || (ordr.ordrSttusCd > 84 && ordr.ordrSttusCd < 100)}">(출고 전) </c:if>
<c:if test="${ordr.ordrSttusCd > 59 && ordr.ordrSttusCd < 76}">(출고 후) </c:if>
<em><c:out value="${ordr.ordrSttusNm}"/></em>
</div>
</div>
</td>
</tr>
</c:if>
<c:choose>
<c:when test = "${ordr.blackDv eq 'B'}">
<c:set var = "blackDv" value = "sendOut-info__reseller"/>
</c:when>
<c:when test = "${ordr.blackDv eq 'E'}">
<c:set var = "blackDv" value = "sendOut-info__reseller_erp"/>
</c:when>
<c:otherwise>
<c:set var = "blackDv" value = ""/>
</c:otherwise>
</c:choose>
<tr class="${blackDv}">
<td>
<input type="hidden" class="mbrInnb" value="<c:out value="${ordr.mbrInnb}"/>"/>
<input type="hidden" class="mbrDvCd" value="<c:out value="${ordr.mbrDvCd}"/>"/>
<div class="manage-btn-container">
<a href="javascript:void(0);" id="btnCrm" class="btn xsm gray">CRM</a>
</div>
</td>
<td><c:out value="${totalRow - 1}"/></td>
<td><c:out value="${ordr.ordrRceptDt}"/></td>
<td>
<input type="hidden" class="sopmalCd" value="<c:out value="${ordr.sopmalCd}"/>"/>
<input type="hidden" class="ordrInnb" value="<c:out value="${ordr.ordrInnb}"/>"/>
<a id="btnOrdrDtl" class="under-line blue-7" href="javascript:void(0);"><c:out value="${ordr.ordrInnb}"/></a>
</td>
<td>
<div class="order-section__product">
<div class="order-section__product-info">
<span class="order-section__product-productTitle"><c:out value="${ordr.goodsNm}"/></span>
<span class="option-text"><span class="option-badge">옵션</span> <c:out value="${ordr.optns}"/></span>
</div>
</div>
</td>
<td><c:out value="${ordr.orderCnt += '(' += ordr.itemCnt += '종)'}"/></td>
<%-- <td></td> --%>
<td>
<c:if test="${not empty ordr.recpntNm}">
<span class="gray-12"><c:out value="${ordr.recpntNm}"/></span>
<br/>
</c:if>
<c:choose>
<c:when test="${not empty ordr.mbrId}">
<span class="gray-12"><c:out value="${ordr.mbrNm}"/></span>
(<span class="fw-500 blue-7"><c:out value="${ordr.mbrId}"/></span>/<span class="fw-500 green-8"><c:out value="${ordr.gradNm}"/></span>)
<%-- <button type="button" class="mini-info-btn" data-info="info01">?</button> --%>
</c:when>
<c:otherwise>
<span class="gray-12"><c:out value="${ordr.mbrNm += '(비회원)'}"/></span>
</c:otherwise>
</c:choose>
</td>
<td class="text-right">
<c:if test="${not empty ordr.setlerNm}">
<span class="${ordr.mbrNm == ordr.setlerNm ? 'stone-8' : 'blue-7'}"><c:out value="${ordr.setlerNm}"/></span>
</c:if>
<c:if test="${not empty ordr.pgCmpnyNm}">
<c:if test="${not empty ordr.setleTyCd && ordr.setleTyCd ne '02'}">
<c:choose>
<c:when test="${'npay' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_naver"></i>
</c:when>
<c:when test="${'kcp' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_kcp"></i>
</c:when>
<c:when test="${'pos' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_pos"></i>
</c:when>
<c:when test="${'payco' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_payco"></i>
</c:when>
<c:when test="${'tosspay' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_toss"></i>
</c:when>
<c:when test="${'toss' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_toss"></i>
</c:when>
<c:when test="${'gcpay' eq ordr.pgCmpnyNm}">
<i class="icon icon_word-badge_gcpay"></i>
</c:when>
<c:otherwise>
<span class="stone-8 fw-500">${ordr.pgCmpnyNm}</span>
</c:otherwise>
</c:choose>
</c:if>
</c:if>
<c:if test="${not empty ordr.rcpmnyerNm}">
<span class="blue-7"><c:out value="${ordr.rcpmnyerNm}"/></span>
</c:if>
<c:if test="${not empty ordr.setleTyCd}">
<c:choose>
<c:when test="${'01' eq ordr.setleTyCd}"><!-- 카드 -->
<i class="icon icon_word-badge04"></i>
</c:when>
<c:when test="${'02' eq ordr.setleTyCd}"><!-- 무통장 -->
<i class="icon icon_word-badge03"></i>
</c:when>
<c:when test="${'03' eq ordr.setleTyCd}"><!-- 계좌 -->
<i class="icon icon_word-badge13"></i>
</c:when>
<c:when test="${'04' eq ordr.setleTyCd}"><!-- 가상계좌 -->
<i class="icon icon_word-badge06"></i>
</c:when>
<c:when test="${'05' eq ordr.setleTyCd}"><!-- 가상계좌 에스크로 -->
<i class="icon icon_word-badge07"></i>
</c:when>
<c:when test="${'06' eq ordr.setleTyCd}"><!-- 가상계좌에스크로 -->
<i class="icon icon_word-badge07"></i>
</c:when>
<c:when test="${'07' eq ordr.setleTyCd}"><!-- 핸드폰 -->
<i class="icon icon_word-badge05"></i>
</c:when>
<c:when test="${'08' eq ordr.setleTyCd}"><!-- 마일리지 -->
<i class="icon icon_word-badge12"></i>
</c:when>
<c:when test="${'09' eq ordr.setleTyCd}"><!-- 포스 -->
<i class="icon icon_word-badge_pos"></i>
</c:when>
<c:when test="${'10' eq ordr.setleTyCd}"><!-- 페이코 -->
<i class="icon icon_word-badge_payco"></i>
</c:when>
<c:when test="${'11' eq ordr.setleTyCd}"><!-- 복합 -->
<i class="icon icon_word-badge14"></i>
</c:when>
<c:when test="${'12' eq ordr.setleTyCd}"><!-- 충전식마일리지 -->
<i class="icon icon_word-badge16"></i>
</c:when>
</c:choose>
</c:if>
<c:if test="${not empty ordr.bnnkNm}">
<span class="stone-8 fw-500"><c:out value="${ordr.bnnkNm}"/></span>
</c:if>
<c:if test="${not empty ordr.setleDt}">
<br/><span class="gray-12"><c:out value="${ordr.setleDt}"/></span>
</c:if>
</td>
<td>${ordr.setleAmt}</td>
<td><c:out value="${ordr.ordrSttusNm}"/></td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</section>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_get_ordr_list"/>
</div>
</html>

View File

@@ -0,0 +1,414 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : MbrOrdrListInqireRForm.jsp
Description : 회원 주문 조회 폼 jsp
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2024.02.19 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/views/comm/crm/Include.jsp"%>
</head>
<script>
$(document).ready(function() {
fn_add_crm_menu_class("leftOrdr");
$('#btnResetForm').trigger('click');
//crm 정보 조회
if ($("#mbrTyCd").val() === '01') {
fn_get_crm_info($("#leftMbrInnb").val(), $("#leftMbrDvCd").val());
} else {
fn_get_crm_info_nmbr($("#leftMbtlnb").val(),$("#leftOrdrInnb").val());
let txt = '';
if(!fn_is_empty($("#leftMbrNm").val())){
txt = $("#leftMbrNm").val()+"("+fn_format_mbtlnb($("#leftMbtlnb").val())+")";
}else{
txt ="비회원 ("+fn_format_mbtlnb($("#leftMbtlnb").val())+")";
}
$("#nmbrMbr").text(txt);
}
fn_get_ordr_list(1);
});
/* 전체주문 목록 조회 */
const fn_get_ordr_list = function(pageIndex) {
$('#pageIndex').val(pageIndex);
let data = $('#condForm').serialize()+"&mbrTyCd="+$("#mbrTyCd").val();
$.ajax({
type: 'POST',
url: '<c:url value="/crm/ordr/selectMbrOrdrListInqire"/>',
data: data,
success: function (html) {
$('#pageDiv').html(html);
}
});
}
/*
* 검색조건 > 날짜 구간 버튼 클릭 이벤트
*/
$(document).on('click', '.dateRange-btn', function() {
const date = $(this).attr('id');
if ('allDays' === date) {
$('#srchStartDate, #srchEndDate').val('');
$('#srchDatePeriod').val(date);
return false;
}
fn_set_date('srchStartDate', 'srchEndDate', 'srchEndDate', date);
$('#srchDatePeriod').val(date);
$(this).closest('div').find('.dateRange-btn').removeClass('selected')
$(this).addClass('selected')
return false;
});
/*
* 검색조건 > 주문상태 전체 체크박스 클릭 이벤트
*/
$(document).on('click', '.check_all_setle', function() {
let checkbox = $(this).closest('td').find('input[name="setleMthCds"]');
$(checkbox).prop('checked', false);
$(checkbox).prop('checked', $(this).is(':checked'));
});
/*
* 검색조건 > 결제유형 체크박스 클릭 이벤트
*/
$(document).on('change', '.check_setle_mth_cd', function() {
let td = $(this).closest('td');
const checboxCnt = $(td).find('input[name="setleMthCds"]').length;
const checedCnt = $(td).find('input[name="setleMthCds"]:checked').length;
$(td).find('.check_all_setle').prop('checked', checboxCnt === checedCnt);
});
/*
* 검색조건 > 결제유형 전체 체크박스 클릭 이벤트
*/
$(document).on('click', '.check_all_item', function() {
let checkbox = $(this).closest('td').find('input[name="srchOrdrSttusCds"]');
$(checkbox).prop('checked', false);
$(checkbox).prop('checked', $(this).is(':checked'));
});
/*
* 검색조건 > 주문상태 체크박스 클릭 이벤트
*/
$(document).on('change', '.check_ordr_sttus_cd', function() {
let td = $(this).closest('td');
const checboxCnt = $(td).find('input[name="srchOrdrSttusCds"]').length;
const checedCnt = $(td).find('input[name="srchOrdrSttusCds"]:checked').length;
$(td).find('.check_all_item').prop('checked', checboxCnt === checedCnt);
});
/*
* 검색조건 > 초기화 버튼 클릭 이벤트
*/
$(document).on('click', '#btnResetForm', function() {
fn_reset_form('search-section');
$('#7D').trigger("click"); // 날짜 설정
$('#srchwrdDv option:eq(0)').prop('selected', true);
$('#srchwrdDv').niceSelect('update');
$('#srchDateDv option:eq(0)').prop('selected', true);
$('#srchDateDv').niceSelect('update');
//$('input[name="srchOrdrSttusCds"][value="15"]').prop('checked', true);
//$('input[name="srchOrdrSttusCds"][value="25"]').prop('checked', true);
});
/*
* 검색조건 > 검색 버튼 선택 이벤트
*/
$(document).on('click', '#btnSearch', function() {
fn_get_ordr_list(1);
});
/*
* 주문번호 선택 이벤트
*/
$(document).on('click', '#btnOrdrDtl', function() {
const td = $(this).closest('td');
const sopmalCd = $(td).find('.sopmalCd').val();
const ordrInnb = $(td).find('.ordrInnb').val();
let form = $('<form></form>');
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', value: sopmalCd}));
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', value: ordrInnb}));
$(form).attr('target', '_blank');
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/mngr/ordr/ordrmngr/selectOrdrDtlInqire"/>');
$(form).appendTo('body');
$(form).submit();
$(form).remove();
});
</script>
<body>
<%@ include file="/WEB-INF/views/comm/crm/Header.jsp"%>
<main class="main">
<%@ include file="/WEB-INF/views/comm/crm/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">주문</h2>
<div class="page-title__btn-container">
</div>
</div>
<form id="condForm">
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${cond.sopmalCd}"/>
<input type="hidden" id="totalRecordCount" name="totalRecordCount" value=""/>
<input type="hidden" id="totalPageCount" name="totalPageCount" value=""/>
<input type="hidden" id="currentPageNo" name="currentPageNo" value=""/>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value="${ cond.paramVO.pageIndex }"/>"/>
<input type="hidden" id="mbrInnb" name="mbrInnb" value="${ cond.paramVO.mbrInnb }" />
<input type="hidden" id="mbtlnb" name="mbtlnb" value="${ cond.paramVO.mbtlnb}" />
<section>
<div class="content-section">
<p style="margin-bottom: 5px;">* 블랙리스트는 자사몰은 적색, 물류센터는 녹색으로 표시됩니다.</p>
<div class="table-wrapper">
<table class="table">
<colgroup>
<col style="width: 12%;">
<col style="width: auto;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<tr>
<th>검색어</th>
<td colspan="4">
<div class="td-inner">
<div class="select-box">
<select title="검색어 구분" name="srchwrdDv" id="srchwrdDv">
<option value="ordrInnb">주문번호</option>
<option value="ordrrTelnb">주문자휴대전화</option>
<option value="naverPayOrdrInnb">네이버페이주문번호</option>
<option value="kakaoPayOrdrInnb">카카오페이주문번호</option>
<option value="ordrrNm">주문자명</option>
<option value="rcpmnyerNm">입금자명</option>
<option value="recpntNm">받는자명</option>
<option value="recpntMbtlnb">받는자휴대전화번호</option>
<option value="goodsNm">상품명</option>
<option value="goodsInnb">상품번호</option>
</select>
</div>
<input class="input-text xl" type="text" name="srchwrd" id="srchwrd" title="검색어" placeholder="검색어를 입력해 주십시요."
value="<c:out value="${cnsltVO.ordrInnb}"/>">
</div>
</td>
</tr>
<tr class="search-hide">
<th>날짜</th>
<td colspan="2">
<div class="td-inner">
<div class="select-box">
<select name="srchDateDv" id="srchDateDv" title="일자구분" class="init">
<option value="ordrDt" selected>주문일</option>
<option value="rcpmnyDt">입금일</option>
</select>
</div>
<div class="input-container">
<input type="text" name="srchStartDate" id="srchStartDate" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="srchEndDate" id="srchEndDate" class="datepicker" title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
<input type="hidden" id="srchDatePeriod" name="srchDatePeriod" value=""/>
</div>
<div class="dateRange-btnContainer">
<button class="dateRange-btn" id="1D">어제</button>
<button class="dateRange-btn" id="0">오늘</button>
<button class="dateRange-btn" id="3D">3일간</button>
<button class="dateRange-btn" id="7D">일주일</button>
<button class="dateRange-btn" id="1M">1개월</button>
<button class="dateRange-btn" id="3M">3개월</button>
<button class="dateRange-btn" id="6M">6개월</button>
<button class="dateRange-btn" id="1Y">1년</button>
<button class="dateRange-btn" id="allDays">전체</button>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문상태 (출고전)</th>
<td colspan="4">
<div class="td-inner">
<div class="b-checkbox-container order-status-badge-container">
<c:forEach items="${cond.ordrSttusCdList}" var="ordrSttusCd" varStatus="status">
<c:if test="${(ordrSttusCd.cd > 14 && ordrSttusCd.cd < 36) || (ordrSttusCd.cd > 84 && ordrSttusCd.cd < 100)}">
<label class="b-checkbox checkbox">
<input type="checkbox" name="srchOrdrSttusCds" class="check_ordr_sttus_cd" value="${ordrSttusCd.cd}"/>
<span class="check"></span>
<span class="control-label">
<c:choose>
<c:when test="${ordrSttusCd.cd eq 15 }">
<span class="order-status-badge recept">${ordrSttusCd.cdNm}</span>
</c:when>
<c:when test="${ordrSttusCd.cd eq 25 }">
<span class="order-status-badge confirm">${ordrSttusCd.cdNm}</span>
</c:when>
<c:when test="${ordrSttusCd.cd eq 35 }">
<span class="order-status-badge prep">${ordrSttusCd.cdNm}</span>
</c:when>
<c:otherwise>
<span class="order-status-badge gray">${ordrSttusCd.cdNm}</span>
</c:otherwise>
</c:choose>
</span>
</label>
</c:if>
</c:forEach>
<label class="b-checkbox checkbox">
<input type="checkbox" class="check_all_item">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>주문상태 (출고후)</th>
<td colspan="4">
<div class="td-inner">
<div class="b-checkbox-container order-status-badge-container">
<c:forEach items="${cond.ordrSttusCdList}" var="ordrSttusCd" varStatus="status">
<c:if test="${ordrSttusCd.cd > 49 && ordrSttusCd.cd < 76}">
<label class="b-checkbox checkbox">
<input type="checkbox" name="srchOrdrSttusCds" class="check_ordr_sttus_cd" value="${ordrSttusCd.cd}"/>
<span class="check"></span>
<span class="control-label">
<c:choose>
<c:when test="${ordrSttusCd.cd eq 50 || ordrSttusCd.cd eq 55}">
<span class="order-status-badge export">${ordrSttusCd.cdNm}</span>
</c:when>
<c:when test="${ordrSttusCd.cd eq 60 || ordrSttusCd.cd eq 65}">
<span class="order-status-badge delivery">${ordrSttusCd.cdNm}</span>
</c:when>
<c:when test="${ordrSttusCd.cd eq 70 || ordrSttusCd.cd eq 75}">
<span class="order-status-badge complete">${ordrSttusCd.cdNm}</span>
</c:when>
</c:choose>
</span>
</label>
</c:if>
</c:forEach>
<label class="b-checkbox checkbox">
<input type="checkbox" class="check_all_item">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
</div>
</div>
</td>
</tr>
<tr>
<th>주문결제</th>
<td colspan="4">
<div class="td-inner">
<div class="b-checkbox-container">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" class="check_all_setle">
<span class="check"></span>
<span class="control-label">모든 결제수단</span>
</label>
</div>
<div class="b-checkbox-container">
<c:forEach items="${cond.setleMthList}" var="setleMth" varStatus="status">
<label class="b-checkbox checkbox">
<input type="checkbox" name="setleMthCds" class="check_setle_mth_cd" value="${setleMth.cd}">
<span class="check"></span>
<span class="control-label">${setleMth.cdNm}</span>
</label>
</c:forEach>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type="button" class="btn outline" id="btnResetForm">초기화</button>
<button type="button" class="btn primary" id="btnSearch">검색</button>
</div>
<div class="right"></div>
</div>
</div>
</section>
</form>
<!-- // 검색 끝 -->
<div id = "pageDiv">
</div>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
<%@ include file="/WEB-INF/views/comm/crm/Right.jsp"%>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,189 @@
<%@ page import="java.util.Date" %>
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%--
Class Name : .jsp
Description : 반품/환불 목록조회 화면
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-01-30 추지훈 최초 생성
--%>
<script>
$(document).ready(function() {
fn_set_date();
});
</script>
<section class="content-section">
<div class="form-control-container">
<div class="left">
<div class="search-number">
<span class="search-number__text">총 <strong><c:out value="${ resultMap.paginationInfo.totalRecordCount }"/></strong>건</span>
</div>
</div>
<div class="center">
</div>
<div class="right">
<div class="select-box">
<select title="페이지당 출력될 목록건수" name = "pageUnit" id ="pageUnit" onchange = "fn_select_order_refund_list(1); return false;">
<c:forEach items="${ resultMap.paginationInfo.pageUnitArr }" var="pageUnit" varStatus="pageUnitStatus">
<option value="<c:out value="${ pageUnit }"/>" <c:if test="${ resultMap.paginationInfo.recordCountPerPage eq pageUnit}">selected="selected"</c:if>><c:out value="${ pageUnit }"/>개씩</option>
</c:forEach>
</select>
</div>
</div>
</div>
<hr class="spacing">
<div class="table-wrapper">
<table class="table order-section vertical">
<caption>해당 테이블에 대한 설명</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: 6%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 5%;">
<col style="width: 5%;">
<col style="width: auto;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 6%;">
<col style="width: 6%;">
</colgroup>
<thead>
<tr>
<th rowspan="2">번호</th>
<th>접수일시</th>
<th rowspan="2">주문번호</th>
<th rowspan="2">결제</th>
<th rowspan="2">종류</th>
<th rowspan="2">사유</th>
<th rowspan="2">회수수량<br>/주문수량</th>
<th rowspan="2">환불방법</th>
<th rowspan="2">환불금액</th>
<th>반품처리완료일시</th>
<th colspan="2">처리상태</th>
</tr>
<tr>
<th>반품/환불번호</th>
<th>환불처리완료일시</th>
<th>반품</th>
<th>환불</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test = "${not empty resultMap.resultList}">
<c:forEach var = "refund" items = "${resultMap.resultList}">
<tr>
<td><c:out value="${resultMap.paginationInfo.totalRecordCount - refund.rnum+1 }" /></td>
<td>
<span><c:out value = "${refund.refundReqstDt}"/></span>
<br>
<button type="button" onclick="fn_move_dtlupdt('<c:out value = "${ refund.orderRefundInnb }"/>');" class="blue-6 fw-500" href=""><c:out value = "${ refund.orderRefundInnb }"/></button>
</td>
<td>
<button class="blue-6 fw-500" type="button" onclick="fn_go_ordr_dtl('<c:out value = "${refund.ordrInnb}"/>');" ><c:out value = "${refund.ordrInnb}"/></button>
</td>
<td>
<c:choose>
<c:when test="${ refund.setleDyCd eq '05' }">
<i class="icon icon_word-badge07" ></i><!-- 에스크로 -->
<i class="icon icon_word-badge06" ></i><!-- 가상계좌 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '06' }">
<i class="icon icon_word-badge07" ></i><!-- 에스크로 -->
<i class="icon icon_word-badge13" ></i><!-- 계좌 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '01' }">
<i class="icon icon_word-badge04" ></i><!-- 카드 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '02' }">
<i class="icon icon_word-badge03" ></i><!-- 무통장 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '03' }">
<i class="icon icon_word-badge13" ></i><!-- 계좌 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '04' }">
<i class="icon icon_word-badge06" ></i><!-- 가상계좌 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '07' }">
<i class="icon icon_word-badge05" ></i><!-- 핸드폰 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '08' }">
<i class="icon icon_word-badge12" ></i><!-- 마일리지 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '09' }">
<i class="icon icon_word-badge_pos" ></i><!-- 포스 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '10' }">
<i class="icon icon_word-badge_payco" ></i><!-- 페이코 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '11' }">
<i class="icon icon_word-badge14" ></i><!-- 복합 -->
</c:when>
<c:when test="${ refund.setleDyCd eq '12' }">
<i class="icon icon_word-badge16" ></i><!-- 충전식마일리지 -->
</c:when>
</c:choose>
</td>
<td><c:out value = "${refund.refundTyCdNm}"/></td>
<td>
<c:choose>
<c:when test="${ not empty refund.returnResnCn }">
<c:out value = "${ refund.refundResnCn }"/>
</c:when>
<c:otherwise>
<c:out value = "${ refund.returnResnCnNm }"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value = "${ refund.refundQy }"/>/<c:out value = "${ refund.orderQy }"/>(<c:out value = "${ refund.orderGoodsCnt }"/>종)</td>
<td>
<c:out value = "${ refund.refundMthCdNm }"/>
</td>
<td>
<span class="comma">
<c:out value = "${ refund.refundAmt }"/>
</span>
</td>
<td>
<c:out value = "${ refund.refundComptDt }"/>
<br>
<c:out value = "${ refund.returnComptDt }"/>
</td>
<td><c:out value = "${ refund.returnProcsSttusCdNm }"/></td>
<td><c:out value = "${ refund.refundProcsSttusCdNm }"/></td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</section>
<div class="pagination__container">
<ui:pagination paginationInfo="${resultMap.paginationInfo}" type="image" jsFunction="fn_select_order_refund_list" />
</div>

View File

@@ -0,0 +1,313 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/views/comm/crm/Include.jsp"%>
<script>
$(document).ready(function() {
$('.dateRange-btn').filter('#sevenDays').trigger('click');
fn_display_start();
$('.dateRange-btn').filter('#sevenDays').trigger('click');
//crm 정보 조회
if ($("#mbrTyCd").val() === '01') {
fn_get_crm_info($("#leftMbrInnb").val(), $("#leftMbrDvCd").val());
} else {
fn_get_crm_info_nmbr($("#leftMbtlnb").val(),$("#leftOrdrInnb").val());
let txt = '';
if(!fn_is_empty($("#leftMbrNm").val())){
txt = $("#leftMbrNm").val()+"("+fn_format_mbtlnb($("#leftMbtlnb").val())+")";
}else{
txt ="비회원 ("+fn_format_mbtlnb($("#leftMbtlnb").val())+")";
}
$("#nmbrMbr").text(txt);
}
fn_add_crm_menu_class("leftRefund");
});
/********************************************************
* 시작 화면 제어 함수
* ******************************************************/
const fn_display_start = function() {
fn_set_date('srchStartDate','srchEndDate','srchEndDate');
$('#listForm').on('keydown', function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$('#searchBtn').trigger("click");
}
});
let pageIndex = '<c:out value="${ resultMap.paramVO.pageIndex }"/>';
let pageUnit = '<c:out value="${ resultMap.paramVO.pageUnit }"/>';
fn_select_order_refund_list(pageIndex, pageUnit);
$('#allDays').on('click', function() {
$('#srchStartDate, #srchEndDate').val('');
});
}
/******************************************************
* 반품 환물 목록 조회
*******************************************************/
const fn_select_order_refund_list = function(pageIndex, pageUnit) {
let dataStr;
if(!pageIndex) {
$('#pageIndex').val(1);
} else {
$('#pageIndex').val(pageIndex);
}
if(!pageUnit) {
dataStr = $('#listForm').serialize();
} else {
if($('#pageUnit').length){
$('#pageUnit').val(pageUnit);
dataStr = $('#listForm').serialize();
} else {
dataStr = $('#listForm').serialize()+'&pageUnit='+pageUnit;
}
}
dataStr = dataStr+"&mbrTyCd="+$("#mbrTyCd").val();
$('#pageIndex').val(pageIndex);
$.ajax({
type: "post",
url : "<c:url value="/crm/ordr/selectMbrRtngudRefndDtlsInqire"/>",
data : dataStr,
success:function(resultHtml) {
$('#pageDiv').html(resultHtml);
$('#pageUnit').niceSelect();
}
});
};
/****************************************************
* 반품환불 상세 수정폼 이동
*****************************************************/
const fn_move_dtlupdt = function(orderReInnb, ordrInnb) {
$('#listForm').attr('action', '<c:url value="/mngr/ordr/refnd/selectRtngudRefndDtlInqire"/>');
$('#listForm').attr('method', 'post');
$('#orderReInnb').val(orderReInnb);
$('#ordrInnb').val(ordrInnb);
$('#listForm').submit();
}
/* 주문상세 이동 */
const fn_go_ordr_dtl = function(ordrInnb) {
var form = $('#listForm')
$(form).find('input[name="ordrInnb"]').remove();
$(form).append($('<input/>', {type:'hidden', name:'ordrInnb', id:'ordrInnb', value:ordrInnb}));
$(form).attr('target', '_blank');
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/mngr/ordr/ordrmngr/selectOrdrDtlInqire"/>');
$(form).submit();
}
/************************************************
* TODO : 관련번호 상세페이지 이동
*************************************************/
const fn_move_dtlpage = function() {
alert("TODO : 해당 번호 상세 페이지로 이동");
};
</script>
</head>
<body>
<%@ include file="/WEB-INF/views/comm/crm/Header.jsp"%>
<main class="main">
<%@ include file="/WEB-INF/views/comm/crm/Left.jsp"%>
<div class="content">
<div class="content__inner">
<button class="side-nav__fold"><span class="visually-hidden">좌측메뉴 펼치기/닫기</span></button>
<div class="page-title">
<h2 class="page-title__title">반품/환불 조회</h2>
<div class="page-title__btn-container">
</div>
</div>
<form id="listForm" name="listForm" method="post">
<input type="hidden" id="orderReInnb" name="orderReInnb"/>
<input type="hidden" id="pageIndex" name="pageIndex" value="<c:out value="${ resultMap.paramVO.pageIndex }"/>"/>
<input type="hidden" id="recordCountPerPage" name="recordCountPerPage" value="<c:out value="${ resultMap.paramVO.recordCountPerPage }"/> "/>
<input type="hidden" id="sopmalCd" name="sopmalCd" value="<c:out value="${ resultMap.paramVO.sopmalCd }"/>"/>
<input type="hidden" id="mbrInnb" name="mbrInnb" value="<c:out value="${cnsltVO.mbrInnb}"/>" />
<input type="hidden" id="mbtlnb" name="mbtlnb" value="${ cnsltVO.mbtlnb}" />
<section class="content-section" id="crmRefundSec">
<div class="table-wrapper">
<table class="table">
<caption>해당 테이블에 대한 설명</caption>
<colgroup>
<col style="width: 12%;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th>검색어</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명" id = "srchDv" name="srchDv">
<option value="REINNB">반품/환불번호</option>
<option value="ORDERINNB" <c:if test = "${not empty cnsltVO.ordrInnb}">selected</c:if>>주문번호</option>
</select>
</div>
<input class="input-text xl" type="text" title="해당 인풋에 대한 설명"
name="srchStr"
value="<c:out value="${cnsltVO.ordrInnb}"/>"
placeholder="">
</div>
</td>
</tr>
<tr class="search-hide">
<th>날짜</th>
<td>
<div class="td-inner">
<div class="select-box">
<select id="srchDtDv" name="srchDtDv" title="해당 셀렉트에 대한 설명">
<option value="refundReqestDt">환불신청일</option>
<option value="refundComptDt">환불완료일</option>
<option value="returnReqestDt">반품신청일</option>
<option value="returnComptDt">반품완료일</option>
</select>
</div>
<div class="input-container">
<input type="text" name="srchStartDate" id="srchStartDate" class="datepicker" title="시작 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
<span class="tilde">~</span>
<input type="text" name="srchEndDate" id="srchEndDate" class="datepicker" title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
</div>
<div class="dateRange-btnContainer">
<button type="button" class="dateRange-btn" id="yesterday" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','1D')">어제</button>
<button type="button" class="dateRange-btn" id="today" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','0')">오늘</button>
<button type="button" class="dateRange-btn" id="threeDays" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','3D')">3일간</button>
<button type="button" class="dateRange-btn" id="sevenDays" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','7D')">일주일</button>
<button type="button" class="dateRange-btn" id="oneMonth" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','1M')">1개월</button>
<button type="button" class="dateRange-btn" id="threeMonth" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','3M')">3개월</button>
<button type="button" class="dateRange-btn" id="sixMonth" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','6M')">6개월</button>
<button type="button" class="dateRange-btn" id="oneYear" onclick="fn_set_date('srchStartDate','srchEndDate','srchEndDate','1Y')">1년</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>반품처리상태</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" id="returnProcsSttusAll" value="">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach var = "rtngud" items = "${resultMap.rtngudProcsSttus}">
<label class="b-checkbox checkbox">
<input class="returnProcsSttus" type="checkbox" name="srchReturnProcsStuusCd" value="${rtngud.cd}" onclick="fn_ctr_pCheckbox('#returnProcsSttusAll', '.returnProcsSttus')"
<c:if test="${ fn:contains(resultMap.paramVO.srchReturnProcsStuusCd, rtngud.cd) }">checked="checked"</c:if>>
<span class="check"></span>
<span class="control-label">${rtngud.cdNm}</span>
</label>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>환불처리상태</th>
<td>
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" id="refundProcsSttusAll" value="">
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach var = "refund" items = "${resultMap.refndProcsSttus}">
<label class="b-checkbox checkbox">
<input class="refundProcsSttus" type="checkbox" name="srchRefundProcsSttusCd" value="${refund.cd}" onclick="fn_ctr_pCheckbox('#refundProcsSttusAll', '.refundProcsSttus');"
<c:if test="${ fn:contains(resultMap.paramVO.srchRefundProcsSttusCd, refund.cd) }">checked="checked"</c:if>>
<span class="check"></span>
<span class="control-label">${refund.cdNm}</span>
</label>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr class="search-hide">
<th>회수방법(반품)</th>
<td>
<div class="td-inner">
<div class="select-box">
<select title="해당 셀렉트에 대한 설명" name="srchReturnMthCd">
<option value="">전체</option>
<c:forEach var="cdList" items="${ resultMap.returnMtcCdList }" varStatus="status">
<c:choose>
<c:when test="${ cdList.cd eq resultMap.paramVO.srchReturnMthCd}">
<option value="<c:out value="${ cdList.cd }"/>" selected="selected"><c:out value="${ cdList.cdNm }"/></option>
</c:when>
<c:otherwise>
<option value="<c:out value="${ cdList.cd }"/>"><c:out value="${ cdList.cdNm }"/></option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type="searchBtn" class="btn outline" onclick="fn_reset_form('crmRefundSec'); return false;">초기화</button>
<button type="searchBtn" class="btn primary" id="searchBtn" onclick="fn_select_order_refund_list(1); return false;">검색</button>
</div>
<div class="right">
<button class="btn outline search-detail">상세검색</button>
</div>
</div>
</section>
<!-- // 검색 끝 -->
<div id = "pageDiv">
</div>
</form>
<button class="scroll-to-top"><span class="visually-hidden">위로가기</span></button>
</div>
<%-- CRM right 공통 --%>
<%@ include file="/WEB-INF/views/comm/crm/Right.jsp"%>
</div>
</main>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,232 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<div id="product-select-pop" class="modal" style="max-width: 1320px;">
<div class="modal-header">
<h4>상품 검색</h4>
</div>
<div class="modal-content" style="height: 700px;">
<div class="content-section">
<form id="goodsCondForm">
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${data.sopmalCd}"/>
<input type="hidden" id="totalRecordCount" name="totalRecordCount" value=""/>
<input type="hidden" id="totalPageCount" name="totalPageCount" value=""/>
<input type="hidden" id="currentPageNo" name="currentPageNo" value=""/>
<input type="hidden" id="pageIndex" name="pageIndex" value=""/>
<div class="table-wrapper">
<table class="table">
<caption>상품 검색</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 40%;">
<col style="width: 10%;">
<col style="width: 40%;">
</colgroup>
<tbody>
<tr>
<th>카테고리</th>
<td colspan="3">
<div class="td-inner">
<div class="input-container gap-4">
<div class="select-box">
<select id="ctgryDepth1" class="ctgry" title="1차 카테고리">
<option value="">1차 카테고리</option>
<c:forEach items="${data.goodsCategoryList}" var="goodsCategory" varStatus="status">
<option value="${goodsCategory.ctgryId}">${goodsCategory.ctgryNm}</option>
</c:forEach>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth2" class="ctgry" title="2차 카테고리">
<option value="">2차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth3" class="ctgry" title="3차 카테고리">
<option value="">3차 카테고리</option>
</select>
</div>
<div class="select-box">
<select id="ctgryDepth4" class="ctgry" title="4차 카테고리">
<option value="">4차 카테고리</option>
</select>
</div>
<input type="hidden" id="ctgryId" name="ctgryId" value=""/>
</div>
</div>
</td>
</tr>
<tr>
<th>노출</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="expsrCd0" name="expsrCd" value="">
<label for="expsrCd0">전체</label>
</div>
<c:forEach items="${data.expsrCdList}" var="expsrCd" varStatus="status">
<div class="custom-radio">
<input type="radio" id="expsrCd${status.count}" name="expsrCd" value="${expsrCd.cd}" <c:if test="${status.index == 0}">checked</c:if> >
<label for="expsrCd${status.count}">${expsrCd.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
<th>가격</th>
<td>
<div class="td-inner">
<div class="select-box">
<select name="pricDv" title="가격 구분">
<option value="cnsmrpric">정가</option>
<option value="slepric">판매가</option>
</select>
</div>
<div class="input-container">
<input type="text" name="startPric" class="input-text sm number right number-only" maxlength="10" title="가격 시작">
<span class="input-unit-text">원</span>
<span class="tilde">~</span>
<input type="text" name="endPric" class="input-text sm number right number-only" maxlength="10" title="가격 조율">
<span class="input-unit-text">원</span>
</div>
</div>
</td>
</tr>
<tr>
<th>판매상태</th>
<td colspan="3">
<div class="td-inner">
<div class="b-checkbox-container">
<label class="b-checkbox checkbox check-all">
<input type="checkbox" name="goodsDftinfoSttus" value="" >
<span class="check"></span>
<span class="control-label">전체</span>
</label>
<c:forEach items="${data.goodsDftinfoSttusList}" var="goodsDftinfoSttus" varStatus="status">
<label class="b-checkbox checkbox">
<input type="checkbox" name="goodsDftinfoSttus" class="goodsDftinfoSttus" value="${goodsDftinfoSttus.cd}" <c:if test="${goodsDftinfoSttus.cd eq '01' }">checked="checked"</c:if> />
<span class="check"></span>
<span class="control-label">${goodsDftinfoSttus.cdNm}</span>
</label>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>날짜</th>
<td colspan="3">
<div class="td-inner">
<div class="select-box">
<select name="dateDv" title="날짜 구분">
<option value="regist">등록일</option>
<option value="updt">수정일</option>
</select>
</div>
<div class="input-container">
<input type="text" name="startDate" id="startDate" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="endDate" id="endDate" class="datepicker" title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
<input type="hidden" id="datePeriod" name="datePeriod" value=""/>
</div>
<div class="dateRange-btnContainer">
<button type="button" class="dateRange-btn" id="1D" >어제</button>
<button type="button" class="dateRange-btn" id="0">오늘</button>
<button type="button" class="dateRange-btn" id="3D">3일간</button>
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn" id="6M">6개월</button>
<button type="button" class="dateRange-btn" id="1Y">1년</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>재고에 따른 판매</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" id="goodsDftinfoInvntryPolicy0" name="goodsDftinfoInvntryPolicy" value="" checked>
<label for="goodsDftinfoInvntryPolicy0">전체</label>
</div>
<c:forEach items="${data.goodsDftinfoInvntryPolicyList}" var="goodsDftinfoInvntryPolicy" varStatus="status">
<div class="custom-radio">
<input type="radio" id="goodsDftinfoInvntryPolicy${status.count}" name="goodsDftinfoInvntryPolicy" value="${goodsDftinfoInvntryPolicy.cd}">
<label for="goodsDftinfoInvntryPolicy${status.count}">${goodsDftinfoInvntryPolicy.cdNm}</label>
</div>
</c:forEach>
</div>
</div>
</td>
</tr>
<tr>
<th>검색어</th>
<td colspan="3">
<div class="td-inner">
<input type="text" name="kwrd" class="input-text full" title="검색어" placeholder="상품명, 상품설명, 상품코드, 키워드, 간략설명">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type="button" id="initGoodsCond" class="btn outline">초기화</button>
<button type="button" id="searchGoods" class="btn primary">검색</button>
</div>
<div class="right"></div>
</div>
</form>
</div>
<div id="pageDiv"></div>
<div class="content-section">
<div class="table-wrapper">
<form id="choiceGoodsForm">
<table class="table vertical">
<caption>선택 상품</caption>
<colgroup>
<col style="width: auto;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
</colgroup>
<thead>
<tr>
<th>주문상품</th>
<th>수량</th>
<th>상품금액</th>
<th>할인</th>
<th>할인가격</th>
<th>적립</th>
<th>삭제</th>
</tr>
</thead>
<tbody id="choiceGoods">
<tr id="nodata">
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
<div class="modal-footer">
<a href="javascript:void(0);" rel="modal:close" class="btn outline">닫기</a>
<button type="button" id="applyGoods" class="btn primary">적용</button>
</div>
<div id="option-select-pop-div"></div>
</div>
</div>

View File

@@ -0,0 +1,86 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<div class="content-section">
<div class="table-wrapper">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<table class="table vertical">
<caption>상품목록</caption>
<!-- 각 열 width 설정 -->
<colgroup>
<col style="width: auto;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 8%;">
</colgroup>
<thead>
<tr>
<th>상품명</th>
<th>정가</th>
<th>할인가</th>
<th>재고/가용</th>
<th>상태</th>
<th>노출</th>
<th>선택</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty data.goodsList}">
<c:forEach items="${data.goodsList}" var="goods" varStatus="status">
<tr>
<td>
<div class="order-section__product">
<a href="javascript:void(0);">
<img src="${cdnurl}${goods.goodsImgCours}" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'" alt="${goods.goodsNm}" width="56" height="56">
</a>
<div class="order-section__product-info">
<a href="javascript:void(0);" class="order-section__product-productTitle">${goods.goodsNm}</a>
<span class="option-text">
<span class="option-badge">옵션</span> ${goods.optn}
</span>
</div>
</div>
<input type="hidden" class="goodsInnb" value="${goods.goodsInnb}"/>
<input type="hidden" class="goodsOptnInnb" value=""/>
<input type="hidden" class="optnTy" value="${goods.optnTy}"/>
<input type="hidden" class="goodsNm" value="${goods.goodsNm}"/>
<input type="hidden" class="qy" value="1"/>
<input type="hidden" class="inputOptn" value="${goods.inputOptn}"/>
<input type="hidden" class="goodsSttusCd" value="${goods.goodsSttusCd}"/>
</td>
<td><span class="comma">${goods.cnsmrpric}</span></td>
<td><span class="comma">${goods.slepric}</span></td>
<td>${goods.invntryQy}/${goods.ableQy}</td>
<td>${goods.goodsSttusNm}</td>
<td>
<span class="${'01' eq goods.goodsExpsr ? 'blue-7': ''}">${goods.expsrNm}</span>
</td>
<td>
<div class="manage-btn-container">
<a href="javascript:void(0);" onclick="fn_go_goods_optn_choice_popup(this);" class="btn xsm primary outline">선택</a>
</div>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<div class="pagination__container">
<ui:pagination paginationInfo="${data.paginationInfo}" type="image" jsFunction="fn_get_goods_list"/>
</div>
</div>

View File

@@ -0,0 +1,186 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<!-- 옵션 선택 모달 -->
<div id="option-select-pop" class="modal" style="max-width: 480px;">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<div class="modal-header">
<h4>옵션 선택 추가</h4>
</div>
<form id="optnForm">
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${data.sopmalCd}"/>
<div class="modal-content" style="height: 480px;">
<c:choose>
<c:when test="${not empty data.goods}">
<c:set var="goods" value="${data.goods}"/>
<div class="option-select__product">
<img src="${cdnurl}${goods.goodsImgCours}" onerror="this.src='<c:url value="/mngr/images/image_placeholder.png"/>'" alt="${goods.goodsNm}" width="100" height="100">
<p>${goods.goodsNm}</p>
</div>
<input type="hidden" name="goodsInnb" id="goodsInnb" value="${goods.goodsInnb}"/>
<input type="hidden" name="invntryPolicyCd" id="invntryPolicyCd" value="${goods.invntryPolicyCd}"/>
<div class="option-select__select-area">
<c:if test="${not empty data.nomalOptn}">
<span class="option-select__select-title">상품</span>
<c:forEach items="${data.nomalOptn}" var="nomalOptnList" varStatus="status">
<div class="select-box ${status.count > 1 ? 'mt-10' : ''}">
<select name="nomalOptn${status.count}" id="nomalOptn${status.count}" class="w-full nomalOptn" title="일반옵션">
<c:forEach items="${nomalOptnList}" var="nomalOptn" varStatus="status">
<c:choose>
<c:when test="${goods.invntryPolicyCd eq '01' and nomalOptn.invntryAble eq 'N' }">
<c:if test="${nomalOptn.invntrySldoutExpsrAt eq 'Y'}">
<option value="${nomalOptn.optnVal}" disabled> <c:out value="${nomalOptn.optnNm} (품절)"/></option>
</c:if>
</c:when>
<c:otherwise>
<option value="${nomalOptn.optnVal}">${nomalOptn.optnNm}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</c:forEach>
</c:if>
<c:if test="${not empty data.stockOptn}">
<c:set var="stockOptn" value="${data.stockOptn}"/>
<c:if test="${not empty stockOptn.stockOptn1List}">
<span class="option-select__select-title">상품</span>
<div class="select-box">
<select name="stockOptn1" id="stockOptn1" class="w-full stockOptn" title="재고옵션1">
<c:forEach items="${stockOptn.stockOptn1List}" var="stockOptn1" varStatus="status">
<option value="${stockOptn1.optnVal}">${stockOptn1.optnNm}</option>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${not empty stockOptn.stockOptn2List}">
<div class="select-box mt-10">
<select name="stockOptn2" id="stockOptn2" class="w-full stockOptn" title="재고옵션2">
<c:forEach items="${stockOptn.stockOptn2List}" var="stockOptn2" varStatus="status">
<option value="${stockOptn2.optnVal}">${stockOptn2.optnNm}</option>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${not empty stockOptn.stockOptn3List}">
<div class="select-box mt-10">
<select name="stockOptn3" id="stockOptn3" class="w-full stockOptn" title="재고옵션3">
<c:forEach items="${stockOptn.stockOptn3List}" var="stockOptn3" varStatus="status">
<option value="${stockOptn3.optnVal}">${stockOptn3.optnNm}</option>
</c:forEach>
</select>
</div>
</c:if>
<c:if test="${not empty stockOptn.stockOptn4List}">
<div class="select-box mt-10">
<select name="stockOptn4" id="stockOptn4" class="w-full stockOptn" title="재고옵션4">
<c:forEach items="${stockOptn.stockOptn4List}" var="stockOptn4" varStatus="status">
<option value="${stockOptn4.optnVal}">${stockOptn4.optnNm}</option>
</c:forEach>
</select>
</div>
</c:if>
</c:if>
<c:if test="${not empty data.addOptn}">
<span class="option-select__select-title mt-10">추가상품</span>
<div id="addOptnDiv">
<c:forEach items="${data.addOptn}" var="addOptnList" varStatus="status">
<div class="select-box ${status.count > 1 ? 'mt-10' : ''}">
<select name="addOptn${status.count}" id="addOptn${status.count}" class="w-full addOptn" title="추가옵션">
<c:forEach items="${addOptnList}" var="addOptn" varStatus="status">
<c:choose>
<c:when test="${goods.invntryPolicyCd eq '01' and addOptn.invntryAble eq 'N' }">
<c:if test="${addOptn.invntrySldoutExpsrAt eq 'Y'}">
<option value="${addOptn.optnVal}" disabled> <c:out value="${addOptn.optnNm} (품절)"/></option>
</c:if>
</c:when>
<c:otherwise>
<option value="${addOptn.optnVal}">${addOptn.optnNm}</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</div>
</c:forEach>
</div>
</c:if>
<c:if test="${not empty data.inputOptn}">
<span class="option-select__select-title mt-10">입력</span>
<c:forEach items="${data.inputOptn}" var="inputOptn" varStatus="status">
<div class="word-limit-input mt-10">
<input type="text" class="input-text word-limit inputOptn" optn-info="${inputOptn.optnInfo}" size="60" maxlength="30" title="${inputOptn.optnTitle}" placeholder="${inputOptn.optnTitle}">
<input type="hidden" class="optnTitle" value="${inputOptn.optnTitle}"/>
<input type="hidden" class="optnInfo" value="${inputOptn.optnInfo}"/>
<input type="hidden" class="optnEssntlAt" value="${inputOptn.optnEssntlAt}"/>
</div>
</c:forEach>
</c:if>
</div>
<c:if test="${not empty data.choiceOptn}">
<c:set var="choiceOptn" value="${data.choiceOptn}"/>
<c:set var="subSlepricByFormat" value="${choiceOptn.subSlepricByFormat}"/>
<c:set var="subSlepric" value="${choiceOptn.subSlepric}"/>
<div class="product-count optn-${choiceOptn.goodsOptnInnb}">
<input type="hidden" class="goodsInnb" value="${choiceOptn.goodsInnb}"/>
<input type="hidden" class="goodsOptnInnb" value="${choiceOptn.goodsOptnInnb}"/>
<input type="hidden" class="slepric" value="${choiceOptn.slepric}"/>
<input type="hidden" class="qy" value="${choiceOptn.qy}"/>
<input type="hidden" class="subSlepric" value="${subSlepric}"/>
<input type="hidden" class="inputOptn" value="${choiceOptn.inputOptn}"/>
<input type="hidden" class="inputOptnText" value="${choiceOptn.inputOptnText}"/>
<input type="hidden" class="optnRelateNb" value="${choiceOptn.optnRelateNb}"/>
<div class="product-count__amount-top">
<span class="product-count__amount-title">${choiceOptn.optn}</span>
<c:if test="${not empty choiceOptn.inputOptnText}">
<br/><span class="product-count__amount-title">${choiceOptn.inputOptnText}</span>
</c:if>
</div>
<div class="product-count__amount-bottom">
<div class="product-count__amount-counter">
<button type="button" id="optn-qy-minus" class="product-count__amount-btn minus"><span class="visually-hidden">감소</span></button>
<span class="product-count__amount-number optn-qy">${choiceOptn.qy}</span>
<button type="button" id="optn-qy-plus" class="product-count__amount-btn plus"><span class="visually-hidden">추가</span></button>
</div>
<div class="product-count__amount-price-box">
<span class="product-count__amount-price"><span class="comma sub-slepric">${subSlepricByFormat}</span>원</span>
</div>
</div>
</div>
</c:if>
</c:when>
<c:otherwise>
<div class="text-center" style="height: 100%; align-content: center">
<san class="option-select__sum-number">선택 불가 상품 입니다.<br/> 상품 설정 정보를 확인해 주십시요.</san>
</div>
</c:otherwise>
</c:choose>
</div>
<div class="modal-footer justify-end">
<div class="option-select__sum">
<p class="option-select__sum-price">
<span>총 금액 :</span>
<span class="option-select__sum-number">
<input type="hidden" name="totalPrice" id="totalPric" value="${not empty subSlepric ? subSlepric : 0}"/>
<span class="comma total-pric" >${not empty subSlepricByFormat ? subSlepricByFormat : 0}</span>
</span>
<span>원</span>
</p>
<button type="button" id="btnChoiceOption" class="option-select__sum-btn">선택</button>
</div>
</div>
</form>
</div>

View File

@@ -0,0 +1,124 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstGcpayPayR.jsp
Description : 토스 지씨페이 결제정보
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
$(document).ready(function() {
const ordrInnb = $('#ordrInnb').val();
const goodsNm = $('#goodsNm').val();
const setleTyCd = $('#setleTyCd').val();
const setleAmt = $('#setleAmt').val();
const ordrrEmail = $('#ordrrEmail').val();
const methodId = $('#methodId').val();
const request = {
amount: setleAmt,
orderId: ordrInnb,
orderName: goodsNm,
customerEmail: ordrrEmail,
methodId: methodId
};
if ('01' === setleTyCd) { // 카드
const cardInstallmentPlan = $('#cardInstallmentPlan').val();
const useCardPoint = $('#useCardPoint').val();
if (!fn_is_empty(cardInstallmentPlan)) {
request['cardInstallmentPlan'] = cardInstallmentPlan;
}
if (!fn_is_empty(useCardPoint)) {
request['useCardPoint'] = 'true' === useCardPoint;
}
}
if ('03' === setleTyCd) { // 실시간 계좌이체
const cshRciptIssuAt = $('#cshRciptIssuAt').val();
const issuTrgetDvCd = $('#issuTrgetDvCd').val();
const crtnb = $('#crtnb').val();
if ('01' === cshRciptIssuAt) { // 발급
const cashReceipt = {
type: '소득공제',
registrationNumberType: '01' === issuTrgetDvCd ? 'MOBILE' : 'BUSINESS_REGISTRATION',
registrationNumber: crtnb
}
request['cashReceipt'] = cashReceipt;
}
}
console.log(request);
brandpay
.requestPayment(request)
.then(function (data) {
$('#paymentKey').val(data.paymentKey);
$('#amount').val(data.amount);
$('#orderId').val(data.orderId);
$('#methodId').val(data.methodId);
$('#order_info').submit();
})
.catch(function (error) {
if (error.code === "USER_CANCEL") {
alert('GC PAY 간편결제가 취소되었습니다.');
return false;
} else {
alert(error.message);
}
});
});
</script>
</head>
<body>
<form name="order_info" id="order_info" method="post" action="<c:url value="/crm/ordr/insertGcpaySetle"/>">
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${data.setle.sopmalCd}"/>
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${data.setle.ordrInnb}"/>
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="${data.setle.pgCmpnyNm}"/>
<input type="hidden" name="setleTyCd" id="setleTyCd" value="${data.setle.setleTyCd}"/>
<input type="hidden" name="goodsNm" id="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="setleAmt" id="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="ordrrNm" id="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="ordrrEmail" id="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="ordrrMbtlnb" id="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="mbrId" id="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
<input type="hidden" name="mbrInnb" id="mbrInnb" value="${data.ordr.mbrInnb}" /> <!-- 회원고유번호 -->
<input type="hidden" name="mbrDvCd" id="mbrDvCd" value="${data.ordr.mbrDvCd}" /> <!-- 회원구분코드 -->
<input type="hidden" name="mbtlnb" id="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
<input type="hidden" name="cshRciptIssuAt" id="cshRciptIssuAt" value="${data.setle.cshRciptIssuAt}"/> <!-- 현금영수증 발급여부 -->
<input type="hidden" name="issuTrgetDvCd" id="issuTrgetDvCd" value="${data.setle.issuTrgetDvCd}"/> <!-- 발급대상구분코드 (01:개인, 02:사업자) -->
<input type="hidden" name="crtnb" id="crtnb" value="${data.setle.crtnb}"/> <!-- 인증번호 -->
<input type="hidden" name="methodId" id="methodId" value="${data.setle.gcpayMethodId}"/> <!-- GCpay 결제수단 id -->
<input type="hidden" name="cardInstallmentPlan" id="cardInstallmentPlan " value="${data.setle.gcpayCardInstallmentPlan}"/> <!-- GCpay 신용카드할부개월수 -->
<input type="hidden" name="useCardPoint" id="useCardPoint " value="${data.setle.gcpayUseCardPoint}"/> <!-- GCpay 카드사 포인트 사용 여부 -->
<input type="hidden" name="paymentKey" id="paymentKey" value=""/>
<input type="hidden" name="amount" id="amount" value=""/>
<input type="hidden" name="orderId" id="orderId" value=""/>
<input type="hidden" name="methodId" id="methodId" value=""/>
</form>
</body>
</html>

View File

@@ -0,0 +1,65 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstKcpKeyInPayR.jsp
Description : KCP 수기 결제정보
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
$(document).ready(function() {
$('#order_info').submit();
});
</script>
</head>
<body>
<c:choose>
<c:when test = "${tmAt eq 'Y'}">
<c:set var = "url" value = "/crm/ordr/insertKcpKeyInSetleTm"/>
</c:when>
<c:otherwise>
<c:set var = "url" value = "/crm/ordr/insertKcpKeyInSetle"/>
</c:otherwise>
</c:choose>
<form name="order_info" id="order_info" method="post" action="${url}">
<input type="hidden" name="site_cd" value="${data.setle.siteCdMid}" /> <!-- NHN KCP 발급 사이트코드 T0007 -->
<input type="hidden" name="site_name" value="${data.ordr.sopmalNm}" /> <!-- 상점이름(영문으로 작성권장) -->
<input type="hidden" name="ordr_idxx" value="${data.ordr.ordrInnb}"/> <!-- 상점 관리 주문번호 -->
<input type="hidden" name="good_name" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="good_mny" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="buyr_name" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="buyr_mail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="buyr_tel" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="card_nb" value="${data.setle.cardNb}"/> <!-- 카드번호 -->
<input type="hidden" name="validpd_dt" value="${data.setle.validpdDt}"/> <!-- 유효기간 -->
<input type="hidden" name="brth_de" value="${data.setle.brthDe}"/> <!-- 생년월일 -->
<input type="hidden" name="card_password" value="${data.setle.cardPassword}"/> <!-- 비밀번호 -->
<input type="hidden" name="instlmt_mt_cnt" value="${data.setle.instlmtMtCnt}"/> <!-- 할부기간 -->
<input type="hidden" name="sopmal_cd" value="${data.ordr.sopmalCd}"/>
<input type="hidden" name="mbr_id" value="${data.ordr.mbrId}" />
<input type="hidden" name="mbr_innb" value="${data.ordr.mbrInnb}" />
<input type="hidden" name="mbr_dv_cd" id="mbr_dv_cd" value="${data.ordr.mbrDvCd}" /> <!-- 회원구분코드 -->
<input type="hidden" name="mbtlnb" id="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
<input type="hidden" name="pg_cmpny_nm" value="${data.setle.pgCmpnyNm}" />
<input type="hidden" name="setle_ty_cd" value="${data.setle.setleTyCd}" />
<input type="hidden" name="sleEnvrnCd" value="${data.ordr.sleEnvrnCd}" /><!-- 판매환경구분 (P/M/TM) -->
</form>
</body>
</html>

View File

@@ -0,0 +1,146 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstKcpPayR.jsp
Description : KCP 결제정보
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
$(document).ready(function() {
create_goodInfo();
jsf__pay(document.order_info);
});
function create_goodInfo() {
if(document.order_info.pay_mod.value=='Y') {
var chr31 = String.fromCharCode(31); // ASCII 코드값 31
var good_info = "seq=1" + chr31 + "ordr_numb=0001" + chr31 + "good_name=${data.setle.goodsNm}" + chr31 + "good_cntx=2" + chr31 + "good_amtx=${data.setle.setleAmt}";
document.order_info.good_info.value = good_info;
}
}
</script>
</head>
<body>
<form name="setle_info" id="setle_info">
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${data.setle.sopmalCd}" />
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${data.setle.ordrInnb}" />
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
<input type="hidden" name="setleTyCd" id="setleTyCd" value="${data.setle.setleTyCd}" />
</form>
<c:choose>
<c:when test = "${tmAt eq 'Y'}">
<c:set var = "url" value = "/crm/ordr/insertKcpSetleTm"/>
</c:when>
<c:otherwise>
<c:set var = "url" value = "/crm/ordr/insertKcpSetle"/>
</c:otherwise>
</c:choose>
<form name="order_info" id="order_info" method="post" action="${url}">
<!-- 가맹점 정보 설정-->
<input type="hidden" name="site_cd" value="${data.setle.siteCdMid}" /> <!-- NHN KCP 발급 사이트코드 T0007 -->
<input type="hidden" name="site_name" value="${data.ordr.sopmalNm}" /> <!-- 상점이름(영문으로 작성권장) -->
<input type="hidden" name="currency" value="WON"/> <!-- 화폐단위 -->
<c:if test="${'10' != data.setle.setleTyCd}">
<input type="hidden" name="payco_direct" value="" />
</c:if>
<c:if test="${'10' == data.setle.setleTyCd}">
<input type="hidden" name="payco_direct" value="Y" />
<input type="hidden" name="pay_method" value="100000000000" /> <!-- 신용카드 -->
</c:if>
<input type="hidden" name="ordr_idxx" value="${data.ordr.ordrInnb}"/> <!-- 상점 관리 주문번호 -->
<!-- 결제 수단 -->
<c:if test="${'01' == data.setle.setleTyCd}">
<input type="hidden" name="pay_method" value="100000000000" /> <!-- 신용카드 -->
</c:if>
<c:if test="${'03' == data.setle.setleTyCd}">
<input type="hidden" name="pay_method" value="010000000000" /> <!-- 계좌이체 -->
</c:if>
<c:if test="${'04' == data.setle.setleTyCd}">
<input type="hidden" name="pay_method" value="001000000000" /> <!-- 가상계좌 -->
</c:if>
<!-- ========== 에스크로 정보 Start =============================== -->
<!-- 에스크로 사용 여부 : 반드시 Y 로 설정 -->
<input type="hidden" name="escw_used" value="Y"/>
<c:choose>
<c:when test="${'05' == data.setle.setleTyCd}">
<input type="hidden" name="pay_method" value="001000000000" /> <!-- 가상계좌(에스크로) 이지만 KCP 결제코드는 가상계좌 -->
<input type="hidden" name="rcvr_name" value="${data.shipping.recpntNm}" /> <!-- 수취인명 -->
<input type="hidden" name="rcvr_tel1" value="${data.shipping.recpntTelnb}" /> <!-- 수취인 연락처1 -->
<input type="hidden" name="rcvr_tel2" value="${data.shipping.recpntMbtlnb}" /> <!-- 수취인 휴대폰번호 -->
<input type="hidden" name="rcvr_mail" value="" /> <!-- 수취인 E-mail -->
<input type="hidden" name="rcvr_zipx" value="${data.shipping.dlvylcZip}" /> <!-- 수취인 우편번호 -->
<c:if test="${'01' == data.shipping.dlvylcAdresDvCd}">
<input type="hidden" name="rcvr_add1" value="${data.shipping.dlvylcRnmAdres}" /> <!-- 수취인 주소 -->
</c:if>
<c:if test="${'02' == data.shipping.dlvylcAdresDvCd}">
<input type="hidden" name="rcvr_add1" value="${data.shipping.dlvylcLnbAdres}" /> <!-- 수취인 주소 -->
</c:if>
<input type="hidden" name="rcvr_add2" value="${data.shipping.dlvylcAdresDtl}" /> <!-- 수취인 상세주소 -->
<input type="hidden" name="pay_mod" value="Y"/> <!-- 에스크로 결제처리 모드 : 에스크로: Y, 일반: N -->
<input type="hidden" name="deli_term" value="03"/> <!-- 배송 소요일 : 예상 배송 소요일을 입력 (두자리수로 입력) -->
<input type="hidden" name="bask_cntx" value="1"/> <!-- 장바구니 상품 종류수 -->
<input type="hidden" name="good_info" value=""/> <!-- 장바구니 상품 상세 정보 -->
</c:when>
<c:otherwise>
<input type="hidden" name="pay_mod" value="N"/> <!-- 에스크로 결제처리 모드 : 에스크로: Y, 일반: N -->
</c:otherwise>
</c:choose>
<!-- ========== 에스크로 필수정보 End =============================== -->
<input type="hidden" name="good_name" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="good_mny" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="buyr_name" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="buyr_mail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="buyr_tel2" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="shop_user_id" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
<input type="hidden" name="sopmal_cd" value="${data.ordr.sopmalCd}"/>
<input type="hidden" name="mbr_innb" value="${data.ordr.mbrInnb}" />
<input type="hidden" name="mbr_id" value="${data.ordr.mbrId}" />
<input type="hidden" name="mbr_dv_cd" value="${data.ordr.mbrDvCd}" /> <!-- 회원구분코드 -->
<input type="hidden" name="mbtlnb" id="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
<input type="hidden" name="pg_cmpny_nm" value="${data.setle.pgCmpnyNm}" />
<input type="hidden" name="setle_ty_cd" value="${data.setle.setleTyCd}" />
<input type="hidden" name="sleEnvrnCd" value="${data.ordr.sleEnvrnCd}" /><!-- 판매환경구분 (P/M/TM) -->
<!-- 가상계좌 유효기간 -->
<c:set var="expireTerm" value="${data.setle.dueDt - 1}" />
<input type="hidden" name="vcnt_expire_term" value="${expireTerm}"/>
<!--
※필수 항목
결제인증 완료 후 결제창에서 값을 설정하는 부분으로 반드시 포함되어야 합니다.
임의로 값을 설정하지 마십시오.
-->
<input type="hidden" name="res_cd" value=""/>
<input type="hidden" name="res_msg" value=""/>
<input type="hidden" name="enc_info" value=""/>
<input type="hidden" name="enc_data" value=""/>
<input type="hidden" name="tran_cd" value=""/>
</form>
</body>
</html>

View File

@@ -0,0 +1,56 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstPayR.jsp
Description : 결제
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
$(document).ready(function() {
$('#orderInfo').submit();
});
</script>
</head>
<body>
<c:choose>
<c:when test = "${tmAt eq 'Y'}">
<c:set var = "url" value = "/crm/ordr/insertSetleTm"/>
</c:when>
<c:otherwise>
<c:set var = "url" value = "/crm/ordr/insertSetle"/>
</c:otherwise>
</c:choose>
<form name="orderInfo" id="orderInfo" method="post" action="${url}">
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${data.setle.sopmalCd}"/>
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${data.setle.ordrInnb}"/>
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="${data.setle.pgCmpnyNm}"/>
<input type="hidden" name="setleTyCd" id="setleTyCd" value="${data.setle.setleTyCd}"/>
<input type="hidden" name="goodsNm" id="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="setleAmt" id="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="ordrrNm" id="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="ordrrEmail" id="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="ordrrMbtlnb" id="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="mbrId" id="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
<input type="hidden" name="mbrInnb" id="mbrInnb" value="${data.ordr.mbrInnb}" />
<input type="hidden" name="mbrDvCd" id="mbrDvCd" value="${data.ordr.mbrDvCd}" /> <!-- 회원구분코드 -->
<input type="hidden" name="mbtlnb" id="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
<input type="hidden" name="sleEnvrnCd" id="sleEnvrnCd" value="${data.ordr.sleEnvrnCd}" /><!-- 판매환경구분 (P/M/TM) -->
</form>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstTossKeyInPayR.jsp
Description : 토스수기 결제정보
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
$(document).ready(function() {
$('#order_info').submit();
});
</script>
</head>
<body>
<c:choose>
<c:when test = "${tmAt eq 'Y'}">
<c:set var = "url" value = "/crm/ordr/insertTossKeyInSetleTm"/>
</c:when>
<c:otherwise>
<c:set var = "url" value = "/crm/ordr/insertTossKeyInSetle"/>
</c:otherwise>
</c:choose>
<form name="order_info" id="order_info" method="post" action="${url}">
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${data.setle.sopmalCd}"/>
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${data.setle.ordrInnb}"/>
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="${data.setle.pgCmpnyNm}"/>
<input type="hidden" name="setleTyCd" id="setleTyCd" value="${data.setle.setleTyCd}"/>
<input type="hidden" name="cardNb" value="${data.setle.cardNb}"/> <!-- 카드번호 -->
<input type="hidden" name="validpdDt" value="${data.setle.validpdDt}"/> <!-- 유효기간 -->
<input type="hidden" name="brthDe" value="${data.setle.brthDe}"/> <!-- 생년월일 -->
<input type="hidden" name="cardPassword" value="${data.setle.cardPassword}"/> <!-- 비밀번호 -->
<input type="hidden" name="instlmtMtCnt" value="${data.setle.instlmtMtCnt}"/> <!-- 할부기간 -->
<input type="hidden" name="goodsNm" id="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="setleAmt" id="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="ordrrNm" id="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="ordrrEmail" id="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="ordrrMbtlnb" id="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="mbrId" id="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
<input type="hidden" name="mbrInnb" id="mbrInnb" value="${data.ordr.mbrInnb}" />
<input type="hidden" name="mbtlnb" id="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
<input type="hidden" name="mbrDvCd" id="mbrDvCd" value="${data.ordr.mbrDvCd}" /> <!-- 회원구분코드 -->
<input type="hidden" name="sleEnvrnCd" id="sleEnvrnCd" value="${data.ordr.sleEnvrnCd}" /><!-- 판매환경구분 (P/M/TM) -->
</form>
</body>
</html>

View File

@@ -0,0 +1,180 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstTossPayR.jsp
Description : 토스 결제정보
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
let setleData = ['common', '카드', '계좌이체', '가상계좌'];
$(document).ready(function() {
let paymentType = '';
const orderForm = $('#order_info');
const sopmalCd = orderForm.find('.sopmalCd').val();//$('#sopmalCd').val();
const mbrInnb = orderForm.find('.mbrInnb').val();//$('#mbrInnb').val();
const mbrId = orderForm.find('.mbrId').val();//$('#mbrId').val();
const mbrDvCd = orderForm.find('.mbrDvCd').val();//$('#mbrDvCd').val();
const pgCmpnyNm = orderForm.find('.pgCmpnyNm').val();//$('#pgCmpnyNm').val();
const setleTyCd = orderForm.find('.setleTyCd').val();//$('#setleTyCd').val();
let ordrrNm = orderForm.find('.ordrrNm').val();//$('#ordrrNm').val();
ordrrNm = encodeURIComponent(ordrrNm);
const sleEnvrnCd = orderForm.find('.sleEnvrnCd').val();//$('#sleEnvrnCd').val();
const mbtlnb = orderForm.find('.mbtlnb').val();//$('#mbtlnb').val();
let param = '?sopmalCd=' + sopmalCd;
param += '&mbrInnb=' + mbrInnb;
param += '&mbrId=' + mbrId;
param += '&pgCmpnyNm=' + pgCmpnyNm;
param += '&setleTyCd=' + setleTyCd;
param += '&ordrrNm=' + ordrrNm;
param += '&mbrDvCd=' + mbrDvCd;
param += '&sleEnvrnCd=' + sleEnvrnCd;
param += '&mbtlnb=' + mbtlnb;
const encodedParam = encodeURIComponent(param);
let url = '';
if('<c:out value="${tmAt}"/>' == 'Y'){
url = '<c:url value="/crm/ordr/insertTossSetleTm"/>';
}else{
url = '<c:url value="/crm/ordr/insertTossSetle"/>';
}
const successUrl = window.location.origin + url + encodedParam;
const failUrl = window.location.origin + url;
//가상계좌 입금기한 설정
let dueDate = $('.dueDate').val();
let date = new Date();
date.setDate(date.getDate() + (dueDate - 1));
let fDueDate = date.toISOString().split('T')[0]+ "T23:59:59+09:00"; // 날짜(YYYY-MM-DD) ISO 8601 형식
setleData['common'] = {
'amount': '',
'orderId': '',
'orderName': '',
'customerName': '',
'customerEmail': null,
'customerMobilePhone': null,
'successUrl':successUrl,
'failUrl':failUrl,
'windowTarget': 'iframe',
'taxFreeAmount': null,
'cultureExpense': false
};
if ('01' === setleTyCd) { // 신용카드
paymentType = '카드';
setleData[paymentType] = {
'cardCompany':null,
'cardInstallmentPlan':null,
'maxCardInstallmentPlan':null,
'freeInstallmentPlans':null,
'useCardPoint':false,
'useAppCardOnly':false,
'useInternationalCardOnly':false,
'flowMode':'DEFAULT',
'easyPay':null,
'discountCode':null,
'appScheme':null
};
} else if ('03' === setleTyCd) { // 실시간 계좌이체
paymentType = '계좌이체';
setleData[paymentType] = {
'cashReceipt':{
'type':'소득공제'
},
'useEscrow':false
};
} else if ('04' === setleTyCd) { // 가상계좌
paymentType = '가상계좌';
setleData[paymentType] = {
'dueDate':fDueDate,
'cashReceipt':{
'type':'미발행'
},
'useEscrow':false,
'currency':'KRW'
};
} else if ('05' === setleTyCd) { // 가상계좌(에스크로)
paymentType = '가상계좌';
setleData[paymentType] = {
'dueDate':fDueDate,
'cashReceipt':{
'type':'미발행'
},
'useEscrow':true,
'currency':'KRW'
};
} else if ('10' === setleTyCd) { // 페이코
paymentType = '카드';
setleData[paymentType] = {
flowMode: "DIRECT",
easyPay: "페이코",
};
}
pay(paymentType, initPaymentsData('common', paymentType));
});
/* ============= [공통] + [결제수단] JSON DATA 합치기 ================= */
function initPaymentsData(general, paymentType){
const orderForm = $('#order_info');
const setleAmt = orderForm.find('.setleAmt').val();
const ordrInnb = orderForm.find('.ordrInnb').val();//$('#ordrInnb').val();
const goodsNm = orderForm.find('.goodsNm').val();//$('#goodsNm').val();
const ordrrNm = orderForm.find('.ordrrNm').val();//$('#ordrrNm').val();
setleData[general].amount = setleAmt;
setleData[general].orderId = ordrInnb;
setleData[general].orderName = goodsNm;
setleData[general].customerName = ordrrNm;
return Object.assign(setleData[general], setleData[paymentType]);
}
</script>
</head>
<body>
<form name="order_info" id="order_info">
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}"/>
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}"/>
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}"/>
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}"/>
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="setleAmt" class="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
<input type="hidden" name="mbtlnb" class="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" /> <!-- 쇼핑몰회원번호 -->
<input type="hidden" name="mbrDvCd" class="mbrDvCd" value="${data.ordr.mbrDvCd}" /> <!-- 쇼핑몰회원구분 -->
<input type="hidden" name="dueDate" class="dueDate" value="${data.setle.dueDt}" /> <!-- 가상계좌 입금기한 -->
<input type="hidden" name="sleEnvrnCd" class="sleEnvrnCd" value="${data.ordr.sleEnvrnCd}" /><!-- 판매환경구분 (P/M/TM) -->
</form>
</body>
</html>

View File

@@ -0,0 +1,105 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrReqstTosspayPayR.jsp
Description : 토스페이 결제정보
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
$(document).ready(function() {
const orderForm = $('#order_info');
const setleAmt = orderForm.find('.setleAmt').val();//$('#setleAmt').val();
const ordrInnb = orderForm.find('.ordrInnb').val();//$('#ordrInnb').val();
const goodsNm = orderForm.find('.goodsNm').val();//$('#goodsNm').val();
const ordrrNm = orderForm.find('.ordrrNm').val();//$('#ordrrNm').val();
const ordrrEmail = orderForm.find('.ordrrEmail').val();//$('#ordrrEmail').val();
const ordrrMbtlnb = orderForm.find('.ordrrMbtlnb').val().replace(/[^0-9]/g, '');//$('#ordrrMbtlnb').val().replace(/[^0-9]/g, '');
const sopmalCd = orderForm.find('.sopmalCd').val();//$('#sopmalCd').val();
const mbrInnb = orderForm.find('.mbrInnb').val();//$('#mbrInnb').val();
const mbrId = orderForm.find('.mbrId').val();//$('#mbrId').val();
const mbtlnb = orderForm.find('.mbtlnb').val();//$('#mbtlnb').val();
const mbrDvCd = orderForm.find('.mbrDvCd').val();//$('#mbrDvCd').val();
const pgCmpnyNm = orderForm.find('.pgCmpnyNm').val();//$('#pgCmpnyNm').val();
const setleTyCd = orderForm.find('.setleTyCd').val();//$('#setleTyCd').val();
let easyPayNm = '토스페이';
if(pgCmpnyNm === 'naverpay') easyPayNm = '네이버페이';
else if(pgCmpnyNm === 'kakaopay') easyPayNm = '카카오페이';
let param = '?sopmalCd=' + sopmalCd;
param += '&mbrInnb=' + mbrInnb;
param += '&mbrId=' + mbrId;
param += '&mbtlnb=' + mbtlnb;
param += '&pgCmpnyNm=' + pgCmpnyNm;
param += '&setleTyCd=' + setleTyCd;
param += '&ordrrNm=' + ordrrNm;
param += '&mbrDvCd=' + mbrDvCd;
const encodedParam = encodeURIComponent(param);
const successUrl = window.location.origin + '<c:url value="/crm/ordr/insertTosspaySetle"/>' + encodedParam;
const failUrl = window.location.origin + '<c:url value="/crm/ordr/insertTosspaySetle"/>';
const request = {
card:{
amount:setleAmt,
orderId:ordrInnb,
orderName:goodsNm,
successUrl:successUrl,
failUrl:failUrl,
cardCompany:null,
cardInstallmentPlan:null,
maxCardInstallmentPlan:null,
useCardPoint:false,
customerName:ordrrNm,
customerEmail:ordrrEmail,
customerMobilePhone:ordrrMbtlnb,
taxFreeAmount:null,
useInternationalCardOnly:false,
flowMode:"DIRECT",
discountCode:null,
appScheme:null,
easyPay:easyPayNm
}
};
tosspay('카드', request.card, pgCmpnyNm);
});
</script>
</head>
<body>
<form name="order_info" id="order_info">
<input type="hidden" name="sopmalCd" class="sopmalCd" value="${data.setle.sopmalCd}" />
<input type="hidden" name="ordrInnb" class="ordrInnb" value="${data.setle.ordrInnb}" />
<input type="hidden" name="pgCmpnyNm" class="pgCmpnyNm" value="${data.setle.pgCmpnyNm}" />
<input type="hidden" name="setleTyCd" class="setleTyCd" value="${data.setle.setleTyCd}" />
<input type="hidden" name="goodsNm" class="goodsNm" value="${data.setle.goodsNm}"/> <!-- 상품명 -->
<input type="hidden" name="setleAmt" class="setleAmt" value="${data.setle.setleAmt}"/> <!-- 결제 금액 -->
<input type="hidden" name="ordrrNm" class="ordrrNm" value="${data.ordr.ordrrNm}"/> <!-- 주문자 이름 -->
<input type="hidden" name="ordrrEmail" class="ordrrEmail" value="${data.ordr.ordrrEmail}"/> <!-- 주문자 이메일 -->
<input type="hidden" name="ordrrMbtlnb" class="ordrrMbtlnb" value="${data.ordr.ordrrMbtlnb}"/> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="mbrId" class="mbrId" value="${data.ordr.mbrId}"/> <!-- 쇼핑몰회원ID -->
<input type="hidden" name="mbrInnb" class="mbrInnb" value="${data.ordr.mbrInnb}" /> <!-- 쇼핑몰회원번호 -->
<input type="hidden" name="mbrDvCd" class="mbrDvCd" value="${data.ordr.mbrDvCd}" /> <!-- 쇼핑몰회원구분 -->
<input type="hidden" name="mbtlnb" class="mbtlnb" value="${data.ordr.ordrrMbtlnb}" /> <!-- 회원휴대폰번호 -->
</form>
</body>
</html>

View File

@@ -0,0 +1,57 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrPay.jsp
Description : 결제
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/crm/Include.jsp" %>
<script>
$(document).ready(function() {
const status = $('#status').val();
let form = $("#successForm");
let actionUrl = '';
if ('1' === status) {
alert($('#message').val());
actionUrl = '/crm/ordr/selectMngrOrdrRegistForm';
}else{
alert("관리자 주문이 완료되었습니다.");
actionUrl = '/crm/ordr/selectMngrOrdrCompt';
}
$(form).attr('method', 'post');
$(form).attr('action', actionUrl);
$(form).submit();
});
</script>
</head>
<body>
<form name="successForm" id="successForm">
<input type="hidden" name="status" id="status" value="${data.status}"/>
<input type="hidden" name="message" id="message" value="${data.message}"/>
<input type="hidden" name="sopmalCd" id="sopmalCd" value="${paramVO.sopmalCd}"/>
<input type="hidden" name="ordrInnb" id="ordrInnb" value="${paramVO.orderId}"/>
<input type="hidden" name="mbrInnb" id="mbrInnb" value="${paramVO.mbrInnb}"/>
<input type="hidden" name="mbrId" id="mbrId" value="${paramVO.mbrId}"/>
<input type="hidden" name="mbrDvCd" id="mbrDvCd" value="${paramVO.mbrDvCd}"/>
<input type="hidden" name="ordrrMbtlnb" id="ordrrMbtlnb" value="${paramVO.mbtlnb}"/>
</form>
</body>
</html>

View File

@@ -0,0 +1,100 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<%--
Class Name : OrdrPay.jsp
Description : 결제
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
2024-04-11 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<%-- 공통 include --%>
<%@include file ="/WEB-INF/views/comm/crm/Include.jsp" %>
<script>
$(document).ready(function() {
const status = $('#status').val();
let form = $('<form></form>');
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/crm/ordr/selectTmMngrOrdrRegistForm"/>');
//주문고유번호로 상세 조회 (성공 시)
if(status !== '1'){
const ordrInnb = '<c:out value="${paramVO.orderId}"/>';
const sopmalCd = '<c:out value="${paramVO.sopmalCd}"/>';
$.ajax({
type: 'post',
url: "/order/selectTmOrdrInfo",
contentType: "application/json; charset=UTF-8", // JSON 형식으로 보냄
data: JSON.stringify({
"ordrInnb": ordrInnb,
"sopmalCd": sopmalCd
}),
success: function (data) {
if(data.result === '1' || data.result === '2'){
alert("코스네이처 센터와 통신에 실패하였습니다.");
}
}
});
}
});
</script>
</head>
<body>
<main class="main">
<div class="content">
<div class="content__inner">
<div class="page-title">
<h2 class="page-title__title">TM 주문 등록</h2>
<div class="page-title__btn-container">
</div>
</div>
<c:choose>
<c:when test = "${data.status eq '1'}">
<section class="content-section">
<h3 class="order-progress__title">주문이 <em>실패</em>하였습니다.</h3>
</section>
</c:when>
<c:otherwise>
<section class="content-section">
<h3 class="order-progress__title">주문이 <em>완료</em>되었습니다.</h3>
<div class="mileage-benefits">
<div class="mileage-benefits__row">
<span class="mileage-benefits__th">결제방법</span>
<span class="mileage-benefits__td">
<c:choose>
<c:when test = "${paramVO.setleTyCd eq '01'}">카드</c:when>
<c:when test = "${paramVO.setleTyCd eq '02'}">무통장</c:when>
<c:otherwise>가상계좌</c:otherwise>
</c:choose>
</span>
</div>
<div class="mileage-benefits__row">
<span class="mileage-benefits__th">결제금액</span>
<span class="mileage-benefits__td"><span id="accmlMlgAmt" class="comma">${paramVO.amount}</span>원</span>
</div>
</div>
</section>
</c:otherwise>
</c:choose>
</div>
</div>
</main>
</body>
</html>

View File

@@ -0,0 +1,299 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<div id="user-select-pop" class="modal" style="max-width: 1320px;">
<div class="modal-header">
<h4>회원 검색</h4>
</div>
<div class="modal-content" style="height: 600px;">
<div class="content-section">
<form id="purchsrCondForm">
<input type="hidden" id="sopmalCd" name="sopmalCd" value="${data.sopmalCd}"/>
<input type="hidden" id="totalRecordCount" name="totalRecordCount" value=""/>
<input type="hidden" id="totalPageCount" name="totalPageCount" value=""/>
<input type="hidden" id="currentPageNo" name="currentPageNo" value=""/>
<input type="hidden" id="pageIndex" name="pageIndex" value=""/>
<%--
<div class="table-wrapper">
<table class="table">
<caption>구매자</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<tr>
<th>검색어</th>
<td colspan="5">
<div class="td-inner">
<input type="text" name="kwrd" class="input-text xl" title="키워드" placeholder="이름, 아이디, 이메일, 전화번호, 핸드폰(뒷자리4), 주소">
</div>
</td>
</tr>
<tr>
<th>날짜</th>
<td colspan="5">
<div class="td-inner">
<div class="select-box">
<select name="dateDv" title="날짜구분">
<option value="join">가입일</option>
<option value="login">최종로그인</option>
</select>
</div>
<div class="input-container">
<input type="text" name="startDate" id="startDateByPurchs" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="endDate" id="endDateByPurchs" class="datepicker" title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
<input type="hidden" id="datePeriod" name="datePeriod" value=""/>
</div>
<div class="dateRange-btnContainer">
<button type="button" class="dateRange-btn" id="1D">어제</button>
<button type="button" class="dateRange-btn" id="0">오늘</button>
<button type="button" class="dateRange-btn" id="3D">3일간</button>
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn" id="6M">6개월</button>
<button type="button" class="dateRange-btn" id="1Y">1년</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
</div>
</td>
</tr>
<tr>
<th>SMS 수신</th>
<td>
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" name="smsRecptnAgreAt" id="smsRecptnAgreAll" value="" checked>
<label for="smsRecptnAgreAll">전체</label>
</div>
<div class="custom-radio">
<input type="radio" name="smsRecptnAgreAt" id="smsRecptnAgreY" value="Y">
<label for="smsRecptnAgreY">동의</label>
</div>
<div class="custom-radio">
<input type="radio" name="smsRecptnAgreAt" id="smsRecptnAgreN" value="N">
<label for="smsRecptnAgreN">거부</label>
</div>
</div>
</div>
</td>
<th>이메일 수신</th>
<td colspan="3">
<div class="td-inner">
<div class="custom-radio-container">
<div class="custom-radio">
<input type="radio" name="emailRecptnAgreAt" id="emailRecptnAgreAll" value="" checked>
<label for="emailRecptnAgreAll">전체</label>
</div>
<div class="custom-radio">
<input type="radio" name="emailRecptnAgreAt" id="emailRecptnAgreY" value="Y">
<label for="emailRecptnAgreY">동의</label>
</div>
<div class="custom-radio">
<input type="radio" name="emailRecptnAgreAt" id="emailRecptnAgreN" value="N">
<label for="emailRecptnAgreN">거부</label>
</div>
</div>
</div>
</td>
</tr>
<tr>
<th>등급</th>
<td>
<div class="td-inner">
<div class="select-box">
<select name="mbrGradInnb" title="등급">
<option value="">전체</option>
<c:forEach items="${data.mrbGradList}" var="mrbGrad" varStatus="status">
<option value="${mrbGrad.mbrGradInnb}">${mrbGrad.gradNm}</option>
</c:forEach>
</select>
</div>
</div>
</td>
<th>구매금액</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" name="startPurchaseAmount" class="input-text sm right number-only" title="구매금액시작" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
<span class="tilde">~</span>
<input type="text" name="endPurchaseAmount" class="input-text sm right number-only" title="구매금액종료" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
</div>
</div>
</td>
<th>마일리지액</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" name="startMlgAmt" class="input-text sm right number-only" title="마일리지액 시작" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
<span class="tilde">~</span>
<input type="text" name="endMlgAmt" class="input-text sm right number-only" title="마일리지액 종료" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
</div>
</div>
</td>
</tr>
<tr>
<th>주문 횟수</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" name="startOrderCnt" class="input-text xsm right number-only" title="주문횟수 시작" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
<span class="tilde">~</span>
<input type="text" name="endOrderCnt" class="input-text xsm right number-only" title="주문횟수 종료" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
</div>
</div>
</td>
<th>리뷰 횟수</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" name="startRvwCnt" class="input-text xsm right number-only" title="리뷰횟수 시작" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
<span class="tilde">~</span>
<input type="text" name="endRvwCnt" class="input-text xsm right number-only" title="리뷰횟수 종료" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
</div>
</div>
</td>
<th>방문 횟수</th>
<td>
<div class="td-inner">
<div class="input-container">
<input type="text" name="startVisitCnt" class="input-text xsm right number-only" title="방문횟수 시작" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
<span class="tilde">~</span>
<input type="text" name="endVisitCnt" class="input-text xsm right number-only" title="방문횟수 종료" placeholder="0" onfocus="this.placeholder = ''" onblur="this.placeholder = '0'">
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
--%>
<div class="table-wrapper">
<table class="table">
<caption>구매자</caption>
<colgroup>
<col style="width: 10%;">
<col style="width: 23%;">
<col style="width: 10%;">
<col style="width: 23%;">
</colgroup>
<tbody>
<tr>
<th>이름</th>
<td>
<div class="td-inner">
<input type="text" name="mbrNm" class="input-text xl" title="이름" placeholder="이름">
</div>
</td>
<th>아이디</th>
<td>
<div class="td-inner">
<input type="text" name="mbrId" class="input-text xl" title="아이디" placeholder="아이디">
</div>
</td>
</tr>
<tr>
<th>이메일</th>
<td>
<div class="td-inner">
<input type="text" name="email" class="input-text xl" title="이메일" placeholder="이메일">
</div>
</td>
<th>휴대폰번호</th>
<td>
<div class="td-inner">
<input type="text" name="mbtlnb" class="input-text xl" oninput="fn_set_event(this, 'keyup', fn_fmt_telno);" maxlength="13" title="휴대폰번호" placeholder="휴대폰번호('-'없이 입력)">
</div>
</td>
</tr>
<tr>
<th>날짜</th>
<td colspan="4">
<div class="td-inner">
<div class="select-box">
<select name="dateDv" title="날짜구분">
<option value="join">가입일</option>
<option value="login">최종로그인</option>
</select>
</div>
<div class="input-container">
<input type="text" name="startDate" id="startDateByPurchs" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="endDate" id="endDateByPurchs" class="datepicker" title="종료 날짜 선택" autocomplete="off" pattern="yyyy-MM-dd">
<input type="hidden" id="datePeriod" name="datePeriod" value=""/>
</div>
<div class="dateRange-btnContainer">
<button type="button" class="dateRange-btn" id="1D">어제</button>
<button type="button" class="dateRange-btn" id="0">오늘</button>
<button type="button" class="dateRange-btn" id="3D">3일간</button>
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn" id="6M">6개월</button>
<button type="button" class="dateRange-btn" id="1Y">1년</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</form>
<div class="form-control-container">
<div class="left"></div>
<div class="center">
<button type="button" id="initPurchsrCond" class="btn outline">초기화</button>
<button type="button" id="searchPurchsr" class="btn primary">검색</button>
</div>
<div class="right"></div>
</div>
</div>
<div id="pageDiv">
<div class="table-wrapper">
<table class="table vertical">
<colgroup>
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 16%;">
<col style="width: 16%;">
<col style="width: auto;">
<col style="width: 16%;">
<col style="width: 11%;">
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>회원구분</th>
<th>아이디</th>
<th>이름</th>
<th>이메일(수신)</th>
<th>핸드폰(수신)</th>
<th>선택</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="modal-footer">
<a href="javascript:void(0);" rel="modal:close" class="btn outline">닫기</a>
<%-- <button type="button" id="btnPurchsrApply" class="btn primary">확인</button> --%>
</div>
</div>

View File

@@ -0,0 +1,79 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<div class="table-wrapper">
<table class="table vertical">
<colgroup>
<col style="width: 8%;">
<col style="width: 8%;">
<col style="width: 16%;">
<col style="width: 16%;">
<col style="width: auto;">
<col style="width: 16%;">
<col style="width: 11%;">
</colgroup>
<thead>
<tr>
<th>번호</th>
<th>회원구분</th>
<th>아이디</th>
<th>이름</th>
<th>이메일(수신)</th>
<th>핸드폰(수신)</th>
<th>선택</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${not empty data.purchsrList}">
<c:set var="rowNum" value="${data.paginationInfo.totalRecordCount - ((data.paginationInfo.currentPageNo -1) * data.paginationInfo.recordCountPerPage)}" />
<c:forEach items="${data.purchsrList}" var="purchsr" varStatus="status">
<tr>
<td>${rowNum}</td>
<td>${purchsr.mbrDvNm}</td>
<td>
${purchsr.mbrId}
<c:choose>
<c:when test = "${purchsr.appnDvCd eq '02'}">
<span class="black-list">
B<span class="visually-hidden">블랙리스트</span>
</span>
</c:when>
<c:when test = "${purchsr.appnDvCd eq '03'}">
<span class="white-list">
W<span class="visually-hidden">화이트리스트</span>
</span>
</c:when>
</c:choose>
</td>
<td>${purchsr.mbrNm}</td>
<td>${purchsr.email}</td>
<td>${purchsr.mbtlnb}</td>
<td>
<div class="manage-btn-container">
<button type="button" onclick="fn_get_apply_purchsr('${purchsr.mbrInnb}', '${purchsr.mbrId}', '${purchsr.mbrDvCd}');" class="btn xsm primary outline">선택</button>
</div>
</td>
</tr>
<c:set var="rowNum" value="${rowNum - 1}" />
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="100%"><spring:message code="common.nodata"/></td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<div class="pagination__container">
<div class="pagination">
<ui:pagination paginationInfo="${data.paginationInfo}" type="image" jsFunction="fn_get_purchsr_list"/>
</div>
</div>

View File

@@ -0,0 +1,665 @@
<%@ 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="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%--
Class Name : MngrOrdrRegistFormC.jsp
Description : 관리자 주문 등록 jsp
Modification Information
수정일 수정자 수정내용
------- -------- ---------------------------
since : 2023.11.28 김혜인 최초 생성
--%>
<!DOCTYPE html>
<html lang="ko">
<head>
<%@ include file="/WEB-INF/views/comm/crm/Include.jsp" %>
<script src="<c:url value='/mngr/js/crm/dlvylc/dlvylc.js'/>"></script>
</head>
<script>
/* ********************************************************
* 이벤트 설정
**********************************************************/
/* ********************************************************
* function
**********************************************************/
const fn_order = () => {
const status = '<c:out value="${status}"/>';
if(status === '1'){
alert("부적절한 결제수단 입니다. [복합결제]");
return false;
}
const data = fn_validate();
console.log("data====", data);
if (!data) {
return false;
}
$.ajax({
type: 'post',
contentType: 'application/json',
url: '<c:url value="/order/insertTmOrder"/>',
data: JSON.stringify(data),
success: function (html) {
console.log(html);
$('#setleDiv').html(html);
},
error: function (data) {
alert('<spring:message code="error.internal-server"/>');
}
});
}
/* 관리자 주문 > 결제하기 > 정합성 검사 */
const fn_validate = function () {
let order = {};
//일반결제
order['ordrTyCd'] = "01";
//1. 회원 정보 셋팅
//회원 비회원 상관없이 ordrrInfoForm 데이터 사용
//비회원은 mbrInnb=0, mbrId,mbrDvCd 은 값이 안넘어감
order['purchsr'] = fn_get_form_obj('ordrrInfoForm');
console.log("'order['purchsr']::::", order['purchsr']);
//2. 상품 정보 셋팅
/*let goods = [];
goods.push(fn_get_form_obj('goddsInfoForm'));
order['goodsList'] = goods;*/
order['goodsList'] = fn_get_form_obj_arr('goddsInfoForm', 7);
console.log("'order['goodsList']::::", order['goodsList']);
//3. 사은품 정보 셋팅
/*let prsntss = [];
prsntss.push(fn_get_form_obj('prsnInfoForm'));
order['prsnt'] = prsntss;*/
if (!fn_is_empty($("#prsnInfoForm"))) {
order['prsnt'] = fn_get_form_obj_arr('prsnInfoForm', 6);
console.log("'order['prsnt']::::", order['prsnt']);
}
//4. 배송정보 정보 셋팅
order['shipping'] = fn_get_form_obj('dlvylcForm-ordrTy01');
console.log("'order['shipping']::::", order['shipping']);
//5. 결제 정보 셋팅
order['setle'] = fn_get_form_obj('setleForm');
console.log("'order['setle']::::", order['setle']);
//6. 에누리정보 셋팅 enuriForm
/*const enuri = localStorage.getItem('enuri');
if (!fn_is_empty(enuri)) {
order['enuri'] = JSON.parse(enuri);
}*/
order['enuri'] = fn_get_form_obj('enuriForm');
console.log("'order['enuri']::::", order['enuri']);
order['mbrInnb'] = $('#mbrInnb').val();
console.log("'order['mbrInnb']::::", order['mbrInnb']);
order['sopmalCd'] = $('#sopmalCd').val();
return order;
}
/* form 정보 조회 - array 타입 [{},{}] */
const fn_get_form_obj_arr = function (id, objLength) {
const inputs = $('#' + id).serializeArray();
let groupedData = []; // 최종 결과를 담을 배열
let formObj = {}; // 현재 객체를 담을 변수
inputs.forEach(input => {
const keysAsInt = ["goodsInnb", "goodsOptnInnb", "qy", "ordrQy", "provdCnt", "evtInnb", "mbrInnb",
"dscntAmt", "subSlepric", "mlgAmtByOne", "remain", "dlvyAmt"];
formObj[input.name] = input.value; // 현재 객체에 name-value 추가
if (input.value !== null && input.value !== "") {
if (keysAsInt.includes(input.name)) {
formObj[input.name] = parseInt(input.value);
}
}
// 모든 필드(sopmalCd와 mbrInnb)가 채워지면 객체를 배열에 추가
if (Object.keys(formObj).length === objLength) {
console.log("===currentObj==", formObj);
groupedData.push(formObj); // 완성된 객체를 결과 배열에 추가
formObj = {}; // 새로운 객체로 초기화
}
});
console.log("=======groupedData======", groupedData);
return groupedData;
}
/* form 정보 조회 - 기본 타입 {} */
const fn_get_form_obj = function (id) {
let formObj = {};
const inputs = $('#' + id).serializeArray();
$.each(inputs, function (i, input) {
const keysAsInt = ["goodsInnb", "goodsOptnInnb", "qy", "ordrQy", "provdCnt", "evtInnb", "mbrInnb",
"dscntAmt", "subSlepric", "mlgAmtByOne", "remain", "dlvyAmt"];
formObj[input.name] = input.value;
if (input.value !== null && input.value !== "") {
if (keysAsInt.includes(input.name)) {
formObj[input.name] = parseInt(input.value);
}
}
});
return formObj;
/* if(input.name === "rlSetleAmt" || input.name === "dlvylcZip" || input.name === "dlvylcAdresDtl" || input.name === "dlvyGroupInnb" || input.name === "dueDt"){
formObj[input.name] = input.value;
}else {
formObj[input.name] = (!isNaN(input.value) && !/^0\d+/.test(input.value))? parseInt(input.value) : input.value;
}*/
}
/* 에러메세지 처리 */
const fn_proc_error_message = function (data) {
$('#overlay').fadeOut();
if (!data.responseJSON.resBody.message) {
alert('<spring:message code="error.internal-server"/>');
} else {
if (fn_check_json(data.responseJSON.resBody.message)) {
const errorObject = JSON.parse(data.responseJSON.resBody.message);
if (!errorObject) {
alert('<spring:message code="error.internal-server"/>');
} else {
if (!errorObject.errorMsg) {
alert('<spring:message code="error.internal-server"/>');
} else {
alert(errorObject.errorMsg);
let isMtched = false;
$('.main').eq(0).find('input, select, textarea').each(function () {
for (let idx = 0; idx < errorObject.errorFields.length; idx++) {
const name = $(this).prop('name');
if (!fn_is_empty(name)) {
if (errorObject.errorFields[idx].indexOf(name) >= 0) {
isMtched = true;
break;
}
}
}
if (isMtched) {
$(this).focus();
return false;
}
});
}
}
} else {
if (data.responseJSON.resBody.message) {
alert(data.responseJSON.resBody.message);
} else {
alert('<spring:message code="error.internal-server"/>');
}
}
}
}
</script>
<body>
<main class="main" style="display: none;">
<div class="content content--crmAdminOrder">
<spring:eval expression="@environment.getProperty('mngrfo.common.fileupload.cdnurl')" var="cdnurl"/>
<input type="hidden" id="cdnurl" value="${ cdnurl }"/>
<div class="content__inner">
<div class="page-title">
<h2 class="page-title__title">관리자 주문 등록</h2>
<div class="page-title__btn-container">
</div>
</div>
<section class="content-section">
<h3 class="order-progress__title"><em>STEP1.</em> 구매자를 선택하세요.</h3>
<div id="ordrrInfo" class="order-payment__section">
<h5 class="order-payment__title">주문자 </h5>
<form id="ordrrInfoForm">
<caption>주문자 정보</caption> <!-- 비회원이면 mbrInnb == 0으로 셋팅 -->
<input type="hidden" name="tmOrdrInnb" value="<c:out value = "${param.tm_order_seq}"/>"/><%--tm 주문 고유번호--%>
<input type="hidden" name="tmMngrInnb" value="<c:out value = "${param.manager_seq}"/>"/><%--tm 주문 관리자고유번호--%>
<br/>회원번호 : <input type="text" name="mbrInnb" id="mbrInnb" value="0"/>
<br/>회원아이디 : <input type="text" name="mbrId" id="mbrId" value=""> <%--없음--%>
<br/>회원구분 : <input type="text" name="mbrDvCd" id="mbrDvCd" value="">
<br/>이름 : <input type="text" name="mbrNm" id="mbrNm"
value="<c:out value="${param.order_user_name}"/>">
<br/>휴대폰 번호 : <input type="text" name="mbtlnb" id="mbtlnb"
value="<c:out value="${ordrMbtlnb}"/>">
<br/>이메일 : <input type="text" name="email" id="email"
value="<c:out value="${param.order_email}"/>">
</form>
</div>
<br/>쇼핑몰코드 : <input type="text" id="sopmalCd" name="sopmalCd" value="<c:out value="${sopmalCd}"/>">
<h3 class="order-progress__title"><em>STEP2.</em> 상품을 선택하세요.</h3>
<form id="goddsInfoForm">
<c:if test="${not empty goods}">
<c:forEach var="goods" items="${goods}">
<br/>상품번호 : <input type="text" name="goodsInnb" value="<c:out value="${goods.goods_seq}"/>">
<br/>상품옵션번호 : <input type="text" name="goodsOptnInnb" value="<c:out value="${goods.option_seq}"/>">
<br/>수량 : <input type="text" name="qy" value="<c:out value="${goods.option_ea}"/>">
<br/>inputOptn : <input type="text" name="inputOptn">
<br/>상품의 판매금액 : <input type="text" name="subSlepric" value="<c:out value="${goods.price}"/>">
<br/>상품/사은품구분 : <input type="text" name="goodsKndCd" value="01">
<input type = "hidden" name = "tmAt" value = "Y"/>
</c:forEach>
</c:if>
</form>
<!-- 사은품을 form 객체에 하게 되면 input 객체만 for문으로 작성 -->
<c:if test="${not empty gift}">
<form id="prsnInfoForm">
<c:forEach var="gift" items="${gift}">
<br/>상품번호 : <input type="text" name="goodsInnb" value="<c:out value="${gift.goods_seq}"/>">
<br/>상품옵션번호 : <input type="text" name="goodsOptnInnb"
value="<c:out value="${gift.option_seq}"/>"><%--사은품 상품번호로 select insert--%>
<br/>사은품수량 : <input type="text" name="provdCnt" value="<c:out value="${gift.ea}"/>">
<br/>evtInnb : <input type="text" name="evtInnb" value="<c:out value="${gift.gift_seq}"/>">
<br/>사은품 수령여부 : <input type="text" name="isRcvPrsnt" value="Y">
<input type = "hidden" name = "tmAt" value = "Y"/>
</c:forEach>
</form>
</c:if>
<div class="radio-tab-content">
<!-- 일반주문 Start -->
<div id="ordrTy01Div" class="ordr-ty-content order-payment__left">
<form id="dlvylcForm-ordrTy01">
<div class="order-payment__section">
<h5 class="order-payment__title">배송지</h5>
<!-- ('도로명' === data.addressType ? '01' : '02'); 셋팅해야함 -->
<c:choose>
<c:when test="${multi_recipient_address_type eq 'street'}">
<input type="hidden" name="dlvylcAdresDvCd" value="01"/>
<!-- 도로명주소 roadAddress 셋팅해야함 -->
<input type="hidden" name="dlvylcRnmAdres"
value="<c:out value="${multi_recipient_address_street}"/>">
</c:when>
<c:otherwise>
<input type="hidden" name="dlvylcAdresDvCd" value="02"/>
<!-- 지번주소 jibunAddress 셋팅해야함 -->
<input type="hidden" name="dlvylcLnbAdres"
value="<c:out value="${multi_recipient_address}"/>">
</c:otherwise>
</c:choose>
<input type="hidden" name="recpntTelnb" value="">
<input type="hidden" name="dlvyGroupInnb" class="dlvyGroupInnb " value="1">
<br/>기본배송비 : <input type="text" name="dftDlvyAmt" class="dftDlvyAmt " value="0">
<c:choose>
<c:when test = "${empty param.shipping_cost}">
<c:set var = "shipping_cost" value = "0"/>
</c:when>
<c:otherwise>
<c:set var = "shipping_cost" value = "${param.shipping_cost}}"/>
</c:otherwise>
</c:choose>
<br/>배송비 : <input type="text" name="dlvyAmt" class="dlvyAmt " value="${shipping_cost}">
<input type="hidden" name="couponInnb" value="">
<input type="hidden" name="dwldCouponInnb" value="">
<input type="hidden" name="dplctDscntAt" value="">
<input type="hidden" name="otrCouponSmtmUseAt" value="">
<br/>무료배송비여부 : <input type="text" name="mngrFreeDlvyUseAt" value="<c:out value="${param.admin_delivery_free}"/>">
<!-- 무료배송비 적용규칙 $(form).find('input[name="mngrFreeDlvyUseAmt"]').val('Y' === mngrFreeDlvyUseAt ? dlvyAmt : 0); 안될거같은데>?-->
<c:choose>
<c:when test="${param.admin_delivery_free eq 'Y'}">
<br/>무료배송비 : <input type="text" name="mngrFreeDlvyUseAmt" value="<c:out value="${shipping_cost}"/>">
</c:when>
<c:otherwise>
<br/>무료배송비 : <input type="text" name="mngrFreeDlvyUseAmt" value="0">
</c:otherwise>
</c:choose>
<br/>받는 분 : <input type="text" name="recpntNm"
value="<c:out value="${recipient_user_name}"/>">
<br/>우편번호 : <input type="text" name="dlvylcZip"
value="<c:out value="${multi_recipient_new_zipcode}"/>">
<c:choose>
<c:when test="${multi_recipient_address_type eq 'street'}">
<!-- 도로명주소 roadAddress 셋팅해야함 -->
<input type="hidden" name="dlvylcAdres"
value="<c:out value="${multi_recipient_address_street}"/>">
</c:when>
<c:otherwise>
<!-- 지번주소 jibunAddress 셋팅해야함 -->
<input type="hidden" name="dlvylcAdres"
value="<c:out value="${multi_recipient_address}"/>">
</c:otherwise>
</c:choose>
<br/>상세주소 : <input type="text" name="dlvylcAdresDtl"
value="<c:out value="${multi_recipient_address_detail}"/>">
<br/>휴대폰번호 : <input type="text" name="recpntMbtlnb"
value="<c:out value="${recpntMbtlnb}"/>">
<br/>배송 요청사항 : <input type="text" name="dlvyMssageCn" value="<c:out value="${memo}"/>">
</div>
</form>
</div>
<!-- 일반주문 End -->
</div>
<h3 class="order-progress__title"><em>STEP4.</em> 에누리 할인 여부를 결정하시고 관리자 주문 생성을 완료하세요.</h3>
<div class="order-payment">
<div class="order-payment__left">
<div class="table-wrapper">
<form id="enuriForm">
<input type="hidden" name="ableMlgAmt" id="ableMlgAmt" value="">
<input type="hidden" name="setleAmt" id="setleAmt" value="">
<input type="hidden" name="couponInnb" value="">
<input type="hidden" name="dwldCouponInnb" value="">
<input type="hidden" name="dplctDscntAt" value="">
<input type="hidden" name="otrCouponSmtmUseAt" value="">
<input type="hidden" name="cartCouponList" id="cartCouponList" value=""
title="장바구니 쿠폰할인">
<input type="hidden" name="useMlgAmt" id="useMlgAmt" value="" title="마일리지">
<input type="hidden" name="orginlOrdrInnb" id="orginlOrdrInnb" value="" title="원주문번호">
<br/>에누리 : <input type="text" name="enuriAmt" value="<c:out value="${param.enuri}"/>">
<br/>관리자 메모 : <input type="text" name="managerMemo"
value="<c:out value="${param.manager_memo}"/>">
</form>
</div>
<div class="order-payment__section">
<h5 class="order-payment__title">결제정보</h5>
<div class="order-method">
<c:set var="payInfo" value="${data.payInfo}"/>
<c:set var="gcpayCardUseAt" value="${'Y' == payInfo.gcpayCardUseAt}"/>
<c:set var="gcpayAcntnbUseAt" value="${'Y' == payInfo.gcpayAcntnbUseAt}"/>
<form id="setleForm">
<input type="hidden" name="mngrInnb" id="mngrInnb"
value="<c:out value="${param.manager_seq}"/>">
<input type="hidden" name="mngrId" id="mngrId"
value="<c:out value="${param.manager_id}"/>">
<input type="hidden" name="mngrNm" id="mngrNm" value="">
<!------------ rlSetleAmt : 실결제금액 셋팅 중요 --------------->
<input type="hidden" name="rlSetleAmt" id="rlSetleAmt" value="${rlSetleAmt}">
<input type="hidden" name="lmttUseMlg" id="lmttUseMlg" value="">
<input type="hidden" name="siteCdMid" id="siteCdMid"
value="<c:out value="${data.payInfo.kcpMid}"/>">
<input type="hidden" name="siteCdKinMid" id="siteCdKinMid"
value="<c:out value="${data.payInfo.kcpKeyinMid}"/>">
<input type="hidden" name="dueDt" id="dueDt"
value="<c:out value="${data.payInfo.dueDt}"/>">
<input type="hidden" name="setleSetupTyCd" id="setleSetupTyCd"
value="<c:out value="${data.payInfo.setleSetupTyCd}"/>">
<input type="hidden" name="ordrDvCd" id="ordrDvCd" value="02"> <!-- 관리자:02 -->
<!-- 넘어오는 값이 수기:01, 가상계좌:04, 무통장:02로 셋팅 -->
<c:choose>
<c:when test="${param.payment eq 'bank'}">
<c:set var="setleTyCd" value="02"/>
</c:when>
<c:when test="${param.payment eq 'virtual'}">
<c:set var="setleTyCd" value="04"/>
</c:when>
<c:when test="${param.payment eq 'card'}">
<c:set var="setleTyCd" value="01"/>
</c:when>
</c:choose>
<br/>결제방법 : <input type="text" name="setleTyCd" id="setleTyCd" value="${setleTyCd}">
<!-- 넘어오는 값이 수기:Y, 그외 N 셋팅 -->
<c:choose>
<c:when test="${setleTyCd eq '01'}">
<c:set var="isKeyIn" value="Y"/>
</c:when>
<c:otherwise>
<c:set var="isKeyIn" value="N"/>
</c:otherwise>
</c:choose>
<br/>수기여부 : <input type="text" name="isKeyIn" id="isKeyIn" value="${isKeyIn}">
<!--
<input type="hidden" name="gcpayCardUseAt" id="gcpayCardUseAt" value="${payInfo.gcpayCardUseAt}">
<input type="hidden" name="gcpayAcntnbUseAt" id="gcpayAcntnbUseAt" value="${payInfo.gcpayAcntnbUseAt}">
<input type="hidden" name="gcpayMethodId" id="gcpayMethodId" value="">
<input type="hidden" name="gcpayCardInstallmentPlan" id="gcpayCardInstallmentPlan" value="">
<input type="hidden" name="gcpayUseCardPoint" id="gcpayUseCardPoint" value="">
-->
<div class="order-method">
<div class="custom-radio is-medium">
<c:choose>
<c:when test="${'01' eq payInfo.setleSetupTyCd}">
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="kcp">
<input type="hidden" name="pg" id="pg04" value="kcp">
</c:when>
<c:when test="${'02' eq payInfo.setleSetupTyCd}">
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="toss">
<input type="hidden" name="pg" id="pg03" value="toss">
</c:when>
<c:otherwise><!-- 무통장 -->
<input type="hidden" name="pgCmpnyNm" id="pgCmpnyNm" value="">
</c:otherwise>
</c:choose>
</div>
<div id="pg03Content" class="pgContent order-method-normal">
<div class="order-method-normal__btn-container">
<button type="button" name="01" id="hndwr-card"
class="order-method-normal__btn">카드수기결제 01
</button>
<button type="button" name="04" id="virtual"
class="order-method-normal__btn">가상계좌 04
</button>
<button type="button" name="02" id="bank"
class="order-method-normal__btn">무통장 02
</button>
</div>
<br/><br/><br/>카드 수기결제 정보
<br/>카드번호 : <input type="text" name="cardNb" id="cardNb" value="<c:out value="${param.card_number}"/>">
<!-- 유효기간이 (YY/MM) 형태임. MM/YY인 형태로 전달되어 온다면 변경해줘야함 -->
<br/>유효기간(YY/MM) : <input type="text" name="validpdDt" id="validpdDt" value="<c:out value="${param.card_year}${param.card_month}"/>">
<br/>생년월일 또는 사업자번호 : <input type="text" name="brthDe" id="brthDe" value="<c:out value="${param.card_code}"/>">
<br/>카드비밀번호(앞2자리) : <input type="password" name="cardPassword" id="cardPassword" value="<c:out value="${param.card_password}"/>">
<br/>할부기간(mm) : <input type="text" name="instlmtMtCnt" id="instlmtMtCnt" value="<c:out value="${param.card_plan}"/>">
<br/><br/><br/>무통장 정보
<br/>입금자명 : <input type="text" name="rcpmnyerNm" id="rcpmnyerNm" value="<c:out value="${param.depositor}"/>">
<c:if test="${not empty nbkkInfo.nbkkList.acntSetup}">
<c:forEach var="nbkk" items="${nbkkInfo.nbkkList.acntSetup}"
varStatus="status">
<c:if test="${status.index eq 0}">
<br/>예금주 : <input type="text" name="dpstrNm" id="dpstrNm"
value="<c:out value="${nbkk.dpstrNm}"/>">
<c:forEach var="bank" items="${nbkkInfo.nbkkList.bankCdList}">
<c:if test="${nbkk.bankCd eq bank.cd}">
<br/>은행명 : <input type="text" name="bnnkNm" id="bnnkNm"
value="<c:out value="${bank.cdNm}"/>">
</c:if>
</c:forEach>
<br/>계좌번호 : <input type="text" name="rcpmnyAcntnb"
id="rcpmnyAcntnb"
value="<c:out value="${nbkk.acntnb}"/>">
</c:if>
</c:forEach>
</c:if>
<br/><br/><br/>현금영수증 정보
<!-- 발급안함 "" , 발급함 "01" 셋팅 -->
<c:set var="cshRciptIssuAt" value=""/>
<c:if test="${param.typereceipt eq '2'}">
<c:set var="cshRciptIssuAt" value="01"/>
</c:if>
<br/>발급여부 : <input type="text" name="cshRciptIssuAt"
value="${cshRciptIssuAt}">
<!-- 개인소득공제용 "01" , 사업자지출증빙 "02" 셋팅 -->
<c:choose>
<c:when test="${param.cuse eq '0'}">
<c:set var="issuTrgetDvCd" value="01"/>
</c:when>
<c:when test="${param.cuse eq '1'}">
<c:set var="issuTrgetDvCd" value="02"/>
</c:when>
<c:otherwise>
<c:set var="issuTrgetDvCd" value=""/>
</c:otherwise>
</c:choose>
<br/>현금영수증발급종류 : <input type="text" name="issuTrgetDvCd"
value="${issuTrgetDvCd}">
<!-- 개인소득공제용 이면 휴대폰 번호를 셋팅 / 아니면 사업자번호셋팅 -->
<br/>휴대폰번호 : <input type="text" name="issuTrgetMbtlnb"
value="<c:out value="${issuTrgetMbtlnb}"/>">
<br/>사업자번호 : <input type="text" name="issuTrgetBsnmNb"
value="<c:out value="${issuTrgetBsnmNb}"/>">
</div>
</div>
</form>
</div>
</div>
</div>
<div class="order-payment__right">
<div class="order-payment__btn-container">
<button type="button" id="btnSetle" class="order-payment__btn">결제하기</button>
</div>
</div>
</div>
</section>
</div>
</div>
</main>
<div id="setleDiv"></div>
<!-- 결제관련 스크립트 시작 -->
<script>
/****************************************************************/
/* m_Completepayment 설명 */
/****************************************************************/
/* 인증완료시 재귀 함수 */
/* 해당 함수명은 절대 변경하면 안됩니다. */
/* 해당 함수의 위치는 kcp_spay_hub.js 보다먼저 선언되어여 합니다. */
/* Web 방식의 경우 리턴 값이 form 으로 넘어옴 */
/****************************************************************/
function m_Completepayment(FormOrJson, closeEvent) {
console.log(closeEvent);
console.log(FormOrJson);
var frm = document.order_info;
/********************************************************************/
/* FormOrJson은 가맹점 임의 활용 금지 */
/* frm 값에 FormOrJson 값이 설정 된 frm 값으로 활용 하셔야 됩니다. */
/********************************************************************/
GetField(frm, FormOrJson);
console.log(frm);
console.log(FormOrJson);
if (frm.res_cd.value == "0000") {
/* 결제인증 완료 후 결제승인 요청을 위한 비즈니스 로직 구현 */
frm.submit();
} else {
/* 결제인증 실패에 대한 처리 */
alert("[" + frm.res_cd.value + "] " + frm.res_msg.value);
location.reload();
closeEvent();
}
}
</script>
<c:choose>
<c:when test="${data.payInfo.kcpMid eq 'T0007'}"><!-- 개발 결제창 호출 JS -->
<script type="text/javascript" src="https://testspay.kcp.co.kr/plugin/kcp_spay_hub.js"></script>
</c:when>
<c:otherwise><!-- 운영 결제창 호출 JS -->
<script type="text/javascript" src="https://spay.kcp.co.kr/plugin/kcp_spay_hub.js"></script>
</c:otherwise>
</c:choose>
<script>
/* 표준웹 실행 */
function jsf__pay(form) {
try {
KCP_Pay_Execute_Web(form);
} catch (e) {
console.log(e)
/* IE 에서 결제 정상종료시 throw로 스크립트 종료 */
}
}
</script>
<script src="https://js.tosspayments.com/v1"></script>
<script>
//test_ck_0RnYX2w5322yZWP2kbBR3NeyqApQ : drumj2
//const tossPayClientKey = '${data.payInfo.tossClntKey}';
const tossClientKey = '${data.payInfo.tossClntKey}';
const gcPayClientKey = '${data.payInfo.bpayClntKey}';
function pay(method, requestJson) {
TossPayments(tossClientKey).requestPayment(method, requestJson).catch(function (error) {
if (error.code === "USER_CANCEL") {
alert("토스 결제를 취소하였습니다.");
location.reload();
} else {
alert(error.message);
}
});
}
function tosspay(method, requestJson) {
TossPayments(tossClientKey).requestPayment(method, requestJson).catch(function (error) {
if (error.code === "USER_CANCEL") {
alert("토스페이 결제를 취소하였습니다.");
location.reload();
} else {
alert(error.message);
}
});
}
// 스크립트가 모두 로딩된 후 실행
$(document).ready(function () {
fn_order();
});
</script>
<!-- 결제관련 스크립트 종료 -->
</body>
</html>