瀏覽代碼

이사님. 입점업체상품정산 쿼리수정

jmh 4 年之前
父節點
當前提交
e0e621d51b
共有 1 個文件被更改,包括 81 次插入75 次删除
  1. 81 75
      src/main/java/com/style24/persistence/mybatis/shop/TssSettle.xml

+ 81 - 75
src/main/java/com/style24/persistence/mybatis/shop/TssSettle.xml

@@ -65,51 +65,53 @@
 	<!-- 입점업체 상품정산 목록 -->
 	<select id="getSupplyCompanyGoodsFeeList" parameterType="SupplyCompFee" resultType="SupplyCompFee">
 		/* TsaSettle.getSupplyCompanyGoodsFeeList */
-		SELECT ODIH.ORD_NO                                                                /*주문번호*/
-		     , ODIH.ORD_DTL_NO                                                            /*주문상세번호*/
-		     , ODIH.SUPPLY_VENDOR_CD                                                      /*공급벤더코드*/
-		     , ODIH.SUPPLY_VENDOR_NM                                                      /*공급벤더명*/
-		     , ODIH.SUPPLY_COMP_CD                                                        /*공급업체코드*/
-		     , ODIH.SUPPLY_COMP_NM                                                        /*공급업체명*/
-		     , ODIH.SETTLE_DAY                                                            /*정산주기*/
-		     , ODIH.SETTLE_DAY_NM                                                         /*정산주기명*/
-		     , ODIH.ORD_DT                                                                /*주문일시*/
-		     , ODIH.SETTLE_GB                                                             /*정산구분*/
-		     , ODIH.SETTLE_GB_NM                                                          /*정산구분명*/
-		     , ODIH.OCCUR_DT                                                              /*발생일시*/
-		     , ODIH.GOODS_CD                                                              /*상품코드*/
-		     , ODIH.GOODS_NM                                                              /*상품명*/
-		     , ODIH.BRAND_CD                                                              /*브랜드코드*/
-		     , ODIH.BRAND_ENM                                                             /*브랜드명*/
-		     , ODIH.ITEM_CD                                                               /*단품코드*/
-		     , ODIH.OPT_CD1                                                               /*옵션코드1*/
-		     , ODIH.OPT_CD2                                                               /*옵션코드2*/
-		     , ODIH.SELL_PRICE                                                            /*판매가*/
-		     , ODIH.SELL_QTY                                                              /*판매수량*/
-		     , ODIH.SELL_AMT                                                              /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
-		     , ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT            /*쿠폰사용금액*/
-		     , ODIH.SELF_CPN_DC_AMT                                                       /*자사쿠폰분담액*/
-		     , ODIH.SUPPLY_COMP_CPN_DC_AMT                                                /*입점쿠폰분담액*/
-		     -- , ODIH.PNT_DC_AMT                                                            /*포인트사용금액*/
-		     , ODIH.TMTB_DC_AMT                                                           /*다다익선할인금액*/
-		     , ODIH.SELF_TMTB_DC_AMT                                                      /*자사다다익선분담액*/
-		     , ODIH.SUPPLY_COMP_TMTB_DC_AMT                                               /*입점다다익선분담액*/
-		     -- , ODIH.GFCD_USE_AMT                                                          /*상품권사용금액*/
+		SELECT ODIH.ORD_NO                                                                                     /*주문번호*/
+		     , ODIH.ORD_DTL_NO                                                                                 /*주문상세번호*/
+		     , ODIH.SUPPLY_VENDOR_CD                                                                           /*공급벤더코드*/
+		     , ODIH.SUPPLY_VENDOR_NM                                                                           /*공급벤더명*/
+		     , ODIH.SUPPLY_COMP_CD                                                                             /*공급업체코드*/
+		     , ODIH.SUPPLY_COMP_NM                                                                             /*공급업체명*/
+		     , ODIH.SETTLE_DAY                                                                                 /*정산주기*/
+		     , ODIH.SETTLE_DAY_NM                                                                              /*정산주기명*/
+		     , ODIH.ORD_DT                                                                                     /*주문일시*/
+		     , ODIH.SETTLE_GB                                                                                  /*정산구분*/
+		     , ODIH.SETTLE_GB_NM                                                                               /*정산구분명*/
+		     , ODIH.OCCUR_DT                                                                                   /*발생일시*/
+		     , ODIH.GOODS_CD                                                                                   /*상품코드*/
+		     , ODIH.GOODS_NM                                                                                   /*상품명*/
+		     , ODIH.BRAND_CD                                                                                   /*브랜드코드*/
+		     , ODIH.BRAND_ENM                                                                                  /*브랜드명*/
+		     , ODIH.ITEM_CD                                                                                    /*단품코드*/
+		     , ODIH.OPT_CD1                                                                                    /*옵션코드1*/
+		     , ODIH.OPT_CD2                                                                                    /*옵션코드2*/
+		     , ODIH.SELL_PRICE                                                                                 /*판매가*/
+		     , ODIH.SELL_QTY                                                                                   /*판매수량*/
+		     , ODIH.SELL_AMT                                                                                   /*판매금액(ORD_AMT에는 CPN1_DC_AMT가 빠진 금액이 들어가 있음)*/
+		     , IF(ODIH.CPN1_DC_AMT = -0,0,ODIH.CPN1_DC_AMT)
+		       + IF(ODIH.GOODS_CPN_DC_AMT = -0,0,ODIH.GOODS_CPN_DC_AMT)
+		       + IF(ODIH.CART_CPN_DC_AMT = -0,0,ODIH.CART_CPN_DC_AMT)               AS CPN_DC_AMT              /*쿠폰사용금액*/
+		     , IF(ODIH.SELF_CPN_DC_AMT = -0,0,ODIH.SELF_CPN_DC_AMT)                 AS SELF_CPN_DC_AMT         /*자사쿠폰분담액*/
+		     , IF(ODIH.SUPPLY_COMP_CPN_DC_AMT = -0,0,ODIH.SUPPLY_COMP_CPN_DC_AMT)   AS SUPPLY_COMP_CPN_DC_AMT  /*입점쿠폰분담액*/
+		     -- , IF(ODIH.PNT_DC_AMT = -0,0,ODIH.PNT_DC_AMT)                        AS PNT_DC_AMT              /*포인트사용금액*/
+		     , IF(ODIH.TMTB_DC_AMT = -0,0,ODIH.TMTB_DC_AMT)                         AS TMTB_DC_AMT             /*다다익선할인금액*/
+		     , IF(ODIH.SELF_TMTB_DC_AMT = -0,0,ODIH.SELF_TMTB_DC_AMT)               AS SELF_TMTB_DC_AMT        /*자사다다익선분담액*/
+		     , IF(ODIH.SUPPLY_COMP_TMTB_DC_AMT = -0,0,ODIH.SUPPLY_COMP_TMTB_DC_AMT) AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
+		     -- , IF(ODIH.GFCD_USE_AMT = -0,0,ODIH.GFCD_USE_AMT)                    AS GFCD_USE_AMT            /*상품권사용금액*/
 		     , CASE WHEN ODIH.SELL_QTY = 0 THEN 0
 		            ELSE
 		                (ODIH.SELL_AMT
 		                 - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
 		                 - ODIH.TMTB_DC_AMT
 		                ) / ODIH.SELL_QTY
-		       END                                              AS REAL_SELL_PRICE        /*실판매가*/
+		       END                                                                  AS REAL_SELL_PRICE        /*실판매가*/
 		     , ODIH.SELL_AMT
 		       - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
-		       - ODIH.TMTB_DC_AMT                               AS REAL_SELL_AMT          /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
-		     , ODIH.SELL_FEE_RATE                                                         /*판매수수료율*/
+		       - ODIH.TMTB_DC_AMT                                                   AS REAL_SELL_AMT          /*실판매금액(=상품총액. 쿠폰과 다다익선만 차감. 상품권과 포인트는 포함)*/
+		     , ODIH.SELL_FEE_RATE                                                                             /*판매수수료율*/
 		     , ROUND((ODIH.SELL_AMT
 		              - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
 		              - ODIH.TMTB_DC_AMT
-		             ) * (ODIH.SELL_FEE_RATE / 100),0)          AS SELL_FEE_AMT           /*수수료*/
+		             ) * (ODIH.SELL_FEE_RATE / 100),0)                              AS SELL_FEE_AMT           /*수수료*/
 		     , (ODIH.SELL_AMT
 		        - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
 		        - ODIH.TMTB_DC_AMT)
@@ -117,40 +119,40 @@
 		                - (ODIH.CPN1_DC_AMT + ODIH.GOODS_CPN_DC_AMT + ODIH.CART_CPN_DC_AMT)
 		                - ODIH.TMTB_DC_AMT
 		               ) * (ODIH.SELL_FEE_RATE / 100),0)
-		       + (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT) AS SETTLE_AMT             /*정산대상액(실판매금액 - 수수료 + 자사다다익선분담액 + 자사쿠폰분담액)*/
+		       + (ODIH.SELF_CPN_DC_AMT + ODIH.SELF_TMTB_DC_AMT)                     AS SETTLE_AMT             /*정산대상액(실판매금액 - 수수료 + 자사다다익선분담액 + 자사쿠폰분담액)*/
 		FROM   (
-		        SELECT ODIH.ORD_DTL_ITEM_HST_SQ                                                                        /*주문상세단품이력일련번호*/
-		             , ODIH.ORD_NO                                                                                     /*주문번호*/
-		             , ODIH.ORD_DTL_NO                                                                                 /*주문상세번호*/
-		             , SC.SUPPLY_VENDOR_CD                                                                             /*공급벤더코드*/
-		             , SV.SUPPLY_VENDOR_NM                                                                             /*공급벤더명*/
-		             , OD.SUPPLY_COMP_CD                                                                               /*공급업체코드*/
-		             , SC.SUPPLY_COMP_NM                                                                               /*공급업체명*/
-		             , SV.SETTLE_DAY                                                                                   /*정산주기*/
-		             , FN_GET_CODE_NM('G075',SV.SETTLE_DAY)                                 AS SETTLE_DAY_NM           /*정산주기명*/
-		             , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S')                            AS ORD_DT                  /*주문일시*/
-		             , ODIH.ORD_DTL_STAT                                                    AS SETTLE_GB               /*정산구분*/
-		             , FN_GET_CODE_NM('G720',ODIH.ORD_DTL_STAT)                             AS SETTLE_GB_NM            /*정산구분명*/
-		             , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S')                         AS OCCUR_DT                /*발생일시*/
-		             , OD.GOODS_CD                                                                                     /*상품코드*/
-		             , G.GOODS_NM                                                                                      /*상품명*/
-		             , G.BRAND_CD                                                                                      /*브랜드코드*/
-		             , B.BRAND_ENM                                                                                     /*브랜드명*/
-		             , ODIH.ITEM_CD                                                                                    /*단품코드*/
-		             , ODIH.OPT_CD1                                                                                    /*옵션코드1*/
-		             , ODIH.OPT_CD2                                                                                    /*옵션코드2*/
+		        SELECT ODIH.ORD_DTL_ITEM_HST_SQ                                                                                    /*주문상세단품이력일련번호*/
+		             , ODIH.ORD_NO                                                                                                 /*주문번호*/
+		             , ODIH.ORD_DTL_NO                                                                                             /*주문상세번호*/
+		             , SC.SUPPLY_VENDOR_CD                                                                                         /*공급벤더코드*/
+		             , SV.SUPPLY_VENDOR_NM                                                                                         /*공급벤더명*/
+		             , OD.SUPPLY_COMP_CD                                                                                           /*공급업체코드*/
+		             , SC.SUPPLY_COMP_NM                                                                                           /*공급업체명*/
+		             , SV.SETTLE_DAY                                                                                               /*정산주기*/
+		             , FN_GET_CODE_NM('G075',SV.SETTLE_DAY)                                             AS SETTLE_DAY_NM           /*정산주기명*/
+		             , DATE_FORMAT(O.PAY_DT,'%Y-%m-%d %H:%i:%S')                                        AS ORD_DT                  /*주문일시*/
+		             , ODIH.ORD_DTL_STAT                                                                AS SETTLE_GB               /*정산구분*/
+		             , FN_GET_CODE_NM('G720',ODIH.ORD_DTL_STAT)                                         AS SETTLE_GB_NM            /*정산구분명*/
+		             , DATE_FORMAT(ODIH.REG_DT,'%Y-%m-%d %H:%i:%S')                                     AS OCCUR_DT                /*발생일시*/
+		             , OD.GOODS_CD                                                                                                 /*상품코드*/
+		             , G.GOODS_NM                                                                                                  /*상품명*/
+		             , G.BRAND_CD                                                                                                  /*브랜드코드*/
+		             , B.BRAND_ENM                                                                                                 /*브랜드명*/
+		             , ODIH.ITEM_CD                                                                                                /*단품코드*/
+		             , ODIH.OPT_CD1                                                                                                /*옵션코드1*/
+		             , ODIH.OPT_CD2                                                                                                /*옵션코드2*/
 		             , CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
 		                        IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
 		                    ELSE
 		                        ODIH.ITEM_PRICE
-		               END                                                                  AS SELL_PRICE              /*판매가(정산용)*/
+		               END                                                                              AS SELL_PRICE              /*판매가(정산용)*/
 		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
 		               *
 		               CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
 		                             ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY
 		                         ELSE /*환입-반품완료,환입-교환완료*/
 		                             ODIH.CNCL_RTN_QTY
-		                    END AS SIGNED INT)                                              AS SELL_QTY                /*판매수량*/
+		                    END AS SIGNED INT)                                                          AS SELL_QTY                /*판매수량*/
 		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN 1 ELSE -1 END)
 		               *
 		               CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20'/*판매-배송중*/ THEN
@@ -165,28 +167,32 @@
 		                                                        ELSE
 		                                                            ODIH.ITEM_PRICE
 		                                                   END))
-		                    END AS SIGNED INT)                                              AS SELL_AMT                /*판매금액*/
-		             , ODIH.CPN1_DC_AMT                                                                                /*즉시사용쿠폰금액*/
-		             , ODIH.GOODS_CPN_DC_AMT                                                                           /*상품쿠폰사용금액*/
-		             , ODIH.CART_CPN_DC_AMT                                                                            /*주문서쿠폰사용금액*/
-		             , ((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
-		               + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * ODIH.GOODS_CPN_DC_AMT
-		               + ((100 - IFNULL(CB3.BURDEN_RATE,0)) / 100) * ODIH.CART_CPN_DC_AMT   AS SELF_CPN_DC_AMT         /*자사쿠폰분담액*/
-		             , (IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
-		               + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT
-		               + (IFNULL(CB3.BURDEN_RATE,0) / 100) * ODIH.CART_CPN_DC_AMT           AS SUPPLY_COMP_CPN_DC_AMT  /*입점쿠폰분담액*/
-		             -- , ODIH.PNT_DC_AMT                                                                                 /*포인트사용금액*/
-		             , ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT                                AS TMTB_DC_AMT             /*다다익선할인금액*/
-		             , ((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
-		               + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT AS SELF_TMTB_DC_AMT        /*자사다다익선분담액*/
-		             , (IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
-		               + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT         AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
-		             -- , ODIH.GFCD_USE_AMT                                                                               /*상품권사용금액*/
+		                    END AS SIGNED INT)                                                          AS SELL_AMT                /*판매금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CPN1_DC_AMT                        AS CPN1_DC_AMT             /*즉시사용쿠폰금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GOODS_CPN_DC_AMT                   AS GOODS_CPN_DC_AMT        /*상품쿠폰사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.CART_CPN_DC_AMT                    AS CART_CPN_DC_AMT         /*주문서쿠폰사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * 
+		               (((100 - IFNULL(CB1.BURDEN_RATE,0)) / 100) * ODIH.CPN1_DC_AMT
+		                + ((100 - IFNULL(CB2.BURDEN_RATE,0)) / 100) * ODIH.GOODS_CPN_DC_AMT
+		                + ((100 - IFNULL(CB3.BURDEN_RATE,0)) / 100) * ODIH.CART_CPN_DC_AMT)             AS SELF_CPN_DC_AMT         /*자사쿠폰분담액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
+		               ((IFNULL(CB1.BURDEN_RATE,0) / 100) * ODIH.CPN1_DC_AMT
+		                + (IFNULL(CB2.BURDEN_RATE,0) / 100) * ODIH.GOODS_CPN_DC_AMT
+		                + (IFNULL(CB3.BURDEN_RATE,0) / 100) * ODIH.CART_CPN_DC_AMT)                     AS SUPPLY_COMP_CPN_DC_AMT  /*입점쿠폰분담액*/
+		             -- , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.PNT_DC_AMT                      AS PNT_DC_AMT              /*포인트사용금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * (ODIH.TMTB1_DC_AMT + ODIH.TMTB2_DC_AMT) AS TMTB_DC_AMT             /*다다익선할인금액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
+		               (((100 - IFNULL(TB1.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB1_DC_AMT
+		                + ((100 - IFNULL(TB2.TMTB_BURDEN_RATE,0)) / 100) * ODIH.TMTB2_DC_AMT)           AS SELF_TMTB_DC_AMT        /*자사다다익선분담액*/
+		             , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) *
+		               ((IFNULL(TB1.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB1_DC_AMT
+		                + (IFNULL(TB2.TMTB_BURDEN_RATE,0) / 100) * ODIH.TMTB2_DC_AMT)                   AS SUPPLY_COMP_TMTB_DC_AMT /*입점다다익선분담액*/
+		             -- , IF(ODIH.ORD_DTL_STAT = 'G720_20',1,-1) * ODIH.GFCD_USE_AMT                    AS GFCD_USE_AMT            /*상품권사용금액*/
 		             , CASE WHEN O.MALL_GB = 'G011_10' /*자사몰*/ THEN
 		                        OD.SELL_FEE_RATE
 		                    ELSE /*제휴몰*/
 		                        IFNULL(E.SELL_FEE_RATE,0)
-		               END                                                                  AS SELL_FEE_RATE           /*판매수수료율*/
+		               END                                                                              AS SELL_FEE_RATE           /*판매수수료율*/
 		        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
 		        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
 		        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO