|
|
@@ -482,33 +482,33 @@
|
|
|
<!-- 상품 혜택가 목록 -->
|
|
|
<sql id="getGoodsBenefitList_sql">
|
|
|
SELECT GOODS_CD
|
|
|
- , CUST_GB
|
|
|
+ , 'G100_00' AS CUST_GB
|
|
|
, CURR_PRICE
|
|
|
, MIN(CURR_PRICE -
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
|
|
|
ELSE
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS PC_PRICE
|
|
|
+ END) )AS PC_CURR_PRICE
|
|
|
, MIN(CURR_PRICE -
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
|
|
|
ELSE
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS MO_PRICE
|
|
|
+ END) )AS MO_CURR_PRICE
|
|
|
, STAFF_CURR_PRICE
|
|
|
, MIN(STAFF_CURR_PRICE -
|
|
|
( CASE WHEN DC_WAY = 'V' THEN
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_PVAL THEN MAX_DC_AMT ELSE DC_PVAL END)
|
|
|
ELSE
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_PVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS STAFF_PC_PRICE
|
|
|
+ END) )AS STAFF_PC_CURR_PRICE
|
|
|
, MIN(STAFF_CURR_PRICE -
|
|
|
( CASE WHEN DC_WAY = 'G240_10' THEN
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> DC_MVAL THEN MAX_DC_AMT ELSE DC_MVAL END)
|
|
|
ELSE
|
|
|
(CASE WHEN NVL(MAX_DC_AMT, 0) >0 AND MAX_DC_AMT <![CDATA[<]]> FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} THEN MAX_DC_AMT ELSE FLOOR((STAFF_CURR_PRICE * DC_MVAL / 100) / #{pointUnit}) * #{pointUnit} END)
|
|
|
- END) )AS STAFF_MO_PRICE
|
|
|
+ END) )AS STAFF_MO_CURR_PRICE
|
|
|
FROM (
|
|
|
SELECT CP.CPN_ID
|
|
|
, CP.CPN_NM
|
|
|
@@ -553,17 +553,20 @@
|
|
|
AND CP.BUY_LIMIT_AMT <![CDATA[<=]]> G.CURR_PRICE /*최소주문금액*/
|
|
|
AND IF (CP.TOT_PUB_LIMIT_QTY = 0, 9999999999,CP.TOT_PUB_LIMIT_QTY) > (SELECT COUNT(1) FROM TB_CUST_COUPON WHERE CPN_ID = CP.CPN_ID) /*총발행제한수*/
|
|
|
AND (
|
|
|
- (CP.APPLY_SCOPE = 'A' ) OR
|
|
|
+ (CP.APPLY_SCOPE = 'A' )
|
|
|
+ OR /* 적용대상:상품*/
|
|
|
(CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_10' /* 적용대상:상품*/
|
|
|
+ AND CPN_TARGET = 'G260_10'
|
|
|
AND DEL_YN = 'N'
|
|
|
AND REF_VAL = G.GOODS_CD
|
|
|
) > 0
|
|
|
- ) OR
|
|
|
+ )
|
|
|
+ /*OR*/ /* 적용대상:카테고리*/
|
|
|
+ /*
|
|
|
(CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_11' /* 적용대상:카테고리*/
|
|
|
+ AND CPN_TARGET = 'G260_11'
|
|
|
AND DEL_YN = 'N'
|
|
|
AND NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
AND NVL(REF_BRAND_CD,G.BRAND_CD) = G.BRAND_CD
|
|
|
@@ -572,18 +575,21 @@
|
|
|
WHERE GOODS_CD = G.GOODS_CD
|
|
|
)
|
|
|
) >0
|
|
|
- ) OR
|
|
|
+ )
|
|
|
+ */
|
|
|
+ OR /* 적용대상:브랜드*/
|
|
|
(CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_12' /* 적용대상:브랜드*/
|
|
|
+ AND CPN_TARGET = 'G260_12'
|
|
|
AND DEL_YN = 'N'
|
|
|
AND REF_VAL = G.BRAND_CD
|
|
|
AND NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB
|
|
|
) >0
|
|
|
- ) OR
|
|
|
+ )
|
|
|
+ OR /* 적용대상:공급업체*/
|
|
|
(CP.APPLY_SCOPE = 'I' AND (SELECT COUNT(1) FROM TB_COUPON_REFVAL
|
|
|
WHERE CPN_ID = CP.CPN_ID
|
|
|
- AND CPN_TARGET = 'G260_13' /* 적용대상:공급업체*/
|
|
|
+ AND CPN_TARGET = 'G260_13'
|
|
|
AND DEL_YN = 'N'
|
|
|
AND REF_VAL = G.SUPPLY_COMP_CD
|
|
|
/*AND NVL(REF_FORMAL_GB,G.FORMAL_GB) = G.FORMAL_GB*/
|
|
|
@@ -635,7 +641,7 @@
|
|
|
<!-- 상품혜택가 temp 적용 변경 -->
|
|
|
<update id="updateGoodsBenefitPriceTemp" parameterType="Coupon" timeout="600">
|
|
|
/* TsbGoods.updateGoodsBenefitPriceTemp */
|
|
|
- INSERT TB_GOODS_BENEFIT_PRICE_TEMP (
|
|
|
+ INSERT INTO TB_GOODS_BENEFIT_PRICE_TEMP (
|
|
|
GOODS_CD
|
|
|
, CUST_GB
|
|
|
, CURR_PRICE
|
|
|
@@ -647,41 +653,36 @@
|
|
|
, REG_DT
|
|
|
)
|
|
|
(
|
|
|
+ SELECT * FROM (
|
|
|
SELECT C.*, NOW() FROM (
|
|
|
- SELECT (
|
|
|
<include refid="getGoodsBenefitList_sql"/>
|
|
|
- ) C
|
|
|
- ) B
|
|
|
-
|
|
|
+ ) C
|
|
|
+ ) B
|
|
|
)
|
|
|
ON DUPLICATE KEY UPDATE
|
|
|
REG_DT = NOW()
|
|
|
, CURR_PRICE = B.CURR_PRICE
|
|
|
, STAFF_CURR_PRICE = B.STAFF_CURR_PRICE
|
|
|
- <if test="custGb != null and custGb == 'G100_00'">
|
|
|
+ <if test="usableCustGb != null and usableCustGb == 'G100_00'">
|
|
|
, PC_CURR_PRICE = B.PC_CURR_PRICE
|
|
|
, MO_CURR_PRICE = B.MO_CURR_PRICE
|
|
|
, STAFF_PC_CURR_PRICE = B.STAFF_PC_CURR_PRICE
|
|
|
, STAFF_MO_CURR_PRICE = B.STAFF_MO_CURR_PRICE
|
|
|
</if>
|
|
|
- <if test="custGb != null and custGb == 'G100_10'">
|
|
|
- , PC_CURR_PRICE = CASE WHEN B.PC_CURR_PRICE <![CDATA[<=]]> PC_CURR_PRICE THEN B.PC_CURR_PRICE
|
|
|
- ELSE PC_CURR_PRICE END
|
|
|
- , MO_CURR_PRICE = CASE WHEN B.MO_CURR_PRICE <![CDATA[<=]]> MO_CURR_PRICE THEN B.MO_CURR_PRICE
|
|
|
- ELSE MO_CURR_PRICE END
|
|
|
+ <if test="usableCustGb != null and usableCustGb == 'G100_10'">
|
|
|
+ , PC_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.PC_CURR_PRICE >= B.PC_CURR_PRICE, B.PC_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.PC_CURR_PRICE)
|
|
|
+ , MO_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.MO_CURR_PRICE >= B.MO_CURR_PRICE, B.MO_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.MO_CURR_PRICE)
|
|
|
</if>
|
|
|
- <if test="custGb != null and custGb == 'G100_20'">
|
|
|
- , STAFF_PC_CURR_PRICE = CASE WHEN B.STAFF_PC_CURR_PRICE <![CDATA[<=]]> STAFF_PC_CURR_PRICE THEN B.STAFF_PC_CURR_PRICE
|
|
|
- ELSE STAFF_PC_CURR_PRICE END
|
|
|
- , STAFF_MO_CURR_PRICE = CASE WHEN B.STAFF_MO_CURR_PRICE <![CDATA[<=]]> STAFF_MO_CURR_PRICE THEN B.STAFF_MO_CURR_PRICE
|
|
|
- ELSE STAFF_MO_CURR_PRICE END
|
|
|
+ <if test="usableCustGb != null and usableCustGb == 'G100_20'">
|
|
|
+ , STAFF_PC_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_PC_CURR_PRICE >= B.STAFF_PC_CURR_PRICE, B.STAFF_PC_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_PC_CURR_PRICE)
|
|
|
+ , STAFF_MO_CURR_PRICE = IF (TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_MO_CURR_PRICE >= B.STAFF_MO_CURR_PRICE, B.STAFF_MO_CURR_PRICE, TB_GOODS_BENEFIT_PRICE_TEMP.STAFF_MO_CURR_PRICE)
|
|
|
</if>
|
|
|
</update>
|
|
|
|
|
|
<!-- 상품혜택가 테이블 삭제 -->
|
|
|
<delete id="deleteGoodsBenefitPrice">
|
|
|
/* TsbGoods.deleteGoodsBenefitPrice */
|
|
|
- DELETE TB_GOODS_BENEFIT_PRICE
|
|
|
+ DELETE FROM TB_GOODS_BENEFIT_PRICE
|
|
|
</delete>
|
|
|
|
|
|
<!-- 상품혜택가 생성 -->
|