Bläddra i källkod

매출반영 로직 수정

gagamel 4 år sedan
förälder
incheckning
70c138b867
1 ändrade filer med 179 tillägg och 0 borttagningar
  1. 179 0
      산출물/4.구축/데이터처리/매출반영.sql

+ 179 - 0
산출물/4.구축/데이터처리/매출반영.sql

@@ -0,0 +1,179 @@
+-- 한세MK 전일자 매출반영 데이터
+INSERT INTO TB_HANSAE_SALES (
+       ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_SALE
+     , AM_ACSALE
+     , DS_REMARK
+     , REG_DT
+)
+SELECT 'hsmk'      AS ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_SALE
+     , AM_ACSALE
+     , ''          AS DS_REMARK
+     , NOW()       AS REG_DT
+FROM   (
+        SELECT DATE_FORMAT(O.PAY_DT,'%Y%m%d')    AS DT_SALE  /*판매일자*/
+             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                    ELSE '2'
+               END                               AS TP_SALE  /*판매구분(1:판매, 2:환불)*/
+             , ODIH.ITEM_CD                      AS CD_STYLE /*스타일코드*/
+             , ODIH.OPT_CD1                      AS CD_COLOR /*색상코드*/
+             , ODIH.OPT_CD2                      AS CD_SIZE  /*사이즈코드*/
+             , SUM(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 QT_SALE  /*판매수량*/
+             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' /*판매-배송중*/ THEN
+                                 ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                                 IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                                             ELSE
+                                                                                 ODIH.ITEM_PRICE
+                                                                        END))
+                             ELSE /*환입-반품완료,환입-교환완료*/
+                                 (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                            ELSE
+                                                                ODIH.ITEM_PRICE
+                                                       END))
+                        END AS SIGNED INT))      AS AM_ACSALE /*실판매금액*/
+        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
+        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
+        WHERE  1 = 1
+        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
+        AND    ODIH.REG_DT < CURRENT_DATE()
+        AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
+        AND    OD.SUPPLY_COMP_CD = 5 /*한세MK*/
+        AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
+        GROUP  BY DATE_FORMAT(O.PAY_DT,'%Y%m%d')
+                , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                       ELSE '2'
+                  END
+                , ODIH.ITEM_CD
+                , ODIH.OPT_CD1
+                , ODIH.OPT_CD2
+       ) ODIH
+WHERE  QT_SALE <> 0
+AND    NOT EXISTS (SELECT 1
+                   FROM   TB_HANSAE_SALES
+                   WHERE  ERP_GB = 'hsmk'
+                   AND    DT_SALE = ODIH.DT_SALE
+                   AND    TP_SALE = ODIH.TP_SALE
+                   AND    CD_STYLE = ODIH.CD_STYLE
+                   AND    CD_COLOR = ODIH.CD_COLOR
+                   AND    CD_SIZE = ODIH.CD_SIZE
+                  )
+;
+
+-- 한세드림 전일자 매출반영 데이터
+INSERT INTO TB_HANSAE_SALES (
+       ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_SALE
+     , AM_ACSALE
+     , DS_REMARK
+     , REG_DT
+)
+SELECT 'hsdr'     AS ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_SALE
+     , AM_ACSALE
+     , ''         AS DS_REMARK
+     , NOW()      AS REG_DT
+FROM   (
+        SELECT DATE_FORMAT(O.PAY_DT,'%Y%m%d')    AS DT_SALE  /*판매일자*/
+             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                    ELSE '2'
+               END                               AS TP_SALE  /*판매구분(1:판매, 2:환불)*/
+             , ODIH.ITEM_CD                      AS CD_STYLE /*스타일코드*/
+             , ODIH.OPT_CD1                      AS CD_COLOR /*색상코드*/
+             , ODIH.OPT_CD2                      AS CD_SIZE  /*사이즈코드*/
+             , SUM(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 QT_SALE  /*판매수량*/
+             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' /*판매-배송중*/ THEN
+                                 ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                                 IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                                             ELSE
+                                                                                 ODIH.ITEM_PRICE
+                                                                        END))
+                             ELSE /*환입-반품완료,환입-교환완료*/
+                                 (ODIH.CNCL_RTN_QTY * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
+                                                                IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
+                                                            ELSE
+                                                                ODIH.ITEM_PRICE
+                                                       END))
+                        END AS SIGNED INT))      AS AM_ACSALE /*실판매금액*/
+        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
+        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
+        WHERE  1 = 1
+        AND    ODIH.REG_DT >= DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
+        AND    ODIH.REG_DT < CURRENT_DATE()
+        AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
+        AND    OD.SUPPLY_COMP_CD = 3 /*한세드림*/
+        AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
+        GROUP  BY DATE_FORMAT(O.PAY_DT,'%Y%m%d')
+                , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
+                       ELSE '2'
+                  END
+                , ODIH.ITEM_CD
+                , ODIH.OPT_CD1
+                , ODIH.OPT_CD2
+       ) ODIH
+WHERE  QT_SALE <> 0
+AND    NOT EXISTS (SELECT 1
+                   FROM   TB_HANSAE_SALES
+                   WHERE  ERP_GB = 'hsdr'
+                   AND    DT_SALE = ODIH.DT_SALE
+                   AND    TP_SALE = ODIH.TP_SALE
+                   AND    CD_STYLE = ODIH.CD_STYLE
+                   AND    CD_COLOR = ODIH.CD_COLOR
+                   AND    CD_SIZE = ODIH.CD_SIZE
+                  )
+;
+
+-- 업체별 매출반영 건수
+SELECT ERP_GB
+     , COUNT(*) AS CNT
+FROM   TB_HANSAE_SALES
+WHERE  REG_DT >= CURRENT_DATE() /*당일에 등록된 넘*/
+AND    REG_DT < DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
+GROUP  BY ERP_GB
+
+-- 업체별 매출반영 목록
+SELECT ERP_GB
+     , DT_SALE
+     , TP_SALE
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_SALE
+     , AM_ACSALE
+     , DS_REMARK
+FROM   TB_HANSAE_SALES
+WHERE  REG_DT >= CURRENT_DATE() /*당일에 등록된 넘*/
+AND    REG_DT < DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
+ORDER  BY ERP_GB, DT_SALE, TP_SALE, CD_STYLE, CD_COLOR, CD_SIZE
+;