|
|
@@ -1846,12 +1846,24 @@
|
|
|
WITH GOODS_DATA AS (
|
|
|
SELECT CA.GOODS_CD
|
|
|
, G.SUPPLY_COMP_CD
|
|
|
- , G.BRAND_CD
|
|
|
+ , G.BRAND_CD
|
|
|
+ , CA.CART_SQ
|
|
|
+ , (FN_GET_APPLY_CPN1_PRICE(CA.GOODS_CD, #{frontGb}) + IFNULL(OP.ADD_PRICE, 0)) * CA.GOODS_QTY AS CURR_PRICE
|
|
|
FROM TB_CART CA
|
|
|
INNER JOIN TB_CART_DETAIL CD
|
|
|
ON CA.CART_SQ = CD.CART_SQ
|
|
|
INNER JOIN TB_GOODS G
|
|
|
ON CA.GOODS_CD = G.GOODS_CD
|
|
|
+ LEFT OUTER JOIN ( SELECT OP.ADD_PRICE
|
|
|
+ , C.CART_SQ
|
|
|
+ FROM TB_CART C
|
|
|
+ INNER JOIN TB_CART_DETAIL CD
|
|
|
+ ON C.CART_SQ = CD.CART_SQ
|
|
|
+ INNER JOIN TB_OPTION OP
|
|
|
+ ON C.GOODS_CD = OP.GOODS_CD
|
|
|
+ AND CD.OPT_CD = OP.OPT_CD
|
|
|
+ ) OP
|
|
|
+ ON CA.CART_SQ = OP.CART_SQ
|
|
|
WHERE 1=1
|
|
|
<if test="custNo == 0">
|
|
|
AND CA.CUST_NO = 0
|
|
|
@@ -1866,27 +1878,35 @@
|
|
|
</foreach>
|
|
|
)
|
|
|
SELECT Z.GOODS_CD
|
|
|
+ , Z.CART_SQ
|
|
|
+ , Z.CURR_PRICE
|
|
|
, CP.CPN_ID
|
|
|
, CP.CPN_NM
|
|
|
, CP.CPN_TYPE
|
|
|
, CP.DC_WAY
|
|
|
- , CP.DC_PVAL
|
|
|
- , CP.DC_MVAL
|
|
|
- , CP.DC_AVAL
|
|
|
+ , CASE WHEN #{frontGb} = 'P' THEN CP.DC_PVAL
|
|
|
+ WHEN #{frontGb} = 'M' THEN CP.DC_MVAL
|
|
|
+ ELSE CP.DC_AVAL END AS DC_VAL
|
|
|
, CP.MAX_DC_AMT
|
|
|
, CP.BUY_LIMIT_AMT
|
|
|
FROM TB_COUPON CP
|
|
|
- INNER JOIN TB_COUPON_CUST_GBN CGB
|
|
|
- ON CP.CPN_ID = CGB.CPN_ID
|
|
|
- AND CGB.USABLE_CUST_GB IN ('G100_10')
|
|
|
INNER JOIN TB_COUPON_CUST_GRADE CGR
|
|
|
ON CP.CPN_ID = CGR.CPN_ID
|
|
|
- AND CGR.USABLE_CUST_GRADE IN ('G110_40', 'G110_50')
|
|
|
+ INNER JOIN TB_CUST_COUPON CCP
|
|
|
+ ON CP.CPN_ID = CCP.CPN_ID
|
|
|
+ INNER JOIN TB_CUSTOMER CT
|
|
|
+ ON CT.CUST_NO = CT.CUST_NO
|
|
|
+ AND CGR.USABLE_CUST_GRADE = CT.CUST_GRADE
|
|
|
+ INNER JOIN TB_COUPON_CUST_GBN CGB
|
|
|
+ ON CP.CPN_ID = CGB.CPN_ID
|
|
|
+ AND CGB.USABLE_CUST_GB = CT.CUST_GB
|
|
|
INNER JOIN (
|
|
|
SELECT X.*
|
|
|
FROM (
|
|
|
SELECT CR.CPN_ID
|
|
|
, GD.GOODS_CD
|
|
|
+ , GD.CART_SQ
|
|
|
+ , GD.CURR_PRICE
|
|
|
FROM TB_COUPON_REFVAL CR
|
|
|
INNER JOIN GOODS_DATA GD
|
|
|
ON CR.REF_VAL = GD.GOODS_CD
|
|
|
@@ -1896,6 +1916,8 @@
|
|
|
UNION
|
|
|
SELECT CR.CPN_ID
|
|
|
, GD.GOODS_CD
|
|
|
+ , GD.CART_SQ
|
|
|
+ , GD.CURR_PRICE
|
|
|
FROM (
|
|
|
SELECT C4.LEAF_CATE_NO
|
|
|
, CASE WHEN X = 1 THEN 'CATE1_NO'
|
|
|
@@ -1941,6 +1963,8 @@
|
|
|
UNION
|
|
|
SELECT CR1.CPN_ID
|
|
|
, GD.GOODS_CD
|
|
|
+ , GD.CART_SQ
|
|
|
+ , GD.CURR_PRICE
|
|
|
FROM GOODS_DATA GD
|
|
|
INNER JOIN TB_COUPON_REFVAL CR1
|
|
|
ON GD.SUPPLY_COMP_CD = CR1.REF_VAL
|
|
|
@@ -1958,13 +1982,27 @@
|
|
|
AND CR.DEL_YN = 'N'
|
|
|
) Z
|
|
|
ON Z.CPN_ID = CP.CPN_ID
|
|
|
- INNER JOIN TB_CUST_COUPON CCP
|
|
|
- ON CP.CPN_ID = CCP.CPN_ID
|
|
|
WHERE 1=1
|
|
|
- AND CP.SITE_CD = '10'
|
|
|
+ <if test="cpnId != null and cpnId != 0">
|
|
|
+ AND CP.CPN_ID = #{cpnId}
|
|
|
+ </if>
|
|
|
+ AND CP.SITE_CD = 'G000_10'
|
|
|
+ AND CP.CPN_STAT = 'G232_11' -- 진행쿠폰
|
|
|
AND CP.CPN_TYPE IN ('G230_11', 'G230_20') -- 상품쿠폰, 장바구니쿠폰
|
|
|
AND CP.AVAIL_STDT <![CDATA[<]]> CURRENT_TIMESTAMP
|
|
|
AND CP.AVAIL_EDDT > CURRENT_TIMESTAMP
|
|
|
+ GROUP BY Z.GOODS_CD
|
|
|
+ , Z.CART_SQ
|
|
|
+ , Z.CURR_PRICE
|
|
|
+ , CP.CPN_ID
|
|
|
+ , CP.CPN_NM
|
|
|
+ , CP.CPN_TYPE
|
|
|
+ , CP.DC_WAY
|
|
|
+ , CP.DC_PVAL
|
|
|
+ , CP.DC_MVAL
|
|
|
+ , CP.DC_AVAL
|
|
|
+ , CP.MAX_DC_AMT
|
|
|
+ , CP.BUY_LIMIT_AMT
|
|
|
ORDER BY Z.GOODS_CD
|
|
|
, CP.CPN_ID
|
|
|
</select>
|