gagamel преди 4 години
родител
ревизия
d33129f813

+ 1 - 1
산출물/4.구축/데이터처리/네이버EP생성_20210615_2.sql

@@ -376,7 +376,7 @@ SELECT COUNT(*) FROM TB_EP_INTEREST_FREE_EVENT;
 
 /* TsbGoodsEp.deleteEpNaver */
 DELETE FROM TB_EP_NAVER WHERE GB = 'PREV';
-
+ 
 /* TsbGoodsEp.createPreviousEpNaver */
 INSERT INTO TB_EP_NAVER (
        GB

+ 18 - 0
산출물/4.구축/외부모듈연동/광고스크립트/아이스타일24_유입스크립트.txt

@@ -0,0 +1,18 @@
+<!-- Cosem Log Gathering Script V.2.0 -->
+<script language="javascript" type="text/javascript">
+var cosem_Request = function(){
+var cookieDay = 7; // ÄíŰ¼³Á¤ ³¯Â¥
+var accountCode = "951";
+this.getParameter = function( name ){
+var rtnval = ''; var nowAddress = unescape( location.href ); var parameters = (nowAddress.slice(nowAddress.indexOf('?')+1,nowAddress.length)).split('&');
+for(var i = 0 ; i < parameters.length ; i++){ var varName = parameters[i].split('=')[0];if(varName.toUpperCase() == name.toUpperCase()){rtnval = parameters[i].split('=')[1]; break;};}; return rtnval;
+}
+this.imageURL = function(){ var cosem = this.getParameter('cosemkid'); var cosem_kid = ""; var cosemProtocol = ( location.protocol=="https:" )? "https:" :"http:";
+if( cosem.length == 0 ) cosem = this.getParameter('cosem');
+if( cosem.length > 0 ){ cosem_kid = "&kid=" + cosem + "&referer=" + encodeURIComponent(location.href); 
+var image = new Image(); image.src = cosemProtocol + "//" + "tracking.icomas.co.kr" + "/Script/script3.php" + "?aid="+accountCode+"&ctime=" + cookieDay + cosem_kid;};};
+this.tracking = function( ){ var obj = this; setTimeout( function(){ obj.imageURL(); }, 10); };
+};
+var cosemRequest = new cosem_Request();
+cosemRequest.tracking( );
+</script>

+ 28 - 0
산출물/4.구축/외부모듈연동/광고스크립트/아이스타일24_전환스크립트.txt

@@ -0,0 +1,28 @@
+<script language="javascript" type="text/javascript">
+function cosemConvert( rn, amt, pc, pa, pp, pg, etc ){
+var cosemProtocol = ( location.protocol=="https:" )? "https:" :"http:";
+var image = new Image();
+var accountCode = "951";
+var imageURL = cosemProtocol + "//" + "tracking.icomas.co.kr";
+imageURL += "/Script/action3.php" + "?aid=" + accountCode + "&rn=" + encodeURI(rn) ;
+imageURL += "&amt=" + amt + "&pc=" + encodeURI(pc) + "&pa=" + pa + "&pp=" + pp + "&pg=" + encodeURI(pg) + "&etc=" + encodeURI(etc);
+image.src = imageURL;
+}
+setTimeout( function(){ 
+
+// cosemConvert( "구매번호", "전체금액(숫자)", "상품코드(상품명)", "상품수량(숫자)", "상품단가(숫자)", "카테고리", "기타" );
+// 각항목에 필요한 값만 대입, 숫자는 0으로 넣어주시면 됩니다.
+// 쇼핑몰의 경우 여러 종류의 상품을 구매했을시 cosemConvert 함수를 구매 상품 종류 만큼 호출해주시면 됩니다.
+
+/*
+Ex. 쇼핑몰일 경우
+cosemConvert( "123412351431", 20000, "aas2342141341", 2, 10000, "아동유아", "" );
+cosemConvert( "123412351431", 39000, "aas2342141323", 3, 13000, "가전", "" );
+.......
+Ex. 회원가입인 경우
+cosemConvert( "", 0, "회원가입", 0, 0, "", "" );
+*/
+
+
+}, 10);
+</script>

+ 541 - 0
산출물/6.전개/오픈시_DB마이그레이션후_작업할_DB처리_Script.sql

@@ -0,0 +1,541 @@
+-- 1.1. WMS재고이력 데이터 삭제 (2개월전 데이터)
+DELETE FROM TB_WMS_STOCK_HST
+WHERE  JOBDATE < DATE_ADD(DATE_FORMAT(NOW(), '%Y%m%d'), INTERVAL -2 MONTH)
+;
+
+-- 1.2. WMS재고이력 생성
+INSERT INTO TB_WMS_STOCK_HST (
+       JOBDATE
+     , PRODUCT_NO      
+     , SKU_CODE        
+     , LOC_QTY         
+     , PICKING_QTY     
+     , EOUT_PICKING_QTY
+)
+SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i%S') AS JOBDATE
+     , PRODUCT_NO      
+     , SKU_CODE        
+     , LOC_QTY         
+     , PICKING_QTY     
+     , EOUT_PICKING_QTY
+FROM   TB_WMS_STOCK
+;
+
+-- 2.1. WMS 재고 truncate
+TRUNCATE TABLE TB_WMS_STOCK;
+
+-- 2.2. WMS 재고 수신 (MSSQL 접속. 배치로 처리해야 함)
+SELECT PRODUCT_NO 
+     , SKU_CODE
+     , LOC_QTY
+     , PICKING_QTY
+     , EOUT_PICKING_QTY
+FROM   (
+        SELECT PRODUCT_NO
+             , SKU_CODE
+             , SUM(LOC_QTY)          AS LOC_QTY
+             , SUM(PICKING_QTY)      AS PICKING_QTY 
+             , SUM(EOUT_PICKING_QTY) AS EOUT_PICKING_QTY
+        FROM   iSTYLE24_WMS.DBO.VW_STOCK_BY_LOCCODE
+        GROUP  BY PRODUCT_NO, SKU_CODE
+       ) Z
+WHERE  1 = 1
+AND    LOC_QTY - PICKING_QTY - EOUT_PICKING_QTY > 0
+;
+
+-- 3.1 매장재고 삭제
+TRUNCATE TABLE TB_SHOP_STOCK;
+
+-- 3.2. 출고처별 판매비율을 적용한 매장재고 생성
+INSERT INTO TB_SHOP_STOCK (
+		      SUPPLY_COMP_CD
+		    , CD_SHOP          
+		    , CD_STYLE         
+		    , CD_COLOR         
+		    , CD_SIZE          
+		    , QT_STOCK         
+		    , OPT_CD           
+		    , OPT_CD1          
+		    , STORE_STOCK_QTY  
+		    , UPD_DT           
+		)
+		SELECT A.SUPPLY_COMP_CD
+		     , A.CD_SHOP
+		     , A.CD_STYLE
+		     , A.CD_COLOR
+		     , A.CD_SIZE
+		     , A.QT_STOCK
+		     , E.OPT_CD
+		     , E.OPT_CD1
+		     , ROUND(GREATEST(A.QT_STOCK, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS STORE_STOCK_QTY
+		     , NOW()
+		FROM (SELECT S.SUPPLY_COMP_CD
+		          , S.CD_SHOP
+		          , S.CD_STYLE
+		          , S.CD_COLOR
+		          , S.CD_SIZE
+		          , S.QT_STOCK
+		          , M.COLOR_CD AS OPT_CD1
+		     FROM TB_SHOP_GOODS_STOCK S
+		     INNER JOIN TB_WMS_COLOR_MAPPING M ON S.SUPPLY_COMP_CD = M.SUPPLY_COMP_CD
+		                                       AND S.CD_COLOR = M.WMS_COLOR_CD
+		                                       AND M.USE_YN = 'Y') A
+		INNER JOIN TB_OPTION E USE INDEX(PRIMARY) ON A.CD_STYLE = E.GOODS_CD
+		                       AND A.OPT_CD1 = E.OPT_CD1
+		                       AND A.CD_SIZE = E.OPT_CD2
+		INNER JOIN TB_GOODS B ON A.CD_STYLE = B.GOODS_CD
+		                      AND B.SELF_GOODS_YN = 'Y'
+		                      AND B.ERP_STOCK_LINK_YN = 'Y'
+		INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
+		                                AND C.STOCK_SYNC_YN = 'Y'
+		                                AND A.CD_SHOP = C.DELV_LOC_CD
+		INNER JOIN TB_DELIVERY_LOC D ON A.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+		                             AND A.CD_SHOP = D.DELV_LOC_CD
+		                             AND D.USE_YN = 'Y'
+;
+
+-- 3.3. 매장재고이력 삭제 (2개월전 데이터)
+DELETE FROM TB_SHOP_STOCK_HST
+WHERE JOBDATE <![CDATA[<=]]> #{jobdate} 
+;
+
+INSERT INTO TB_SHOP_STOCK_HST(
+       JOBDATE
+     , SUPPLY_COMP_CD
+     , CD_SHOP
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_STOCK
+     , OPT_CD
+     , OPT_CD1
+     , STORE_STOCK_QTY
+)
+SELECT #{jobdate}
+      SUPPLY_COMP_CD
+     , CD_SHOP
+     , CD_STYLE
+     , CD_COLOR
+     , CD_SIZE
+     , QT_STOCK
+     , OPT_CD
+     , OPT_CD1
+     , STORE_STOCK_QTY
+FROM TB_SHOP_STOCK
+;
+
+DELETE FROM TB_OPTION_SYNC_TMP;
+
+INSERT INTO TB_OPTION_SYNC_TMP
+		(
+		       GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , BASE_STOCK_QTY
+		     , CURR_STOCK_QTY
+		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
+		     , ADD_PRICE
+		     , SOLDOUT_YN
+		     , DISP_ORD
+		     , DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , 0 AS BASE_STOCK_QTY
+		     , CURR_STOCK_QTY
+		     , 0 AS STORE_STOCK_QTY
+		     , 0 AS STORE_MAX_QTY
+		     , 0 AS ADD_PRICE
+		     , 'N' AS SOLDOUT_YN
+		     , DISP_ORD
+		     , 'Y' AS DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , 99999 AS REG_NO
+		     , NOW() AS REG_DT
+		     , 99999 AS UPD_NO
+		     , NOW() AS UPD_DT
+		FROM (
+		      SELECT B.GOODS_CD
+		           , A.SKU_CODE AS OPT_CD
+		           , E.OPT_CD1
+		           , E.OPT_CD2
+		           , E.SKU_MODEL_NO
+		           , E.PRODUCT_NO
+		           , E.PRODUCT_CODE
+		           , ROUND((GREATEST(A.LOC_QTY, 0) -  GREATEST(A.PICKING_QTY, 0)  - GREATEST(A.EOUT_PICKING_QTY, 0)) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
+		           , E.STORE_STOCK_QTY
+		           , E.DISP_ORD
+		           , B.ERP_STOCK_LINK_YN
+		      FROM TB_WMS_STOCK A
+		      INNER JOIN TB_OPTION E ON A.PRODUCT_NO = E.PRODUCT_NO
+		                             AND A.SKU_CODE = E.OPT_CD
+		      INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
+		                            AND B.SELF_GOODS_YN = 'Y'
+		                            AND B.ERP_STOCK_LINK_YN = 'Y'
+		      INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
+		                                      AND C.STOCK_SYNC_YN = 'Y'
+		                                      AND C.DELV_LOC_CD = 'ST0001'    -- WMS 매장코드
+		      INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+		                                   AND C.DELV_LOC_CD = D.DELV_LOC_CD
+		                                   AND D.USE_YN = 'Y'
+		                                   AND D.DELV_LOC_CD = 'ST0001'    -- WMS 매장코드
+		     ) Z
+		     ;
+		     
+INSERT INTO TB_OPTION_SYNC_TMP
+		(
+		       GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , BASE_STOCK_QTY
+		     , CURR_STOCK_QTY
+		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
+		     , ADD_PRICE
+		     , SOLDOUT_YN
+		     , DISP_ORD
+		     , DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , 0 AS BASE_STOCK_QTY
+		     , 0 AS CURR_STOCK_QTY
+		     , STORE_STOCK_QTY
+		     , 0 AS STORE_MAX_QTY
+		     , 0 AS ADD_PRICE
+		     , 'N' AS SOLDOUT_YN
+		     , DISP_ORD
+		     , 'Y' AS DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , 99999 AS REG_NO
+		     , NOW() AS REG_DT
+		     , 99999 AS UPD_NO
+		     , NOW() AS UPD_DT
+		FROM (
+		      SELECT E.GOODS_CD
+		           , E.OPT_CD
+		           , E.OPT_CD1
+		           , E.OPT_CD2
+		           , E.SKU_MODEL_NO
+		           , E.PRODUCT_NO
+		           , E.PRODUCT_CODE
+		           , E.CURR_STOCK_QTY
+		           , SUM(A.STORE_STOCK_QTY) AS STORE_STOCK_QTY
+		           , B.ERP_STOCK_LINK_YN
+		           , E.DISP_ORD
+		      FROM TB_SHOP_STOCK A
+		      INNER JOIN TB_OPTION E ON A.CD_STYLE = E.GOODS_CD
+		                             AND A.OPT_CD = E.OPT_CD
+		      INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
+		                            AND B.SELF_GOODS_YN = 'Y'
+		                            AND B.ERP_STOCK_LINK_YN = 'Y'
+		      GROUP BY GOODS_CD , OPT_CD , OPT_CD1 , OPT_CD2 , SKU_MODEL_NO , PRODUCT_NO , PRODUCT_CODE , CURR_STOCK_QTY , DISP_ORD , ERP_STOCK_LINK_YN
+		  ) Z
+		ON DUPLICATE KEY UPDATE
+		     STORE_STOCK_QTY = Z.STORE_STOCK_QTY
+		     ;
+		     
+-- 입점상품 재고 동기화
+-- 입점상품 SELL_QTY 목록
+/* TsbGoods.getGoodsSelfNoStockList */
+		SELECT A.GOODS_CD
+		     , A.OPT_CD
+		     , SUM(
+		           (CASE A.SELL_GB WHEN '10' THEN 1
+		                          WHEN '20' THEN 1
+		                          ELSE -1 END) * A.SELL_QTY
+		           ) AS SALE_STOCK_QTY
+		FROM TB_SELL_QTY A
+		   , TB_GOODS B
+		WHERE A.GOODS_CD = B.GOODS_CD
+		AND B.SELF_GOODS_YN = 'N'  -- 입점상품
+		GROUP BY A.GOODS_CD, A.OPT_CD
+		;
+
+-- LOOP 돌면서
+-- 이력생성
+goodsDao.createStockHst(option);
+
+-- 재고 변경
+goodsDao.updateStock(option);
+
+-- TB_OPTION = > TB_OPTION_SYNC 적용
+TRUNCATE TABLE TB_OPTION_SYNC;
+
+-- TB_OPTION_SYNC.CURR_STOCK_QTY, STORE_STOCK_QTY, STORE_MAX_QTY 초기화
+INSERT INTO TB_OPTION_SYNC
+		(
+		       GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , BASE_STOCK_QTY
+		     , CURR_STOCK_QTY
+		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
+		     , ADD_PRICE
+		     , SOLDOUT_YN
+		     , DISP_ORD
+		     , DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT B.GOODS_CD
+		     , B.OPT_CD
+		     , B.OPT_CD1
+		     , B.OPT_CD2
+		     , B.SKU_MODEL_NO
+		     , B.PRODUCT_NO
+		     , B.PRODUCT_CODE
+		     , B.BASE_STOCK_QTY
+		     , 0 AS CURR_STOCK_QTY
+		     , 0 AS STORE_STOCK_QTY
+		     , 0 AS STORE_MAX_QTY
+		     , B.ADD_PRICE
+		     , B.SOLDOUT_YN
+		     , B.DISP_ORD
+		     , B.DISP_YN
+		     , A.ERP_STOCK_LINK_YN
+		     , B.REG_NO
+		     , B.REG_DT
+		     , B.UPD_NO
+		     , B.UPD_DT
+		FROM   TB_GOODS A, TB_OPTION B
+		WHERE  A.ERP_STOCK_LINK_YN = 'Y'
+		AND    A.SELF_GOODS_YN ='Y'
+		AND    A.GOODS_CD = B.GOODS_CD
+		;
+
+-- TB_OPTION_SYNC_TMP => TB_OPTION_SYNC 변경적용
+/* TsbGoods.saveGoodsOptionSyncSync */
+		UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
+		                               , OPT_CD
+		                               , CURR_STOCK_QTY
+		                               , STORE_STOCK_QTY
+		                               , ERP_STOCK_LINK_YN
+		                          FROM TB_OPTION_SYNC_TMP
+		                          WHERE ERP_STOCK_LINK_YN = 'Y'
+		                          ) B
+		SET A.CURR_STOCK_QTY = B.CURR_STOCK_QTY
+		  , A.STORE_STOCK_QTY = B.STORE_STOCK_QTY
+		  , A.UPD_NO = 99999
+		  , A.UPD_DT = NOW()
+		WHERE A.GOODS_CD = B.GOODS_CD
+		AND A.OPT_CD = B.OPT_CD
+		<![CDATA[
+		AND (A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
+		    OR
+		    A.STORE_STOCK_QTY <> B.STORE_STOCK_QTY
+		    )
+		]]>
+		;
+
+-- WMS, 매장별 최대 주문수량 적용  == > 작업합시다.
+-- TB_SHOP_STOCK과 TB_OPTION_SYNC.CURR_STOCK_QTY 비교하여 STORE_MAX_QTY에 적용
+/* TsbGoods.updateGoodsOptionSyncSync */
+		UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
+		                               , OPT_CD
+		                               , STORE_MAX_QTY
+		                          FROM (     
+		                                SELECT GOODS_CD
+		                                     , OPT_CD
+		                                     , GREATEST(CURR_STOCK_QTY, QT_STOCK) AS STORE_MAX_QTY
+		                                FROM (
+		                                         SELECT OS.GOODS_CD
+		                                              , OS.OPT_CD
+		                                              , GREATEST(OS.CURR_STOCK_QTY, 0)  AS CURR_STOCK_QTY
+		                                              , GREATEST(IFNULL(SS.QT_STOCK, 0), 0) AS QT_STOCK
+		                                         FROM TB_OPTION_SYNC OS
+		                                         LEFT OUTER JOIN TB_SHOP_STOCK SS ON OS.GOODS_CD = SS.CD_STYLE
+		                                                                       AND OS.OPT_CD = SS.OPT_CD
+		                                         WHERE OS.ERP_STOCK_LINK_YN = 'Y'
+		                                      ) Z
+		                               ) Y WHERE STORE_MAX_QTY > 0
+		                           ) B
+		SET A.STORE_MAX_QTY = B.STORE_MAX_QTY
+		  , A.UPD_NO = 99999
+		  , A.UPD_DT = NOW()
+		WHERE A.GOODS_CD = B.GOODS_CD
+		AND A.OPT_CD = B.OPT_CD
+		<![CDATA[
+		AND A.STORE_MAX_QTY <> B.STORE_MAX_QTY
+		]]>
+		;
+		  
+-- TB_OPTION_SYNC => TB_OPTION 적용
+UPDATE TB_OPTION A, (SELECT GOODS_CD
+		                          , OPT_CD
+		                          , CURR_STOCK_QTY
+		                          , STORE_STOCK_QTY
+		                          , STORE_MAX_QTY
+		                          , ERP_STOCK_LINK_YN
+		                      FROM TB_OPTION_SYNC
+		                      WHERE ERP_STOCK_LINK_YN = 'Y'
+		                      ) B
+		SET A.CURR_STOCK_QTY = B.CURR_STOCK_QTY
+		  , A.STORE_STOCK_QTY = B.STORE_STOCK_QTY
+		  , A.STORE_MAX_QTY = B.STORE_MAX_QTY
+		  , A.UPD_NO = 99999
+		  , A.UPD_DT = NOW()
+		WHERE A.GOODS_CD = B.GOODS_CD
+		AND A.OPT_CD = B.OPT_CD
+		<![CDATA[
+		AND (A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
+		    OR
+		    A.STORE_STOCK_QTY <> B.STORE_STOCK_QTY
+		    OR
+		    A.STORE_MAX_QTY <> B.STORE_MAX_QTY
+		    )
+		]]>
+		;
+
+		// 자사상품중 주문상세상태가 입금대기, 결제완료, 교환대기 건은 TB_SELL_QTY 생성
+-- TB_SELL_QTY_TEMP 삭제
+TRUNCATE TABLE TB_SELL_QTY_TMP;
+
+-- TB_SELL_QTY_TEMP 생성
+INSERT INTO TB_SELL_QTY_TMP (
+		      GOODS_CD
+		    , OPT_CD
+		    , SELL_GB
+		    , ORD_DTL_NO
+		    , ORD_CHG_SQ
+		    , AGENT_ORDER_ID
+		    , EXTMALL_ORDER_ID
+		    , SELL_QTY
+		    , REG_NO
+		    , REG_DT
+		)
+		SELECT GOODS_CD
+		    , OPT_CD
+		    , SELL_GB
+		    , ORD_DTL_NO
+		    , ORD_CHG_SQ
+		    , AGENT_ORDER_ID
+		    , EXTMALL_ORDER_ID
+		    , SELL_QTY
+		    , REG_NO
+		    , REG_DT
+		FROM TB_SELL_QTY
+		;
+	
+-- 초기화
+DELETE FROM TB_SELL_QTY;
+
+-- TB_SELL_QTY_TEMP => TB_SELL_QTY 생성
+INSERT INTO TB_SELL_QTY (
+		      GOODS_CD
+		    , OPT_CD
+		    , SELL_GB
+		    , ORD_DTL_NO
+		    , ORD_CHG_SQ
+		    , AGENT_ORDER_ID
+		    , EXTMALL_ORDER_ID
+		    , SELL_QTY
+		    , REG_NO
+		    , REG_DT
+		)
+		SELECT  GOODS_CD
+		    , OPT_CD
+		    , SELL_GB
+		    , ORD_DTL_NO
+		    , ORD_CHG_SQ
+		    , AGENT_ORDER_ID
+		    , EXTMALL_ORDER_ID
+		    , SELL_QTY
+		    , REG_NO
+		    , REG_DT
+		FROM TB_SELL_QTY_TMP
+		WHERE ORD_DTL_NO IN (
+		                     SELECT OD.ORD_DTL_NO
+		                     FROM TB_ORDER_DETAIL OD
+		                        , TB_ORDER_DETAIL_ITEM ODI
+		                        , TB_GOODS G
+		                     WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		                     AND OD.ORD_DTL_STAT IN ('G013_10','G013_20','G013_25','G013_30','G013_35','G013_40') -- 입금대기, 결제완료, 교환대기, 상품준비중,출고처지정,배송준비중
+		                     AND OD.GOODS_CD = G.GOODS_CD
+		                     AND G.SELF_GOODS_YN ='Y'
+		                    )
+		                    ;
+
+-- TB_ORDER_DETAIL => TB_SELL_QTY 생성
+INSERT INTO TB_SELL_QTY (
+		      GOODS_CD
+		    , OPT_CD
+		    , SELL_GB
+		    , ORD_DTL_NO
+		    , AGENT_ORDER_ID
+		    , EXTMALL_ORDER_ID
+		    , SELL_QTY
+		    , REG_NO
+		    , REG_DT
+		)
+		SELECT ITEM_CD
+		     , OPT_CD
+		     , SELL_GB
+		     , ORD_DTL_NO
+		     , AGENT_ORDER_ID
+		     , EXTMALL_ORDER_ID
+		     , SELL_QTY
+		     , 0
+		     , NOW()
+		FROM (
+		      SELECT ODI.ITEM_CD
+		           , ODI.OPT_CD
+		           , '10' AS SELL_GB -- 주문건
+		           , OD.ORD_DTL_NO
+		           , OD.AGENT_ORDER_ID
+		           , OD.EXTMALL_ORDER_ID
+		           , SUM((OD.ORD_QTY - OD.CNCL_RTN_QTY) * ODI.ITEM_QTY) AS SELL_QTY
+		      FROM TB_ORDER_DETAIL OD
+		         , TB_ORDER_DETAIL_ITEM ODI
+		      WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		      AND OD.ORD_DTL_STAT IN ('G013_10','G013_20','G013_25','G013_30','G013_35','G013_40') -- 입금대기, 결제완료, 교환대기, 상품준비중,출고처지정,배송준비중
+		      AND EXISTS (SELECT 1 FROM TB_OPTION X WHERE X.GOODS_CD = ODI.ITEM_CD AND X.OPT_CD = ODI.OPT_CD)
+		      GROUP BY ODI.ITEM_CD, ODI.OPT_CD, OD.ORD_DTL_NO, OD.AGENT_ORDER_ID, OD.EXTMALL_ORDER_ID
+		     ) A
+		WHERE NOT EXISTS (SELECT 1 
+		                  FROM TB_SELL_QTY Y 
+		                  WHERE Y.GOODS_CD = A.ITEM_CD 
+		                  AND Y.OPT_CD = A.OPT_CD
+		                  AND Y.SELL_GB = A.SELL_GB
+		                  AND Y.ORD_DTL_NO = A.ORD_DTL_NO
+		                  )
+;
+
+	

+ 20 - 16
산출물/6.전개/확인할사항_20210823.txt

@@ -31,21 +31,27 @@
      [[${@environment.getProperty('domain.uximage')}]]
      th:src="${@environment.getProperty('domain.uximage')} + '
      _uxImageUrl -> _uximgUrl
-- 보안성 검토 파일 확인 (8/일한)
-- 정산 (8/16일) => 데이터 
+- 보안성 검토 파일 확인 (8/20일 완료)
+- 정산 (8/16일) => 데이터 검증
 - 통계 (8/17일)
 - PK건 생성. 18일 부하테스트 시 필요 (8/13일)
 - 매출문자: 평일은 저녁 8:30분, 11시 / 주말(토/일)은 오전 10시, 오후 2시, 6시, 저녁 10시 (8/16일)
+- EP 파일 확인 및 검수 요청 (8/25일 생성되도록 설정 완료. 8/26일 확인 필요)
 - 배치 (퍼블릭 배치 분리) (8/19일)
-- 광고스크립트 (8/23일)
-- 오픈 후 배치용 DB스크립트 실행 및 소요시간 확인 (8/23일 ~)
-- 상품상세의 부하테스트 때문에 VW_STOCK -> 테이블로 생성 -> 배치 작업 필요
-- 매출반영 (데이터 검증 및 배치작업 필요) (8/25일)
-- 엑셀다운로드 시 타이틀, footer 제거 양식 메소드 추가 => 다시 작업해야 함 (문달호 과장 요청)
-- 직송매장
-- BOS 메뉴 권한별 매핑
-- 동영상 문제 확인 및 조치
-- GA - 버튼 태깅 (이벤트 태킹)
+- 광고스크립트 (8/25일)
+- 앱다운로드화면(?) 추가 : 모바일웹 Footer의 "APP다운로드"에 링크 처리함. (8/25일)
+
+- 상품요약정보 배치 오류건 조치 (김은실 차장). 8/26일
+- SCM 주문에 대한 화면설계서 작성 (8/26일, 8/27일. 이태영 대리)
+- 전시에 대한 화면설계서 작성 (8/26일, 8/27일. 최수빈 과장. 김소원)
+- 마케팅메일 기능 개발 (BOS의 미리보기 기능 수정 및 위 마케팅메일 HTML로 리턴하는 거 구현). 8/26일
+- 매출반영 (데이터 검증 및 배치작업 필요) (8/26일)
+- 동영상 문제 확인 및 조치. 8/27일 (박성희 차장에게 도움 요청)
+- GA - 버튼 태깅 (이벤트 태킹) - 신주승 대리한테 계정 확인 (8/26일)
+- 엑셀다운로드 시 타이틀, footer 제거 양식 메소드 추가 => 다시 작업해야 함 (문달호 과장 요청). 8/29일
+- 오픈 후 배치용 DB스크립트 실행 및 소요시간 확인 (8/29일 ~)
+- 상품상세의 부하테스트 때문에 VW_STOCK -> 테이블로 생성 -> 배치 작업 필요 (8/29일)
+- 직송매장 테스트 (오픈 후 9월에 진행)
 
 서비스 기동 후 확인할 목록
 - 전시 화면 확인
@@ -55,9 +61,7 @@
   : 메일발송(마케팅메일)
 - 제휴채널링크 정리
 
-2. 쿠폰 다운로드 URL접근시 버전 정보 노출
-https://www.style24.com/goods/coupon/download
-https://ldfront.style24.com/goods/coupon/download 404 오류 ? 프레임웍단 문제인 것 같은데 잘 모르겠음...
-createGoodsCoupon  paramsGoods
+- GO LIVE 판단 근거를 위한 통테 KEY 항목 정리 및 협의
+
+- 주문에 대한 화면설계서 작성 (8/29일. 전석훈 차장)
 
--- GO LIVE 판단 근거를 위한 통테 KEY 항목 정리 및 협의