fix : 결제취소, 환불 원화추가

This commit is contained in:
jazz
2026-03-05 17:59:33 +09:00
parent 1ed4ceafe8
commit 3dc906cfc6
5 changed files with 40 additions and 78 deletions

View File

@@ -1733,7 +1733,7 @@
, #{refundAcntDpstrNm}
, REPLACE(#{refundAcntnb}, '-', '')
, #{refundAmt}
, ROUND((SELECT GO2.WON_RL_SETLE_AMT/GO2.RL_SETLE_AMT FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * ${refundAmt},0)
, ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * ${refundAmt},0)
, #{refundAccmlmnyAmt}
, #{refundDlvyAmt}
, #{wonRefundDlvyAmt}
@@ -4866,9 +4866,9 @@
<![CDATA[
UPDATE GC_ORDER_REFUND
SET RETURN_DLVY_AMT = #{returnDlvyAmt}
, WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.WON_RL_SETLE_AMT/GO2.RL_SETLE_AMT FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{returnDlvyAmt}, 0)
, WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{returnDlvyAmt}, 0)
, REFUND_DLVY_AMT = #{refundDlvyAmt}
, WON_REFUND_DLVY_AMT = ROUND((SELECT GO2.WON_RL_SETLE_AMT/GO2.RL_SETLE_AMT FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundDlvyAmt}, 0)
, WON_REFUND_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundDlvyAmt}, 0)
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDER_REFUND_INNB = #{orderRefundInnb}
]]>

View File

@@ -854,7 +854,7 @@
WHEN RE.RETURN_DLVY_RSPNSBL_CD = '02' THEN GREATEST(RE.REFUND_AMT + IFNULL(RE.REFUND_DLVY_AMT, 0), 0)
END
END
END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT)))
END + (REI.REFUND_MLG_AMT + REI.REFUND_MLG_RMNDR_AMT) + (REI.REFUND_CASH_AMT + REI.REFUND_CASH_RMNDR_AMT)+ IFNULL((REI.REFUND_GOODS_COUPON_UNIT_AMT + REI.REFUND_GOODS_COUPON_REST_AMT), 0) + IFNULL((REI.REFUND_CART_COUPON_UNIT_AMT + REI.REFUND_CART_COUPON_REST_AMT), 0) ))
, 0) AS RL_REFUND_AMT -- 마일리지, 배송비 제외한 실 환불 금액
, IFNULL(
ROUND(CASE
@@ -913,6 +913,7 @@
, 0) AS RL_DLVY_AMT_REFUND_AMT -- 반품 배송비
, FN_GET_COMMCODE_NAME('SETLE_MTH', ST.SETLE_TY_CD) AS SETLE_TY_CD_NM
, ROUND(ST.WON_SETLE_AMT) AS WON_SETLE_AMT
, O.BUY_RATE
FROM (SELECT REI.SOPMAL_CD
, REI.ORDER_REFUND_INNB
, ROUND(SUM(REI.GOODS_REFUND_AMT)) AS REFUND_AMT -- * REI.REFUND_QY
@@ -1067,7 +1068,7 @@
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyAmt)">
RETURN_DLVY_AMT = REPLACE(#{returnDlvyAmt}, ',', ''),
WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.WON_RL_SETLE_AMT/GO2.RL_SETLE_AMT FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * REPLACE(#{returnDlvyAmt}, ',', ''), 0) ,
WON_RETURN_DLVY_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * REPLACE(#{returnDlvyAmt}, ',', ''), 0) ,
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(returnDlvyRspnsblCd)">
<![CDATA[RETURN_DLVY_RSPNSBL_CD = #{returnDlvyRspnsblCd},]]>
@@ -1147,7 +1148,7 @@
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(refundAmt)">
REFUND_AMT = #{refundAmt},
WON_REFUND_AMT = ROUND((SELECT GO2.WON_RL_SETLE_AMT/GO2.RL_SETLE_AMT FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt}, 0) ,
WON_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt}, 0) ,
</if>
MNGR_INNB = #{updusr},
UPDT_DT = SYSDATE()

View File

@@ -7545,7 +7545,7 @@ main {
}
.priceSum__inner {
display: flex;
gap: 24px;
gap: 18px;
align-items: center;
}
.priceSum__item {

View File

@@ -374,8 +374,7 @@
function rlRefundAmtProcessing() {
let rlSetleAmt = parseAmount('${resultMap.result.totRefundDscntAmt.rlSetleAmt}');
let wonSetleAmt = parseAmount('${resultMap.result.totRefundDscntAmt.wonSetleAmt}');
let buyRate = parseAmount('${resultMap.result.totRefundDscntAmt.buyRate}');
let refundTyCd = '<c:out value="${ resultMap.result.refnd.refundTyCd }"/>';
let returnMthCd = $('input[name="returnMthCd"]:checked').val(); // 반품 방법 코드
let refundDlvyAmt = '<c:out value="${ resultMap.result.refnd.refundDlvyAmt }"/>'; // 환불 배송비 금액
@@ -400,44 +399,38 @@
let setleAmtMlg = 0;
let setleAmtCash = 0;
/*상품금액 합계*/
$('input[name="goodsRefundAmt"]').each(function(idx) {
let goodsRefundAmt = parseAmount($(this).val());
// console.log("상품별 환불 금액 : ", goodsRefundAmt);
refundAmt = refundAmt + goodsRefundAmt;
setleAmtGoods = setleAmtGoods + goodsRefundAmt;
});
/*마일리지 취소금액 합계*/
$('input[name="totSnggdsRefundMlgAmt"]').each(function(idx) {
let snggdsRefundMlgAmt = parseAmount($(this).val());
// console.log("상품별 마일리지 취소 금액 : ", snggdsRefundMlgAmt);
refundMltAmt = refundMltAmt + snggdsRefundMlgAmt;
setleAmtMlg = setleAmtMlg + snggdsRefundMlgAmt;
});
/*gc머니 취소금액 합계*/
$('input[name="totCashDscntUnit"]').each(function(idx) {
let snggdsRefundCashAmt = parseAmount($(this).val());
// console.log("상품별 마일리지 취소 금액 : ", snggdsRefundMlgAmt);
refundCashAmt = refundCashAmt + snggdsRefundCashAmt;
setleAmtCash = setleAmtCash + snggdsRefundCashAmt;
});
let rlRefundAmt = 0;
let realRefundAmt = 0; /*실제 결제취소(환불)금액*/
rlRefundAmt = refundAmt + refundMltAmt + refundCashAmt;
realRefundAmt = refundAmt;
// rlRefundAmt = parseAmount(rlRefundAmt);
// 숫자로 변환
@@ -447,11 +440,8 @@
if (refundTyCd === '01') {
rlRefundAmt = rlRefundAmt + refundDlvyAmt;
realRefundAmt = realRefundAmt + refundDlvyAmt;
if (refundDlvyAmt > 0) {
$('.rlRefundamtBeforeArea').show();
@@ -462,11 +452,8 @@
$('.rlReturnamtBeforeArea').hide();
$('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmtStdr));
} else if (refundTyCd === '02') {
if (returnDlvyRspnsblCd === '01') { // 구매자
if (returnMthCd === '01') { // 고객이 배송
// returnDlvyAmt = returnDlvyAmtStdr - refundDlvyAmt > 0 ? returnDlvyAmtStdr - refundDlvyAmt : 0;
// $('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmt));
@@ -478,24 +465,20 @@
if (returnDlvyPymntTyCd === '02') { // 환불 금액에서 차감
rlRefundAmt = rlRefundAmt - returnDlvyAmt > 0 ? rlRefundAmt - returnDlvyAmt : 0;
realRefundAmt = realRefundAmt - returnDlvyAmt > 0 ? realRefundAmt - returnDlvyAmt : 0;
$('.shippingReturnDlvyAmt').text(formatWithComma(returnDlvyAmt))
$('.rlReturnamtBeforeArea').show();
} else {
$('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmt));
$('.rlReturnamtBeforeArea').hide();
}
$('.rlRefundamtBeforeArea').hide();
// $('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmt));
} else if (returnDlvyRspnsblCd === '02') { // 판매자
console.log("refundDlvyAmt:",refundDlvyAmt)
rlRefundAmt = rlRefundAmt + refundDlvyAmt;
realRefundAmt = realRefundAmt + refundDlvyAmt;
if (refundDlvyAmt > 0) {
$('.rlRefundamtBeforeArea').show();
@@ -519,11 +502,13 @@
$('.setleAmtCash').text(formatWithComma(setleAmtCash)); // 결제내역 영역의 상품 마일리지 사용 금액
rlRefundAmt = rlRefundAmt > 0 ? rlRefundAmt : 0;
$('.rlRefundAmt').text(formatWithComma(rlRefundAmt));
realRefundAmt = realRefundAmt > 0 ? realRefundAmt : 0;
/*엔화 비율을 구해서 한화환불금액 계산*/
console.log("rlRefundAmt:",rlRefundAmt,"rlSetleAmt:",rlSetleAmt,"wonSetleAmt:",wonSetleAmt);
let wonRlRefundAmt = Math.ceil((rlRefundAmt / rlSetleAmt) * wonSetleAmt);
$('.rlRefundAmt').text(formatWithComma(rlRefundAmt));
$('.realRefundAmt').text(formatWithComma(realRefundAmt));
/*환불금액 한화환불금액 계산*/
let wonRlRefundAmt = Math.round(realRefundAmt * buyRate);
wonRlRefundAmt = wonRlRefundAmt > 0 ? wonRlRefundAmt : 0;
$('.wonRlRefundAmt').text(formatWithComma(wonRlRefundAmt));
}
@@ -531,8 +516,7 @@
function rlRefundAmtProcessingInput() {
let rlSetleAmt = parseAmount('${resultMap.result.totRefundDscntAmt.rlSetleAmt}');
let wonSetleAmt = parseAmount('${resultMap.result.totRefundDscntAmt.wonSetleAmt}');
let buyRate = parseAmount('${resultMap.result.totRefundDscntAmt.buyRate}');
let refundTyCd = '<c:out value="${ resultMap.result.refnd.refundTyCd }"/>';
let returnMthCd = $('input[name="returnMthCd"]:checked').val(); // 반품 방법 코드
let refundDlvyAmt = '<c:out value="${ resultMap.result.refnd.refundDlvyAmt }"/>'; // 환불 배송비 금액
@@ -555,43 +539,32 @@
let setleAmtCash = 0;
$('input[name="goodsRefundAmt"]').each(function(idx) {
let goodsRefundAmt = parseAmount($(this).val());
refundAmt = refundAmt + goodsRefundAmt;
setleAmtGoods = setleAmtGoods + goodsRefundAmt;
});
$('input[name="totSnggdsRefundMlgAmt"]').each(function(idx) {
let snggdsRefundMlgAmt = parseAmount($(this).val());
refundMltAmt = refundMltAmt + snggdsRefundMlgAmt;
setleAmtMlg = setleAmtMlg + snggdsRefundMlgAmt;
});
$('input[name="totCashDscntUnit"]').each(function(idx) {
let snggdsRefundCashAmt = parseAmount($(this).val());
refundCashAmt = refundCashAmt + snggdsRefundCashAmt;
setleAmtCash = setleAmtCash + snggdsRefundCashAmt;
});
let rlRefundAmt = 0;
let realRefundAmt = 0; /*실제 결제취소(환불)금액*/
rlRefundAmt = refundAmt + refundMltAmt + refundCashAmt;
realRefundAmt = refundAmt;
// rlRefundAmt = parseAmount(rlRefundAmt);
// 숫자로 변환
@@ -599,14 +572,9 @@
returnDlvyAmt = parseAmount(returnDlvyAmt);
returnDlvyAmtStdr = parseAmount(returnDlvyAmtStdr);
if (refundTyCd === '01') { // 결제 취소
rlRefundAmt = rlRefundAmt + refundDlvyAmt;
realRefundAmt = realRefundAmt + refundDlvyAmt;
if (refundDlvyAmt > 0) {
$('.rlRefundamtBeforeArea').show();
@@ -617,15 +585,10 @@
$('.rlReturnamtBeforeArea').hide();
$('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmtStdr));
} else if (refundTyCd === '02') { // 반품환불
if (returnDlvyRspnsblCd === '01') { // 구매자
if (returnMthCd === '01') { // 고객이 배송
// returnDlvyAmt = returnDlvyAmt - refundDlvyAmt > 0 ? returnDlvyAmt - refundDlvyAmt : 0;
$('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmt));
} else if (returnMthCd === '02') { // 상점이 회수
// $('input[name="returnDlvyAmt"]').val(formatWithComma($('input[name="returnDlvyAmt"]').val()));
@@ -635,24 +598,21 @@
if (returnDlvyPymntTyCd === '02') { // 환불 금액에서 차감
rlRefundAmt = rlRefundAmt - returnDlvyAmt > 0 ? rlRefundAmt - returnDlvyAmt : 0;
realRefundAmt = realRefundAmt - returnDlvyAmt > 0 ? realRefundAmt - returnDlvyAmt : 0;
$('.shippingReturnDlvyAmt').text(formatWithComma(returnDlvyAmt))
$('.rlReturnamtBeforeArea').show();
} else {
$('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmt));
$('.rlReturnamtBeforeArea').hide();
}
$('.rlRefundamtBeforeArea').hide();
// $('input[name="returnDlvyAmt"]').val(formatWithComma(returnDlvyAmt));
} else if (returnDlvyRspnsblCd === '02') { // 판매자
rlRefundAmt = rlRefundAmt + refundDlvyAmt;
realRefundAmt = realRefundAmt + refundDlvyAmt;
if (refundDlvyAmt > 0) {
$('.rlRefundamtBeforeArea').show();
@@ -676,11 +636,12 @@
$('.setleAmtCash').text(formatWithComma(setleAmtCash)); // 결제내역 영역의 상품 마일리지 사용 금액
rlRefundAmt = rlRefundAmt > 0 ? rlRefundAmt : 0;
realRefundAmt = realRefundAmt > 0 ? realRefundAmt : 0;
$('.rlRefundAmt').text(formatWithComma(rlRefundAmt));
$('.realRefundAmt').text(formatWithComma(realRefundAmt));
/*엔화 비율을 구해서 한화환불금액 계산*/
console.log("rlRefundAmt:",rlRefundAmt,"rlSetleAmt:",rlSetleAmt,"wonSetleAmt:",wonSetleAmt);
let wonRlRefundAmt = Math.ceil((rlRefundAmt / rlSetleAmt) * wonSetleAmt);
/*환불금액 한화환불금액 계산*/
let wonRlRefundAmt = Math.round(realRefundAmt * buyRate);
wonRlRefundAmt = wonRlRefundAmt > 0 ? wonRlRefundAmt : 0;
$('.wonRlRefundAmt').text(formatWithComma(wonRlRefundAmt));
@@ -2815,11 +2776,11 @@
</span>${krUnit}
|
환불 금액 :
<span class="comma rlRefundAmt">
<span class="comma <c:if test="${ resultMap.result.refnd.refundProcsSttusCd ne '03'}">realRefundAmt</c:if>">
<c:out value="${ reTotAmt.realRefundAmt }"/>
</span>${curUnit}
/
<span class="comma tfoot-sum__sum-num wonRlRefundAmt">
<span class="comma tfoot-sum__sum-num <c:if test="${ resultMap.result.refnd.refundProcsSttusCd ne '03'}">wonRlRefundAmt</c:if>">
<c:out value="${ reTotAmt.realWonRefundAmt }"/>
</span>${krUnit}

View File

@@ -865,7 +865,7 @@
<div class="priceSum__total">
<span class="priceSum__totalTitle">실 환불금액</span>
<div class="priceSum__totalPrice">
<span class="comma"><c:out value="${ reTotAmt.rlRefundAmt }"/></span>
<span class="comma"><c:out value="${ reTotAmt.realRefundAmt }"/></span>
<span class="priceUnit">${curUnit}</span>
</div>
<span class="priceSum__itemPrice">