Compare commits

...

3 Commits

Author SHA1 Message Date
이대환
acb8d314d9 ACI Express - ACI Key 발급 API
배송조회(운송장번호 조회) - aciExpress 팝업 적용
>> 쇼핑몰 주문/배송 > 주문 상세,
>> 주문 관리 > 전체주문조회 > 주문상세,
>> 주문 관리 > 출고 조회 > 출고 목록 조회,
>> 주문 관리 > 출고 조회 > 출고 상세 조회,
>> 주문 관리 > 출고 조회 > 출고 상태 변경,
>> 반품환불관리 > 반품환불 처리 > 반품/환불 상세 > 원주문 정보 펼쳐보기

(cherry picked from commit 1e1ee301d6)
2026-05-28 17:58:08 +09:00
이대환
45c85b6079 fix: 주문관리 > 전체주문조회 > 발주서 엑셀 다운로드 - 수취인 전화번호 복호화 2026-05-28 17:57:53 +09:00
이대환
7be7a8851d fix: 개인결제관리 > 개인결제 등록/수정 - 결제수단 체크박스
(cherry picked from commit 6ea1568800)
2026-05-28 17:57:16 +09:00
19 changed files with 305 additions and 155 deletions

View File

@@ -46,6 +46,9 @@ public class BOCommonService {
@Value("${secret.key}")
private String secretKey;
@Value("${aciexpress.apikey}")
private String aciApiKey;
/**
* <p>비밀번호를 암호화 한다</p>
@@ -287,4 +290,10 @@ public class BOCommonService {
return secretKey;
}
/**
* aci Api키 조회
* @return String
*/
public String selectAciApiKey() {return aciApiKey;}
}

View File

@@ -161,6 +161,14 @@ public interface BODlivyMapper {
public List<BODlivyVO> selectBOOrdrDlvyDtlsInqireGroupOrdr(BODlivyVO boDlivyVO);
/**
* 주문 배송 추적 조회 : 송장번호 조회
* @param boDlivyVO
* @return
*/
public String selectBOOrdrInvcnb(BODlivyVO boDlivyVO);
/**
* 출고 상태 '상품 준비' or '배송중' 되돌리기 / 출고 상태 변경 단건
* @param dlivyVO

View File

@@ -1,59 +1,40 @@
package com.wb.domainserver.domain.gcone.ordr.dlivy.service;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOShopSetupVO;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
import com.wb.domainserver.domain.gcone.ordr.atmcrcpmny.vo.BOAtmcRcpmnyCnfirmVO;
import com.wb.domainserver.domain.gcone.ordr.dlivy.mapper.BODlivyMapper;
import com.wb.domainserver.domain.gcone.ordr.dlivy.vo.*;
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrLogVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import io.micrometer.common.util.StringUtils;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Marshaller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.gcone.ordr.dlivy.mapper.BODlivyMapper;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.springframework.web.client.RestTemplate;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Slf4j
@@ -83,6 +64,9 @@ public class BODlivyService {
@Autowired
BORtngudrefndService boRtngudrefndService;
@Autowired
private BOCommonService boCommonService;
/* ####################################
출고 리스트 서비스 시작
@@ -494,6 +478,167 @@ public class BODlivyService {
return contents;
}
/**
* ACI Key 발급 API
* @param
* @return List<DataMap>
*/
public DataMap selectBOAciKey() throws WnbtRestException {
String apiKey = boCommonService.selectAciApiKey();
DataMap message = new DataMap();
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("USERID", "UNIHAN");
headers.set("APIKEY", apiKey);
Map<String, Object> body = new HashMap<>();
HttpEntity<String> apiRequest =
new HttpEntity<>("{}", headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
"https://acieshop.com/api/kr/pod/v1.5/",
HttpMethod.POST,
apiRequest,
String.class
);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(response.getBody());
message.put("status", jsonNode.get("Status").asText());
message.put("aciKey", jsonNode.get("ACIKey").asText());
message.put("errMsg", jsonNode.get("ErrMsg").asText());
}catch (WnbtRestException wre){
log.error(wre.getMessage());
throw wre;
}catch (RuntimeException re){
log.error(re.getMessage());
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
/**
* 화물 추적 - 운송장 조회 API
* @param boDlivyVO
* @return List<DataMap>
*/
public DataMap updateBOAciDelivery(BODlivyVO boDlivyVO) throws WnbtRestException {
DataMap aciMap = selectBOAciKey();
String aciKey = String.valueOf(aciMap.get("aciKey"));
DataMap message = new DataMap();
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("USERID", "UNIHAN");
headers.set("ACIKey", aciKey);
Map<String, Object> body = new HashMap<>();
body.put("BLNO", mapper.selectBOOrdrInvcnb(boDlivyVO));
HttpEntity<Map<String, Object>> apiRequest =
new HttpEntity<>(body, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(
"ex",
HttpMethod.POST,
apiRequest,
String.class
);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(response.getBody());
message.put("status", jsonNode.get("Status").asText());
JsonNode podInfoNode = jsonNode.get("PODInfo");
if(!podInfoNode.isNull()) {
List<DataMap> podInfoList = new ArrayList<>();
for(JsonNode podInfoItem : podInfoNode) {
DataMap PODInfo = new DataMap();
PODInfo.put("blno", podInfoItem.get("BLNO").asText());
PODInfo.put("dateLocalwhin", podInfoItem.get("DATE_LOCALWHIN").asText());
PODInfo.put("dateLocaldeparture", podInfoItem.get("DATE_LOCALDEPARTURE").asText());
PODInfo.put("dateIcnarrival", podInfoItem.get("DATE_ICNARRIVAL").asText());
PODInfo.put("dateCustomes", podInfoItem.get("DATE_CUSTOMES").asText());
PODInfo.put("dateDelivery", podInfoItem.get("DATE_DELIVERY").asText());
PODInfo.put("recipient", podInfoItem.get("RECIPIENT").asText());
PODInfo.put("wta", podInfoItem.get("WTA").asText());
PODInfo.put("wtdan", podInfoItem.get("WTDAN").asText());
List<DataMap> volumeList = new ArrayList<>();
for(JsonNode volumeItem : podInfoItem.get("VOLUME")) {
DataMap volume = new DataMap();
volume.put("width", volumeItem.get("WIDTH").asText());
volume.put("length", volumeItem.get("LENGTH").asText());
volume.put("height", volumeItem.get("HEIGHT").asText());
volumeList.add(volume);
}
PODInfo.put("volume", volumeList);
List<List> customsList = new ArrayList<>();
for(JsonNode customsItem : podInfoItem.get("CUSTOMS")) {
List<DataMap> customDetail = new ArrayList<>();
for(JsonNode customItem : customsItem) {
DataMap Custom = new DataMap();
Custom.put("dateEvent", customItem.get("DATE_EVENT").asText());
Custom.put("traceStatus", customItem.get("TRACE_STATUS").asText());
customDetail.add(Custom);
}
customsList.add(customDetail);
}
PODInfo.put("customs", customsList);
List<DataMap> localPodList = new ArrayList<>();
for(JsonNode localPodItem : podInfoItem.get("LOCAL_POD")) {
DataMap localPod = new DataMap();
localPod.put("traceStatus", localPodItem.get("TRACE_STATUS").asText());
localPod.put("dateEvent", localPodItem.get("DATE_EVENT").asText());
localPod.put("position", localPodItem.get("POSITION").asText());
localPodList.add(localPod);
}
PODInfo.put("localPod", localPodList);
podInfoList.add(PODInfo);
}
message.put("podInfo", podInfoList);
} else {
message.put("errMsg", jsonNode.get("ErrMsg").asText());
}
}catch (WnbtRestException wre){
log.error(wre.getMessage());
throw wre;
}catch (RuntimeException re){
log.error(re.getMessage());
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}catch (Exception e) {
log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
}
return message;
}
/**
* 송장번호 조회
* @param boDlivyVO
* @return List<DataMap>
*/
public String selectBOOrdrInvcnb(BODlivyVO boDlivyVO) throws WnbtRestException {
return mapper.selectBOOrdrInvcnb(boDlivyVO);
}
/**

View File

@@ -635,6 +635,8 @@ public class OrdrmngrController {
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectExcelPoDwldListInqire")
public void selectPurchOrderExcelList(HttpServletResponse response, BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
String secretKey = commonService.selectSecretkey();
ordrSrchVO.setSecretKey(secretKey);
ordrSrchVO.setSopmalCd(authSopmalCd);
//엑셀 항목별 제목에 출력될 내용 설정

View File

@@ -36,6 +36,7 @@ import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrDlvyVO;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrShippingVO;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyRefundVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
@@ -54,6 +55,7 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Base64Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
@@ -65,6 +67,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -725,26 +728,26 @@ public class MyOrdrController {
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectDlvyInqire")
public String selectDlvyInqire(BODlivyVO boDlivyVO, ModelMap model, HttpServletRequest request){
// @RequestMapping(value="/selectDlvyInqire")
// public String selectDlvyInqire(BODlivyVO boDlivyVO, ModelMap model, HttpServletRequest request){
@RequestMapping(value="/selectDlvyInqire", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectDlvyInqire(BODlivyVO boDlivyVO){
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
boDlivyVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
}
Map<String, Object> content = new HashMap<>();
content = dlivyService.selectBOOrdrDlvyDtlsInqire(boDlivyVO);
// model.addAttribute("resultMap", dlivyService.updateBOAciDelivery(boDlivyVO));
// return Util.getDeviceType(request) + "/mpage/ordr/DlvyInqireR";
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlsInqire", dlivyVO),
// model,
// "resultMap"
// );
// return "sopmal/mpage/ordr/DlvyInqireR";
return Util.getDeviceType(request) + "/mpage/ordr/DlvyInqireR";
DataMap content = new DataMap();
content.put("invcnb", dlivyService.selectBOOrdrInvcnb(boDlivyVO));
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
}

View File

@@ -365,6 +365,9 @@ mngrfo:
secret:
key: 1df5be2f7e90ae36
aciexpress:
apikey: DC94F29AFD5399F54AAE7FAA46045B65
host:
img: https://19d28cf7178139ad.kinxzone.com

View File

@@ -1332,6 +1332,20 @@
</select>
<!-- 주문 배송 추적 조회 : 송장번호 조회 -->
<select id = "selectBOOrdrInvcnb"
parameterType="com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyVO"
resultType = "String">
<![CDATA[
SELECT
GGE.INVCNB
FROM GC_GOODS_EXPORT GGE
WHERE GGE.SOPMAL_CD = #{sopmalCd}
AND GGE.ORDR_DLVY_INNB = #{ordrDlvyInnb}
]]>
</select>
<!-- 주문 배송 추적 받는사람, 보내는사람 조회 -->
<select id = "selectBOOrdrDlvyDtlInqire"
parameterType="com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyVO"

View File

@@ -1415,7 +1415,7 @@
GO.ORDR_INNB,
1 AS PURPS_DV,
GOS.RECPNT_NM,
CAST(AES_DECRYPT(UNHEX(GOS.RECPNT_MBTLNB) , '1df5be2f7e90ae36') AS CHAR(50)) AS RECPNT_MBTLNB,
CAST(AES_DECRYPT(UNHEX(GOS.RECPNT_MBTLNB) , #{secretKey}) AS CHAR(50)) AS RECPNT_MBTLNB,
NULL AS RECPNT_HP,
GOS.CSTMCLER_CD,
GOS.DLVYLC_ZIP,

View File

@@ -547,19 +547,9 @@
}
/* 출고내역 주문배송 정보 조회 */
const fn_open_dlvy_sweettracker_modal = function(dlivyInnb) {
$.ajax({
type:'post',
url:'<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>',
data:{
'dlivyInnb':dlivyInnb
},
success:function (html) {
$('#modalDiv').html(html);
$('#delivery-history-pop').remove().modal();
}
});
const fn_open_dlvy_popup = function(invcnb) {
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, 'acieView', 'width=605,height=700');
}
/* 무효/취소/반품 내역 정보 조회 */
@@ -758,11 +748,11 @@
<button type = "button" class="btn xsm gray" onclick="fn_open_dlvy_modal('#modalDiv', '#purchase-confirmation-pop', '<c:url value="/mngr/ordr/dlivy/selectPurchsDcsnProcsLogDtlsPopupForm"/>', '<c:out value="${ resultMap.result.dlivyInnb }"/>', '<c:out value="${ resultMap.result.ordrInnb }"/>');" >로그</button>
</h2>
<div class="page-title__btn-container">
<c:choose>
<%--<c:choose>
<c:when test="${ resultMap.result.dlivySttusCd ge 55 }">
<button type = "button" class="btn gray" onclick="fn_open_dlvy_modal('#modalDiv', '#delivery-history-pop', '<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>', '<c:out value="${ resultMap.result.dlivyInnb }"/>')">배송추적</button>
<button type = "button" class="btn gray" onclick="fn_open_dlvy_popup('<c:out value="${ resultMap.result.invcnb }"/>')">배송추적</button>
</c:when>
</c:choose>
</c:choose>--%>
<button type = "button" class="btn outline" onclick="fn_select_dlvy_list();">출고리스트</button>
<%-- 되돌리기 기능 제거 ( 2024-07-02 상시 회의록 참고 )
<c:choose>

View File

@@ -894,7 +894,7 @@
tr += ' </div> ';
tr += ' <div class="input-container gap-3 mt-5"> ';
tr += ' <input class="input-text md" type="text" oninput="validateInputEngNumber(this)" name="invcnb" title="운송장번호" value= "' + data.invcnb + '"> ';
tr += ' <button type = "button" onclick = "fn_open_dlvy_sweettracker_modal(\'#modalDiv\', \'#delivery-history-pop\', \'<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>\', \'' + data.dlivyInnb + '\')" ';
tr += ' <button type = "button" onclick = "fn_open_dlvy_popup(\'' + data.invcnb + '\')" ';
tr += ' class="btn xsm dark">조회</button > ';
tr += ' </div> ';
tr += ' </div> ';
@@ -1474,24 +1474,10 @@
/*********************************************************************
* 배송그룹 / 방법변경 모달 , 배송 조회 모달
* *******************************************************************/
const fn_open_dlvy_sweettracker_modal = function (modalDivSltr, modalSlrt, url, dlivyInnb) {
// const data = $(formId).serialize();
$.ajax({
type: 'POST',
url: url,
data: {
dlivyInnb : dlivyInnb
},
success: function (data) {
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
}
const fn_open_dlvy_popup = function (invcnb) {
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, 'acieView', 'width=605,height=700');
}
/*****************************************************************

View File

@@ -242,7 +242,7 @@
<div class="input-container gap-3 mt-5">
<%-- <input type="hidden" name="ordrDlvyInnb" value="<c:out value="${ exList.ordrDlvyInnb }"/>" /> --%>
<input class="input-text md" type="text" oninput="validateInputEngNumber(this)" title="송장 번호" name="dlivyUpdtVOList[${ status.index }].invcnb" value="<c:out value="${ exList.invcnb }"/>" />
<button type="button" class="btn xsm dark" onclick="fn_open_dlvy_sweettracker_modal('#modalDiv', '#delivery-history-pop', '<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>', '<c:out value="${ exList.dlivyInnb }"/>')" >조회</button>
<button type="button" class="btn xsm dark" onclick="fn_open_dlvy_popup('<c:out value="${ exList.invcnb }"/>')" >조회</button>
</div>
</div>
</td>

View File

@@ -557,7 +557,7 @@
'</div>' +
'<div class="input-container gap-3 mt-5">' +
'<input class="input-text md" type="text" oninput="validateInputEngNumber(this)" title="송장번호" value="' + invcnb +'">' +
'<button type="button" class="btn xsm dark" onclick="fn_open_dlvy_sweettracker_modal(\'#modalDiv\', \'#delivery-history-pop\', \'<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>\', ' + invcnb + ')">조회</button>' +
'<button type="button" class="btn xsm dark" onclick="fn_open_dlvy_popup(' + invcnb + ')">조회</button>' +
'</div>' +
'</div>' +
'</td>' +
@@ -731,7 +731,7 @@
'</div>' +
'<div class="input-container gap-3 mt-5">' +
'<input class="input-text md" type="text" oninput="validateInputEngNumber(this)" title="송장번호" name="dlivyUpdtVOList[' + index + '].invcnb" value="' + invcnb +'">' +
'<button type="button" class="btn xsm dark" onclick="fn_open_dlvy_sweettracker_modal(\'#modalDiv\', \'#delivery-history-pop\', \'<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>\', ' + invcnb + ')">조회</button>' +
'<button type="button" class="btn xsm dark" onclick="fn_open_dlvy_popup(' + invcnb + ')">조회</button>' +
'</div>' +
'</div>' +
'</td>' +
@@ -844,21 +844,9 @@
/*********************************************************************
* 배송그룹 / 방법변경 모달 , 배송 조회 모달
* *******************************************************************/
const fn_open_dlvy_sweettracker_modal = function (modalDivSltr, modalSlrt, url, dlivyInnb) {
$.ajax({
type: 'POST',
url: url,
data: {
dlivyInnb : dlivyInnb
},
success: function (data) {
$(modalSlrt).remove();
$(modalDivSltr).html(data);
$(modalSlrt).modal();
}
});
const fn_open_dlvy_popup = function (invcnb) {
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, 'acieView', 'width=605,height=700');
}

View File

@@ -408,13 +408,7 @@
/* 관리자 주문 > 에누리 > 결제수단 선택 이벤트 */
$('.setleMnCds').on('click', function() {
const td = $(this).closest('td');
let checkbox = $(table).find('input[name="setleMnCds"]').length;
let checkedbox = $(table).find('input[name="setleMnCds"]:checked').length;
if (checkbox !== checkedbox) {
$(td).find('#setleChkAll').prop('checked', false);
}
fn_chk_steleChkbox(this);
});
/* 관리자 주문 > 에누리 > 유효기간 체인지 이벤트 */
@@ -1670,6 +1664,19 @@
}
}
/* 개인결제 결제수단 체크박스 처리 */
const fn_chk_steleChkbox = function(target) {
const td = $(target).closest('td');
let checkbox = $(table).find('input[name="setleMnCds"]').length;
let checkedbox = $(table).find('input[name="setleMnCds"]:checked').length;
if (checkbox !== checkedbox) {
$(td).find('#setleChkAll').prop('checked', false);
} else {
$(td).find('#setleChkAll').prop('checked', true);
}
}
</script>
<body>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>

View File

@@ -124,13 +124,7 @@
/* 관리자 주문 > 에누리 > 결제수단 선택 이벤트 */
$('.setleMnCds').on('click', function() {
const td = $(this).closest('td');
let checkbox = $(table).find('input[name="setleMnCds"]').length;
let checkedbox = $(table).find('input[name="setleMnCds"]:checked').length;
if (checkbox !== checkedbox) {
$(td).find('#setleChkAll').prop('checked', false);
}
fn_chk_steleChkbox(this);
});
/* 관리자 주문 > 에누리 > 유효기간 체인지 이벤트 */
@@ -779,6 +773,19 @@
}
}
/* 개인결제 결제수단 체크박스 처리 */
const fn_chk_steleChkbox = function(target) {
const td = $(target).closest('td');
let checkbox = $(table).find('input[name="setleMnCds"]').length;
let checkedbox = $(table).find('input[name="setleMnCds"]:checked').length;
if (checkbox !== checkedbox) {
$(td).find('#setleChkAll').prop('checked', false);
} else {
$(td).find('#setleChkAll').prop('checked', true);
}
}
</script>
<body>
<%@ include file="/WEB-INF/views/comm/mngr/Header.jsp"%>

View File

@@ -123,7 +123,7 @@
</select>
</div>
<input type="text" name="invcnb" value="${goodsExport.invcnb}" oninput="validateInputEngNumber(this)" class="input-text md" title="송장번호">
<a href="javascript:void(0);" onclick="fn_open_dlvy_sweettracker_modal('${goodsExport.dlivyInnb}'); return false;" class="btn sm outline primary">조회</a>
<a href="javascript:void(0);" onclick="fn_open_dlvy_popup('${goodsExport.invcnb}'); return false;" class="btn sm outline primary">조회</a>
</div>
</form>
</c:when>
@@ -176,7 +176,7 @@
</select>
</div>
<input type="text" name="invcnb" value="${goodsExport.invcnb}" oninput="validateInputEngNumber(this)" class="input-text md" title="송장번호" readonly>
<a href="javascript:void(0);" onclick="fn_open_dlvy_sweettracker_modal('${goodsExport.dlivyInnb}'); return false;" class="btn sm outline primary">조회</a>
<a href="javascript:void(0);" onclick="fn_open_dlvy_popup('${goodsExport.invcnb}'); return false;" class="btn sm outline primary">조회</a>
</div>
</c:otherwise>
</c:choose>

View File

@@ -942,19 +942,9 @@
}
/* 출고내역 주문배송 정보 조회 */
const fn_open_dlvy_sweettracker_modal = function(dlivyInnb) {
$.ajax({
type:'post',
url:'<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>',
data:{
'dlivyInnb':dlivyInnb
},
success:function (html) {
$('#modalDiv').html(html);
$('#delivery-history-pop').remove().modal();
}
});
const fn_open_dlvy_popup = function(invcnb) {
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, 'acieView', 'width=605,height=700');
}
/* 배송그룹/방법 변경 정보 조회 */

View File

@@ -1313,19 +1313,9 @@
}
/* 출고내역 주문배송 정보 조회 */
const fn_open_dlvy_sweettracker_modal = function(dlivyInnb) {
$.ajax({
type:'post',
url:'<c:url value="/mngr/ordr/dlivy/selectOrdrDlvyDtlsInqire"/>',
data:{
'dlivyInnb':dlivyInnb
},
success:function (html) {
$('#modalDiv').html(html);
$('#delivery-history-pop').remove().modal();
}
});
const fn_open_dlvy_popup = function(invcnb) {
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, 'acieView', 'width=605,height=700');
}
/* 무효/취소/반품 내역 정보 조회 */

View File

@@ -731,17 +731,21 @@
}
/* 배송조회 팝업 화면 호출 */
const fn_call_dlvy_sweettracker_pop = function (ordrInnb) {
const fn_open_dlvy_popup = function (ordrDlvyInnb) {
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/selectDlvyInqire"/>',
data:{
ordrInnb:ordrInnb
ordrDlvyInnb:ordrDlvyInnb
},
success:function (data) {
$('#modalDiv').html(data);
// $('#modalDiv').html(data);
//
// $('#delivery-check-pop').remove().modal();
$('#delivery-check-pop').remove().modal();
let invcnb = JSON.parse(data.resBody.result).invcnb;
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, 'acieView', 'width=605,height=700');
}
});
}
@@ -1328,7 +1332,7 @@
</c:if>
</c:when>
<c:when test="${goods.ordrSttusCd > 54 && goods.ordrSttusCd < 76 && order.sknEnvrnCd ne 'POS'}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" id="inqireDlvy" class="btn-ordr-sttus btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_open_dlvy_popup('<c:out value="${goods.ordrDlvyInnb}"/>');" id="inqireDlvy" class="btn-ordr-sttus btn outline sm full">배송조회</a>
<a href="javascript:void(0);" id="reqstRefund" class="btn-ordr-sttus btn gray sm full" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');">반품신청</a>
<c:choose>
<c:when test="${goods.itemOrdrSttusCd > 54 && goods.itemOrdrSttusCd < 76 && goods.purchsDcsnAt eq 'N'}">
@@ -1477,7 +1481,7 @@
<a href="javascript:void(0);" id="reqstRefund" class="btn-ordr-sttus btn gray sm full" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');">반품신청</a>
</c:when>
<c:when test="${goods.ordrSttusCd > 54 && goods.ordrSttusCd < 76 && order.sknEnvrnCd ne 'POS'}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" id="inqireDlvy" class="btn-ordr-sttus btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_open_dlvy_popup('<c:out value="${goods.ordrDlvyInnb}"/>');" id="inqireDlvy" class="btn-ordr-sttus btn outline sm full">배송조회</a>
<a href="javascript:void(0);" id="reqstRefund" class="btn-ordr-sttus btn gray sm full" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');">반품신청</a>
<c:choose>
<c:when test="${goods.itemOrdrSttusCd > 54 && goods.itemOrdrSttusCd < 76 && goods.purchsDcsnAt eq 'N'}">

View File

@@ -425,17 +425,21 @@
/* 배송조회 팝업 화면 호출 */
const fn_call_dlvy_sweettracker_pop = function (ordrInnb) {
const fn_call_dlvy_pop = function (ordrDlvyInnb) {
$.ajax({
type: 'post',
url: '/sopmal/mpage/ordr/selectDlvyInqire',
data: {
ordrInnb: ordrInnb
ordrDlvyInnb:ordrDlvyInnb
},
success: function (data) {
$('#deliveryInfoPop').remove();
$('#modalDiv').html(data);
openModal2('deliveryInfoPop');
// $('#modalDiv').html(data);
//
// $('#delivery-check-pop').remove().modal();
let invcnb = JSON.parse(data.resBody.result).invcnb;
let url = 'https://www.acieshop.com/pod.php?OrderNo=' + invcnb;
window.open(url, '_blank');
}
});
}
@@ -794,7 +798,7 @@
<a href="javascript:void(0);" class="btn gray sm full" style="margin-top: 5px;" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');">반품신청</a>
</c:when>
<c:when test="${goods.ordrSttusCd > 54 && goods.ordrSttusCd < 76 && order.sknEnvrnCd ne 'POS'}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('${order.ordrInnb}');" class="btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_call_dlvy_pop('${goods.ordrDlvyInnb}');" class="btn outline sm full">배송조회</a>
<c:if test="${ goods.purchsDcsnAt eq 'N' }">
<a href="javascript:void(0);" class="btn gray sm full" style="margin-top: 5px;" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');">반품신청</a>
</c:if>
@@ -938,7 +942,7 @@
<a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop('${order.sopmalCd}', '${order.ordrInnb}', '${goods.ordrDlvyInnb}','${setleDt}', '${setleTyCd}', '${order.ordrSttusCd}');" class="btn gray full">결제취소</a>
</c:when>
<c:when test="${goods.ordrSttusCd > 54 && goods.ordrSttusCd < 76 && order.sknEnvrnCd ne 'POS'}">
<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('${order.ordrInnb}');" class="btn outline sm full">배송조회</a>
<a href="javascript:void(0);" onclick="fn_call_dlvy_pop('${goods.ordrDlvyInnb}');" class="btn outline sm full">배송조회</a>
<c:if test="${ goods.purchsDcsnAt eq 'N' }">
<a href="javascript:void(0);" class="btn gray sm full" style="margin-top: 5px;" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');">반품신청</a>
</c:if>