07.주문_OPEN.sql 108 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278
  1. -- 2021년 주문
  2. -- > 19495756
  3. ##### 주문 #####
  4. -- 배송정보
  5. TRUNCATE TABLE tb_delivery_addr;
  6. ALTER TABLE tb_delivery_addr AUTO_INCREMENT = 1;
  7. INSERT INTO tb_delivery_addr (RECIP_NM, RECIP_PHNNO, RECIP_TELNO, RECIP_ZIPCODE, RECIP_BASE_ADDR, RECIP_DTL_ADDR, DELV_MEMO, OLD_ORD_NO, REG_NO, REG_DT, UPD_NO, UPD_DT)
  8. SELECT
  9. Receiver AS RECIP_NM
  10. , ReceiverCellNum AS RECIP_PHNNO
  11. , ReceiverTelNum AS RECIP_TELNO
  12. , IF(LENGTH(REPLACE(A.DeliveryPostalCode, '-', '')) > 6, NULL, REPLACE(A.DeliveryPostalCode, '-', '')) AS RECIP_ZIPCODE
  13. , CASE WHEN A.DeliveryAddr1 IS NOT NULL AND A.DeliveryAddr1 != '' THEN A.DeliveryAddr1 ELSE A.DeliveryAddrNew END AS RECIP_BASE_ADDR
  14. , A.DeliveryAddr2 AS RECIP_DTL_ADDR
  15. , A.DeliveryMemo AS DELV_MEMO
  16. , A.OrderNo AS OLD_ORD_NO
  17. , REG_NO
  18. , REG_DT
  19. , UPD_NO
  20. , UPD_DT
  21. FROM old_ord_order A, tb_order B
  22. WHERE A.OrderNo = B.ORD_NO
  23. AND A.ORDERNO >= 19495536
  24. ; -- 2분13초
  25. SELECT MAX(DELV_ADDR_SQ) FROM tb_delivery_addr;
  26. ALTER TABLE tb_delivery_addr AUTO_INCREMENT = 4232057;
  27. -- 주문상세
  28. TRUNCATE TABLE tb_order_detail;
  29. INSERT INTO tb_order_detail
  30. SELECT
  31. ORD_DTL_NO
  32. -- , ProductNo -- 삭제
  33. , ORD_NO -- 주문번호
  34. , ORD_EXCH_GB
  35. , ORD_DTL_STAT -- 주문접수
  36. , ORG_ORD_DTL_NO
  37. , SUPPLY_COMP_CD
  38. , GOODS_CD
  39. , DEAL_GOODS_CD
  40. , FORMAL_GB
  41. , GOODS_TYPE
  42. , LIST_PRICE -- 정상가
  43. , CURR_PRICE -- 현재판매가
  44. , IF(DC_RATE < 0, 0, DC_RATE) AS DC_RATE
  45. , OPT_ADD_PRICE
  46. , ORD_QTY
  47. , ORD_AMT -- 주문금액(=(현재판매가 + 옵션추가가격) * 주문수량)
  48. , CNCL_RTN_QTY -- 취소반품수량
  49. , CNCL_RTN_AMT -- 취소반품금액
  50. , CPN1_CPN_SQ -- 1차쿠폰(즉시할인쿠폰)일련번호
  51. , CPN1_DC_AMT -- 1차쿠폰(즉시할인쿠폰)할인금액
  52. , TMTB1_SQ -- 다다익선1일련번호(수량)
  53. , TMTB1_DC_AMT -- 다다익선1할인금액(수량)
  54. , TMTB2_SQ -- 다다익선2일련번호(금액)
  55. , TMTB2_DC_AMT -- 다다익선2할인금액(금액)
  56. , GOODS_CPN_SQ -- 상품쿠폰일련번호
  57. , GOODS_CPN_DC_AMT -- 상품쿠폰할인금액
  58. , CART_CPN_SQ -- 장바구니쿠폰일련번호
  59. , CASE WHEN ORDER_DETAIL_CNT > 1 AND RNK = ORDER_DETAIL_CNT
  60. THEN CouponDiscount - (
  61. SELECT SUM(CEIL(B.CouponDiscount * ((A.UnitPrice) * Qty / SUM_ORD_AMT)))
  62. FROM old_ord_order B, old_ord_orderitem A
  63. WHERE A.OrderGUID = B.OrderGUID
  64. AND B.OrderNo = X.ORD_NO
  65. ) + CART_CPN_DC_AMT
  66. ELSE CART_CPN_DC_AMT END AS CART_CPN_DC_AMT -- 장바구니쿠폰할인금액
  67. , BURDEN_RATE -- 쿠폰분담율
  68. , CASE WHEN ORDER_DETAIL_CNT > 1 AND RNK = ORDER_DETAIL_CNT
  69. THEN UsedMileage - (
  70. SELECT SUM(CEIL(B.UsedMileage * ((A.UnitPrice) * Qty / SUM_ORD_AMT)))
  71. FROM old_ord_order B, old_ord_orderitem A
  72. WHERE A.OrderGUID = B.OrderGUID
  73. AND B.OrderNo = X.ORD_NO
  74. ) + PNT_DC_AMT
  75. ELSE PNT_DC_AMT END AS PNT_DC_AMT -- 포인트할인금액 !!! 분할해야함 !!!
  76. , PRE_PNT_DC_AMT -- 선포인트할인금액
  77. , SAVE_PNT_AMT -- 적립포인트금액
  78. , REAL_ORD_AMT -- 실주문금액(주문금액 - 취소반품금액 - 1차쿠폰 - 다다익선1 - 다다익선2 - 상품쿠폰 - 장바구니쿠폰 - 포인트할인금액 - 선포인트할인금액)
  79. , CASE WHEN ORDER_DETAIL_CNT > 1 AND RNK = ORDER_DETAIL_CNT
  80. THEN TokenAmt - (
  81. SELECT SUM(CEIL(B.TokenAmt * ((A.UnitPrice) * Qty / SUM_ORD_AMT)))
  82. FROM old_ord_order B, old_ord_orderitem A
  83. WHERE A.OrderGUID = B.OrderGUID
  84. AND B.OrderNo = X.ORD_NO
  85. ) + GFCD_USE_AMT
  86. ELSE GFCD_USE_AMT END AS GFCD_USE_AMT -- 상품권사용금액
  87. , VENDOR_ID -- 외부몰벤더ID(공통코드G003)
  88. , EXTMALL_ID -- 외부몰ID(외부몰) ????
  89. , AGENT_ORDER_ID -- 에이전트주문번호 ????
  90. , EXTMALL_ORDER_ID -- 외부몰주문번호 ????
  91. , CHANGEABLE_YN -- 교환가능여부(Y:교환가능)
  92. , CHANGE_FEE_FREE_YN -- 교환배송비무료여부(Y:교환배송비무료)
  93. , RETURNABLE_YN -- 교환가능여부(Y:교환가능)
  94. , RETURN_FEE_FREE_YN -- 교환배송비무료여부(Y:교환배송비무료)
  95. , SOLDOUT_YN -- 결품여부(Y:결품)
  96. , SOLDOUT_MEMO -- 결품메모
  97. , SOLDOUT_REG_NO -- 결품등록자번호
  98. , SOLDOUT_REG_DT -- 결품등록일시
  99. , DELV_ADDR_SQ -- 배송지일련번호 마이그레이션먼저!!!
  100. , IF(DELV_FEE_CD IS NULL , 'X', DELV_FEE_CD) AS DELV_FEE_CD -- 배송비정책코드
  101. , SHOT_DELV_YN -- 총알배송여부
  102. , GIFT_PACK_YN -- 선물포장여부
  103. , GIFT_ADDR_INP_YN -- 선물주소입력여부
  104. , MAKE_GOODS_YN -- 주문제작상품여부
  105. , ENTRY_NO -- 통관번호
  106. , DELV_LOC_CD -- 출고처코드
  107. , DELV_ASSIGN_DT -- 출고지정일시
  108. , DELV_ASSIGN_STAT -- 출고지정상태
  109. , DSTRBT_NOTE -- 물류비고
  110. , DELV_STDT -- 배송시작일시
  111. , DELV_EDDT -- 배송완료일시
  112. , SHIP_COMP_CD -- 배송업체코드
  113. , INVOICE_NO -- 송장번호
  114. , INVOICE_SEND_YN -- 송장전송여부
  115. , SELL_STORE_CD -- 판매매장코드
  116. , IF((FLOOR(SELL_FEE_RATE * 100) / 100) < 0, 0, (FLOOR(SELL_FEE_RATE * 100) / 100)) AS SELL_FEE_RATE -- 판매수수료율
  117. , AF_LINK_CD -- 제휴링크코드
  118. , ITHR_CD -- 유입경로(공통코드G027)
  119. , CONTENTS_LOC -- 컨텐츠위치(공통코드G028)
  120. , PLAN_DTL_SQ -- 기획전상세번호
  121. , SOCIAL_SQ -- 소셜일련번호
  122. , NULL AS NPAY_ORD_DTL_NO
  123. , REG_NO
  124. , REG_DT
  125. , UPD_NO
  126. , UPD_DT
  127. FROM (
  128. SELECT B.OrderItemNo AS ORD_DTL_NO
  129. -- , ProductNo -- 삭제
  130. , A.OrderNo AS ORD_NO -- 주문번호
  131. , 'O' AS ORD_EXCH_GB
  132. , CASE WHEN OrderStatusCd = '결제완료' THEN 'G013_20'
  133. WHEN OrderStatusCd = '입금대기' THEN 'G013_10'
  134. WHEN OrderStatusCd = '입금취소' THEN 'G013_98'
  135. -- WHEN OrderStatusCd = '주문취소' THEN 'G013_99'
  136. ELSE 'G013_00' END AS ORD_DTL_STAT
  137. , NULL AS ORG_ORD_DTL_NO
  138. , IF((SELECT SUPPLY_COMP_CD FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'X',
  139. (SELECT SUPPLY_COMP_CD
  140. FROM tmp_tb_goods X
  141. WHERE X.PRODUCT_NO = ProductNo)) AS SUPPLY_COMP_CD
  142. , IF((SELECT GOODS_CD FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'X',
  143. (SELECT GOODS_CD FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo)) AS GOODS_CD
  144. , NULL AS DEAL_GOODS_CD
  145. , IF((SELECT FORMAL_GB FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'X',
  146. (SELECT FORMAL_GB FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo)) AS FORMAL_GB
  147. , IF((SELECT GOODS_TYPE FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'X',
  148. (SELECT GOODS_TYPE FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo)) AS GOODS_TYPE
  149. , IF((SELECT LIST_PRICE FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 0,
  150. (SELECT LIST_PRICE FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo)) AS LIST_PRICE -- 정상가
  151. , (UnitPrice + CouponPrice) AS CURR_PRICE -- 현재판매가
  152. , IF((SELECT LIST_PRICE FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 0, FLOOR(100 -
  153. ((UnitPrice + CouponPrice) /
  154. (SELECT LIST_PRICE FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) *
  155. 100))) AS DC_RATE
  156. , 0 AS OPT_ADD_PRICE
  157. , B.Qty AS ORD_QTY
  158. , (UnitPrice + CouponPrice) * B.Qty AS ORD_AMT -- 주문금액(=(현재판매가 + 옵션추가가격) * 주문수량)
  159. , 0 AS CNCL_RTN_QTY -- 취소반품수량
  160. , 0 AS CNCL_RTN_AMT -- 취소반품금액
  161. , NULL AS CPN1_CPN_SQ -- 1차쿠폰(즉시할인쿠폰)일련번호
  162. , 0 AS CPN1_DC_AMT -- 1차쿠폰(즉시할인쿠폰)할인금액
  163. , NULL AS TMTB1_SQ -- 다다익선1일련번호(수량)
  164. , 0 AS TMTB1_DC_AMT -- 다다익선1할인금액(수량)
  165. , NULL AS TMTB2_SQ -- 다다익선2일련번호(금액)
  166. , 0 AS TMTB2_DC_AMT -- 다다익선2할인금액(금액)
  167. , NULL AS GOODS_CPN_SQ -- 상품쿠폰일련번호
  168. , CouponPrice * B.Qty AS GOODS_CPN_DC_AMT -- 상품쿠폰할인금액
  169. , NULL AS CART_CPN_SQ -- 장바구니쿠폰일련번호
  170. , (SELECT SUM((UnitPrice) * Qty) FROM old_ord_orderitem X WHERE X.OrderGUID = B.OrderGUID) AS SUM_ORD_AMT -- 주문합계
  171. , CEIL(A.CouponDiscount * ((B.UnitPrice) * Qty / (SELECT SUM((UnitPrice) * Qty) FROM old_ord_orderitem X WHERE X.OrderGUID = B.OrderGUID))) AS CART_CPN_DC_AMT -- 장바구니쿠폰할인금액
  172. , 0 AS BURDEN_RATE -- 쿠폰분담율
  173. , CEIL(A.UsedMileage * ((B.UnitPrice) * Qty / (SELECT SUM((UnitPrice) * Qty) FROM old_ord_orderitem X WHERE X.OrderGUID = B.OrderGUID))) AS PNT_DC_AMT -- 포인트할인금액 !!! 분할해야함 !!!
  174. , 0 AS PRE_PNT_DC_AMT -- 선포인트할인금액
  175. , PointSubTotal AS SAVE_PNT_AMT -- 적립포인트금액
  176. , 0 AS REAL_ORD_AMT -- 실주문금액(주문금액 - 취소반품금액 - 1차쿠폰 - 다다익선1 - 다다익선2 - 상품쿠폰 - 장바구니쿠폰 - 포인트할인금액 - 선포인트할인금액)
  177. , CEIL(A.TokenAmt * ((B.UnitPrice) * Qty / (SELECT SUM((UnitPrice) * Qty) FROM old_ord_orderitem X WHERE X.OrderGUID = B.OrderGUID))) AS GFCD_USE_AMT -- 상품권사용금액
  178. , (SELECT VENDOR_ID FROM mig_extmall X WHERE X.CHANNEL_CD = A.ChannelCd) AS VENDOR_ID -- 외부몰벤더ID(공통코드G003)
  179. , (SELECT EXTMALL_ID FROM mig_extmall X WHERE X.CHANNEL_CD = A.ChannelCd) AS EXTMALL_ID -- 외부몰ID(외부몰) ????
  180. , NULL AS AGENT_ORDER_ID -- 에이전트주문번호 ????
  181. , VendorOrderNo AS EXTMALL_ORDER_ID -- 외부몰주문번호 ????
  182. , IF((SELECT CHANGEABLE_YN FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'N',
  183. (SELECT CHANGEABLE_YN
  184. FROM tmp_tb_goods X
  185. WHERE X.PRODUCT_NO = ProductNo)) AS CHANGEABLE_YN -- 교환가능여부(Y:교환가능)
  186. , IF((SELECT CHANGE_FEE_FREE_YN FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'N',
  187. (SELECT CHANGE_FEE_FREE_YN
  188. FROM tmp_tb_goods X
  189. WHERE X.PRODUCT_NO = ProductNo)) AS CHANGE_FEE_FREE_YN -- 교환배송비무료여부(Y:교환배송비무료)
  190. , IF((SELECT RETURNABLE_YN FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'N',
  191. (SELECT RETURNABLE_YN
  192. FROM tmp_tb_goods X
  193. WHERE X.PRODUCT_NO = ProductNo)) AS RETURNABLE_YN -- 교환가능여부(Y:교환가능)
  194. , IF((SELECT RETURN_FEE_FREE_YN FROM tmp_tb_goods X WHERE X.PRODUCT_NO = ProductNo) IS NULL, 'N',
  195. (SELECT RETURN_FEE_FREE_YN
  196. FROM tmp_tb_goods X
  197. WHERE X.PRODUCT_NO = ProductNo)) AS RETURN_FEE_FREE_YN -- 교환배송비무료여부(Y:교환배송비무료)
  198. , 'N' AS SOLDOUT_YN -- 결품여부(Y:결품)
  199. , NULL AS SOLDOUT_MEMO -- 결품메모
  200. , NULL AS SOLDOUT_REG_NO -- 결품등록자번호
  201. , NULL AS SOLDOUT_REG_DT -- 결품등록일시
  202. , (SELECT DELV_ADDR_SQ
  203. FROM tb_delivery_addr X
  204. WHERE X.OLD_ORD_NO = A.OrderNo LIMIT 1) AS DELV_ADDR_SQ -- 배송지일련번호 마이그레이션먼저!!!
  205. , (SELECT DELV_FEE_CD
  206. FROM tb_delv_fee_policy X
  207. WHERE X.DELIVERY_UNIT_NO = B.DeliveryUnitNo
  208. AND X.SUPPLY_COMP_CD = (SELECT SUPPLY_COMP_CD
  209. FROM tmp_tb_goods X
  210. WHERE X.PRODUCT_NO = ProductNo)) AS DELV_FEE_CD -- 배송비정책코드
  211. , IF(DeliveryClassCd = '당일', 'Y', 'N') AS SHOT_DELV_YN -- 총알배송여부
  212. , IF(IsBeautyDelivery = 'True', 'Y', 'N') AS GIFT_PACK_YN -- 선물포장여부
  213. , 'N' AS GIFT_ADDR_INP_YN -- 선물주소입력여부
  214. , 'N' AS MAKE_GOODS_YN -- 주문제작상품여부
  215. , NULL AS ENTRY_NO -- 통관번호
  216. , CASE
  217. WHEN VendorNo IN (50, 1401, 2168, 3285, 3561) THEN NULL -- 'DL001'
  218. ELSE (SELECT DELV_LOC_CD FROM tb_delivery_loc X WHERE X.SUPPLY_COMP_CD = B.ProviderNo LIMIT 1)
  219. END AS DELV_LOC_CD -- 출고처코드
  220. , CASE
  221. WHEN (SELECT MALL_GB FROM tb_order X WHERE ORD_NO = A.OrderNo) = 'G011_20' THEN REG_DT
  222. ELSE NULL END AS DELV_ASSIGN_DT -- 출고지정일시
  223. , CASE
  224. WHEN (SELECT MALL_GB FROM tb_order X WHERE ORD_NO = A.OrderNo) = 'G011_10' THEN 'P'
  225. ELSE 'Y' END AS DELV_ASSIGN_STAT -- 출고지정상태
  226. , NULL AS DSTRBT_NOTE -- 물류비고
  227. , NULL AS DELV_STDT -- 배송시작일시
  228. , NULL AS DELV_EDDT -- 배송완료일시
  229. , NULL AS SHIP_COMP_CD -- 배송업체코드
  230. , NULL AS INVOICE_NO -- 송장번호
  231. , 'N' AS INVOICE_SEND_YN -- 송장전송여부
  232. , NULL AS SELL_STORE_CD -- 판매매장코드
  233. , (B.MarginSubTotal / ((UnitPrice + CouponPrice) * Qty) * 100) AS SELL_FEE_RATE -- 판매수수료율
  234. , (SELECT AF_LINK_CD FROM MIG_AF WHERE ASIS_CD = A.ChannelCd) AS AF_LINK_CD -- 제휴링크코드
  235. , NULL AS ITHR_CD -- 유입경로(공통코드G027)
  236. , NULL AS CONTENTS_LOC -- 컨텐츠위치(공통코드G028)
  237. , NULL AS PLAN_DTL_SQ -- 기획전상세번호
  238. , NULL AS SOCIAL_SQ -- 소셜일련번호
  239. , REG_NO
  240. , REG_DT
  241. , UPD_NO
  242. , UPD_DT
  243. , COUNT(1) OVER (PARTITION BY A.OrderNo) AS ORDER_DETAIL_CNT
  244. , RANK() over (PARTITION BY A.OrderNo ORDER BY OrderItemNo) AS RNK
  245. , A.CouponDiscount
  246. , A.UsedMileage
  247. , A.TokenAmt
  248. FROM old_ord_order A,
  249. tb_order C,
  250. old_ord_orderitem B
  251. WHERE A.OrderNo = C.ORD_NO
  252. AND A.OrderGUID = B.OrderGUID
  253. AND A.ItemTotal > 0
  254. AND B.UnitPrice > 0
  255. AND A.ORDERNO > 19495756
  256. ) X
  257. ; --
  258. UPDATE tb_order_detail
  259. SET REAL_ORD_AMT = (ORD_AMT - CNCL_RTN_AMT - GOODS_CPN_DC_AMT - CART_CPN_DC_AMT - PNT_DC_AMT - GFCD_USE_AMT)
  260. WHERE ORD_NO >= 19495536
  261. ;
  262. -- 제휴링크 옛날거는 기타로
  263. UPDATE TB_ORDER_DETAIL
  264. SET AF_LINK_CD = 'AF999'
  265. WHERE ORD_NO >= 19495536
  266. AND EXTMALL_ID IS NULL
  267. AND AF_LINK_CD IS NULL
  268. ;
  269. SELECT MAX(ORD_DTL_NO) FROM tb_order_detail;
  270. ALTER TABLE tb_order_detail AUTO_INCREMENT = 57736934;
  271. -- 주문상세단품
  272. -- TRUNCATE TABLE tb_order_detail_item;
  273. INSERT INTO tb_order_detail_item (ORD_DTL_NO, ORD_NO, ITEM_CD, OPT_CD, OPT_CD1, OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE, ITEM_QTY, ITEM_PRICE, OPT_ADD_PRICE, DISP_ORD, ORD_AMT, CNCL_RTN_AMT, CPN1_DC_AMT, TMTB1_DC_AMT, TMTB2_DC_AMT, GOODS_CPN_DC_AMT, CART_CPN_DC_AMT, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, REG_NO, REG_DT, UPD_NO, UPD_DT)
  274. SELECT A.ORD_DTL_NO
  275. , A.ORD_NO
  276. , A.GOODS_CD
  277. , B.SKUCode AS OPT_CD
  278. , (SELECT OPT_CD1 FROM tb_option X WHERE X.GOODS_CD = A.GOODS_CD AND X.OPT_CD = B.SKUCode) AS OPT_CD1
  279. , (SELECT OPT_CD2 FROM tb_option X WHERE X.GOODS_CD = A.GOODS_CD AND X.OPT_CD = B.SKUCode) AS OPT_CD2
  280. , B.SKUModelNo
  281. , B.ProductNo
  282. , B.ProductCode
  283. , B.Qty
  284. , B.CouponDiscountPrice + B.CouponPrice AS ITEM_PRICE
  285. , 0 AS OPT_ADD_PRICE
  286. , 1 AS DISP_ORD
  287. , ORD_AMT
  288. , CNCL_RTN_AMT
  289. , CPN1_DC_AMT
  290. , TMTB1_DC_AMT
  291. , TMTB2_DC_AMT
  292. , GOODS_CPN_DC_AMT
  293. , CART_CPN_DC_AMT
  294. , PNT_DC_AMT
  295. , PRE_PNT_DC_AMT
  296. , SAVE_PNT_AMT
  297. , REAL_ORD_AMT
  298. , GFCD_USE_AMT
  299. , REG_NO
  300. , REG_DT
  301. , UPD_NO
  302. , UPD_DT
  303. FROM tb_order_detail A, old_ord_orderitem B
  304. WHERE A.ORD_DTL_NO = B.OrderItemNo
  305. AND A.ORD_NO >= 19495536
  306. ; --
  307. -- 주문상세이력
  308. -- TRUNCATE TABLE tb_order_detail_hst;
  309. -- ALTER TABLE tb_order_detail_hst AUTO_INCREMENT = 1;
  310. /*
  311. INSERT INTO tb_order_detail_hst (ORD_DTL_NO, ORD_NO, ORD_EXCH_GB, ORD_DTL_STAT, ORG_ORD_DTL_NO, SUPPLY_COMP_CD, GOODS_CD, DEAL_GOODS_CD, FORMAL_GB, GOODS_TYPE, LIST_PRICE, CURR_PRICE, DC_RATE, OPT_ADD_PRICE, ORD_QTY, ORD_AMT, CNCL_RTN_QTY, CNCL_RTN_AMT, CPN1_CPN_SQ, CPN1_DC_AMT, TMTB1_SQ, TMTB1_DC_AMT, TMTB2_SQ, TMTB2_DC_AMT, GOODS_CPN_SQ, GOODS_CPN_DC_AMT, CART_CPN_SQ, CART_CPN_DC_AMT, BURDEN_RATE, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, VENDOR_ID, EXTMALL_ID, AGENT_ORDER_ID, EXTMALL_ORDER_ID, CHANGEABLE_YN, CHANGE_FEE_FREE_YN, RETURNABLE_YN, RETURN_FEE_FREE_YN, SOLDOUT_YN, SOLDOUT_MEMO, SOLDOUT_REG_NO, SOLDOUT_REG_DT, DELV_ADDR_SQ, DELV_FEE_CD, SHOT_DELV_YN, GIFT_PACK_YN, GIFT_ADDR_INP_YN, MAKE_GOODS_YN, ENTRY_NO, DELV_LOC_CD, DELV_ASSIGN_DT, DELV_ASSIGN_STAT, DSTRBT_NOTE, DELV_STDT, DELV_EDDT, SHIP_COMP_CD, INVOICE_NO, INVOICE_SEND_YN, SELL_STORE_CD, SELL_FEE_RATE, AF_LINK_CD, ITHR_CD, CONTENTS_LOC, PLAN_DTL_SQ, SOCIAL_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  312. SELECT ORD_DTL_NO, ORD_NO, ORD_EXCH_GB, ORD_DTL_STAT, ORG_ORD_DTL_NO, SUPPLY_COMP_CD, GOODS_CD, DEAL_GOODS_CD, FORMAL_GB, GOODS_TYPE, LIST_PRICE, CURR_PRICE, DC_RATE, OPT_ADD_PRICE, ORD_QTY, ORD_AMT, CNCL_RTN_QTY, CNCL_RTN_AMT, CPN1_CPN_SQ, CPN1_DC_AMT, TMTB1_SQ, TMTB1_DC_AMT, TMTB2_SQ, TMTB2_DC_AMT, GOODS_CPN_SQ, GOODS_CPN_DC_AMT, CART_CPN_SQ, CART_CPN_DC_AMT, BURDEN_RATE, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, VENDOR_ID, EXTMALL_ID, AGENT_ORDER_ID, EXTMALL_ORDER_ID, CHANGEABLE_YN, CHANGE_FEE_FREE_YN, RETURNABLE_YN, RETURN_FEE_FREE_YN, SOLDOUT_YN, SOLDOUT_MEMO, SOLDOUT_REG_NO, SOLDOUT_REG_DT, DELV_ADDR_SQ, DELV_FEE_CD, SHOT_DELV_YN, GIFT_PACK_YN, GIFT_ADDR_INP_YN, MAKE_GOODS_YN, ENTRY_NO, DELV_LOC_CD, DELV_ASSIGN_DT, DELV_ASSIGN_STAT, DSTRBT_NOTE, DELV_STDT, DELV_EDDT, SHIP_COMP_CD, INVOICE_NO, INVOICE_SEND_YN, SELL_STORE_CD, SELL_FEE_RATE, AF_LINK_CD, ITHR_CD, CONTENTS_LOC, PLAN_DTL_SQ, SOCIAL_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT
  313. FROM tb_order_detail
  314. WHERE ORD_NO >= 19495536
  315. ;
  316. */
  317. /*
  318. -- 주문상세단품이력
  319. TRUNCATE TABLE tb_order_detail_item_hst;
  320. ALTER TABLE tb_order_detail_item_hst AUTO_INCREMENT = 1;
  321. INSERT INTO tb_order_detail_item_hst (ORD_DTL_ITEM_SQ, ORD_DTL_NO, ORD_NO, ITEM_CD, OPT_CD, OPT_CD1, OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE, ITEM_QTY, ITEM_PRICE, OPT_ADD_PRICE, DISP_ORD, ORD_AMT, CNCL_RTN_AMT, CPN1_DC_AMT, TMTB1_DC_AMT, TMTB2_DC_AMT, GOODS_CPN_DC_AMT, CART_CPN_DC_AMT, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, REG_NO, REG_DT, UPD_NO, UPD_DT)
  322. SELECT ORD_DTL_ITEM_SQ, ORD_DTL_NO, ORD_NO, ITEM_CD, OPT_CD, OPT_CD1, OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE, ITEM_QTY, ITEM_PRICE, OPT_ADD_PRICE, DISP_ORD, ORD_AMT, CNCL_RTN_AMT, CPN1_DC_AMT, TMTB1_DC_AMT, TMTB2_DC_AMT, GOODS_CPN_DC_AMT, CART_CPN_DC_AMT, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, REG_NO, REG_DT, UPD_NO, UPD_DT
  323. FROM tb_order_detail_item
  324. ;
  325. */
  326. -- 결제정보
  327. -- TRUNCATE TABLE tb_payment;
  328. SELECT MAX(PAY_SQ) FROM TB_PAYMENT;
  329. ALTER TABLE TB_PAYMENT AUTO_INCREMENT = 13747699;
  330. INSERT INTO tb_payment
  331. SELECT
  332. PaymentNo AS PAY_SQ
  333. , ORD_NO
  334. , DatePaid AS PAY_DT
  335. , CASE WHEN C.MALL_GB = 'G011_20' THEN 'G014_90'
  336. WHEN A.PaymentTypeCd = '신용카드' THEN 'G014_30'
  337. WHEN A.PaymentTypeCd = '휴대폰' THEN 'G014_60'
  338. WHEN A.PaymentTypeCd = '상품권' THEN 'G014_70'
  339. WHEN A.PaymentTypeCd = '즉시이체' THEN 'G014_10'
  340. WHEN A.PaymentTypeCd = '가상계좌' THEN 'G014_20'
  341. WHEN A.PaymentTypeCd = '네이버포인트' THEN 'G014_80'
  342. ELSE 'G014_30' END AS PAY_MEANS
  343. , Amount AS PAY_AMT
  344. , 0 AS PG_CPN_AMT
  345. , CASE WHEN A.PaymentTypeCd = '네이버포인트' THEN A.PGAmount
  346. ELSE 0 END AS NPAY_PNT_AMT
  347. , 'O' AS PAY_GB
  348. , CASE WHEN B.OrderStatusCd IN ('입금대기','입금취소') THEN 'G016_10' -- 입금취소건은 나중에 결제취소로 하나더 쌓아줘야함
  349. ELSE 'G016_30' -- 결제완료,주문취소 -- 주문취소건은 나중에 결제취소로 하나더 쌓아줘야함
  350. END AS PAY_STAT
  351. , CASE WHEN C.MALL_GB = 'G011_20' THEN NULL -- 외부몰
  352. WHEN B.PGType = 'KCP' THEN 'KCP'
  353. WHEN B.PGType = 'NPay' THEN 'NAVER'
  354. WHEN B.PGType = 'PAYCO' THEN 'PAYCO'
  355. ELSE 'ISTYLE' END AS PAY_GB
  356. , IF(PGTid = '', NULL, PGTid) AS PG_TID
  357. , IF((SELECT AuthCode FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) = '', NULL, (SELECT AuthCode FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1)) AS PG_TRADE_NO
  358. , CASE WHEN B.PGType = 'NPay' THEN '8TSWSyJMMUvOLKUySQx6'
  359. WHEN B.PGType IN ('KCP','PAYCO') THEN 'U3476'
  360. ELSE NULL END PG_SHOP_ID
  361. , CASE WHEN B.PGType = 'NPay' THEN 'oGXnO7cMD1'
  362. ELSE NULL END AS PG_SHOP_KEY
  363. , NULL AS CARD_TYPE
  364. , NULL AS CARD_KIND
  365. , NULL AS CARD_BANK
  366. , IF((SELECT CardCode FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) = '', NULL, (SELECT CardCode FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1)) AS CARD_CD
  367. , (SELECT Y.CARD_NM FROM old_ord_pglog X, tb_pg_card Y
  368. WHERE Y.PG_GB = (CASE WHEN B.PGType IN ('KCP','PAYCO') THEN 'KCP' WHEN B.PGType = 'NPay' THEN 'NAVER' ELSE NULL END)
  369. AND X.CardCode = Y.CARD_CD
  370. AND X.PaymentNo = A.PaymentNo
  371. ) AS CARD_NM
  372. , (SELECT Y.COM_CARD_CD FROM old_ord_pglog X, tb_pg_card Y
  373. WHERE Y.PG_GB = (CASE WHEN B.PGType IN ('KCP','PAYCO') THEN 'KCP' WHEN B.PGType = 'NPay' THEN 'NAVER' ELSE NULL END)
  374. AND X.CardCode = Y.CARD_CD
  375. AND X.PaymentNo = A.PaymentNo
  376. ) AS COM_CARD_CD
  377. , IF((SELECT CardQuota FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) = '', NULL, (SELECT CardQuota FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1)) AS CARD_MIPS
  378. , CASE WHEN A.PaymentTypeCd = '휴대폰' THEN 'N' ELSE 'Y' END AS CARD_PCABLE_YN
  379. , (SELECT Vacct FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) AS VA_NO
  380. , (SELECT NmVacct FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) AS VA_NM
  381. , (SELECT Vcdbank FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) AS VA_BANK
  382. , DATE_FORMAT(CONCAT(DATE_FORMAT(DATE_ADD(B.DateOrdered, INTERVAL 2 DAY), '%Y%m%d'), '235959'), '%Y-%m-%d %H:%s:%i') AS VA_DEADLINE
  383. , IF((SELECT MobileCompanyCode FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1) = '', NULL, (SELECT MobileCompanyCode FROM old_ord_pglog X WHERE X.PaymentNo = A.PaymentNo LIMIT 1)) AS TELECOM
  384. , 'N' AS ESCROW_YN
  385. , (SELECT ApprovalNum FROM old_ord_cashreceiptlog X WHERE X.PaymentNo = A.PaymentNo AND ApprovalNum IS NOT NULL AND ApprovalNum != '' AND CashReceiptType != '상품권' LIMIT 1) AS CASH_AUTH_NO
  386. , (SELECT Tno FROM old_ord_cashreceiptlog X WHERE X.PaymentNo = A.PaymentNo AND ApprovalNum IS NOT NULL AND ApprovalNum != '' AND CashReceiptType != '상품권' LIMIT 1) AS CASH_TRADE_NO
  387. , NULL AS ORD_CHG_SQ
  388. , C.REG_NO
  389. , C.REG_DT
  390. , C.UPD_NO
  391. , C.UPD_DT
  392. FROM old_ord_payment A, old_ord_order B, tb_order C
  393. WHERE A.OrderGUID = B.OrderGUID
  394. AND B.OrderNo = C.ORD_NO
  395. AND OrderStatusCd != '주문접수'
  396. ; -- 14분20초
  397. -- SELECT MAX(PAY_SQ) FROM tb_payment;
  398. -- ALTER TABLE tb_payment AUTO_INCREMENT = 14073270;
  399. -- 원주문배송비
  400. -- TRUNCATE TABLE tb_delivery_fee;
  401. -- ALTER TABLE tb_delivery_fee AUTO_INCREMENT = 1;
  402. INSERT INTO tb_delivery_fee (PAY_SQ, ORD_NO, DELV_FEE_GB, DELV_FEE_CD, DELV_FEE, DELV_CPN_SQ, DELV_CPN_DC_AMT, REAL_DELV_AMT, ORD_CHG_SQ, SUPPLY_COMP_CD, DELV_USAC_YN, DELV_USAC_DT, REG_NO, REG_DT, UPD_NO, UPD_DT)
  403. SELECT
  404. DISTINCT
  405. (SELECT PAY_SQ FROM tb_payment X WHERE X.ORD_NO = C.ORD_NO) AS PAY_SQ
  406. , C.ORD_NO
  407. , 'G018_10' AS DELV_FEE_GB
  408. , C.DELV_FEE_CD
  409. , DeliveryCost AS DELV_FEE
  410. , NULL AS DELV_CPN_SQ
  411. , 0 AS DELV_CPN_DC_AMT
  412. , DeliveryCost AS REAL_DELV_AMT
  413. , NULL AS ORD_CHG_SQ
  414. , C.SUPPLY_COMP_CD
  415. , 'N' AS DELV_USAC_YN
  416. , NULL AS DELV_USAC_DT
  417. , C.REG_NO
  418. , C.REG_DT
  419. , C.REG_NO AS UPD_NO
  420. , C.REG_DT AS UPD_DT
  421. FROM old_ord_orderdelivery A, old_ord_orderitem B, tb_order_detail C
  422. WHERE A.OrderGUID = B.OrderGUID
  423. AND A.DeliveryUnitNo = B.DeliveryUnitNo
  424. AND B.OrderItemNo = C.ORD_DTL_NO
  425. AND C.ORD_NO >= 19495536
  426. ;
  427. -- 상품권 금액 보정
  428. TRUNCATE TABLE TMP_MINUS_ORD_AMT;
  429. INSERT INTO TMP_MINUS_ORD_AMT
  430. SELECT ORD_NO, SUM(REAL_ORD_AMT) AS REAL_ORD_AMT
  431. FROM TB_ORDER_DETAIL
  432. GROUP BY ORD_NO
  433. HAVING SUM(REAL_ORD_AMT) < 0
  434. ;
  435. TRUNCATE TABLE TMP_UPD_DELV_FEE;
  436. -- 배송비와 상품권 사용금액 남은게 같은거
  437. INSERT INTO TMP_UPD_DELV_FEE
  438. SELECT DELV_FEE_SQ, A.ORD_NO, DELV_FEE, DELV_GFCD_USE_AMT, REAL_DELV_AMT
  439. FROM TB_DELIVERY_FEE A, TMP_MINUS_ORD_AMT B
  440. WHERE A.ORD_NO = B.ORD_NO
  441. AND A.DELV_FEE = (B.REAL_ORD_AMT * -1)
  442. AND A.DELV_FEE > 0
  443. ;
  444. SELECT A.DELV_FEE_SQ, A.ORD_NO, A.DELV_FEE, A.DELV_GFCD_USE_AMT, A.REAL_DELV_AMT
  445. FROM TB_DELIVERY_FEE A, TMP_UPD_DELV_FEE B
  446. WHERE A.ORD_NO = B.ORD_NO
  447. ;
  448. UPDATE TB_DELIVERY_FEE A, TMP_UPD_DELV_FEE B
  449. SET A.DELV_GFCD_USE_AMT = B.REAL_DELV_AMT
  450. , A.REAL_DELV_AMT = 0
  451. WHERE A.DELV_FEE_SQ = B.DELV_FEE_SQ
  452. ;
  453. UPDATE TB_ORDER_DETAIL A, TMP_UPD_DELV_FEE B
  454. SET GFCD_USE_AMT = (ORD_AMT - GOODS_CPN_DC_AMT - CART_CPN_DC_AMT - PNT_DC_AMT)
  455. WHERE A.ORD_NO = B.ORD_NO
  456. ;
  457. UPDATE TB_ORDER_DETAIL A, TMP_UPD_DELV_FEE B
  458. SET REAL_ORD_AMT = (ORD_AMT - CNCL_RTN_AMT - GOODS_CPN_DC_AMT - CART_CPN_DC_AMT - PNT_DC_AMT - GFCD_USE_AMT)
  459. WHERE A.ORD_NO = B.ORD_NO
  460. ;
  461. TRUNCATE TABLE TMP_MINUS_ORD_AMT;
  462. INSERT INTO TMP_MINUS_ORD_AMT
  463. SELECT ORD_NO, SUM(REAL_ORD_AMT) AS REAL_ORD_AMT
  464. FROM TB_ORDER_DETAIL
  465. GROUP BY ORD_NO
  466. HAVING SUM(REAL_ORD_AMT) < 0
  467. ;
  468. SELECT COUNT(1) FROM TMP_MINUS_ORD_AMT;
  469. SELECT * FROM TMP_MINUS_ORD_AMT;
  470. SELECT DELV_FEE_SQ, A.ORD_NO, DELV_FEE, DELV_GFCD_USE_AMT, (B.REAL_ORD_AMT * -1) AS REAL_ORD_AMT
  471. , (CASE WHEN DELV_FEE > (B.REAL_ORD_AMT * -1) THEN B.REAL_ORD_AMT * -1 ELSE DELV_FEE END) AS DELV_GFCD_USE_AMT
  472. , (CASE WHEN DELV_FEE > (B.REAL_ORD_AMT * -1) THEN DELV_FEE - (B.REAL_ORD_AMT * -1) ELSE 0 END) AS REAL_DELV_AMT
  473. FROM TB_DELIVERY_FEE A, TMP_MINUS_ORD_AMT B
  474. WHERE A.ORD_NO = B.ORD_NO
  475. AND A.DELV_FEE != (B.REAL_ORD_AMT * -1)
  476. AND A.DELV_FEE > 0
  477. AND A.DELV_GFCD_USE_AMT = 0
  478. ;
  479. UPDATE TB_DELIVERY_FEE A, TMP_MINUS_ORD_AMT B
  480. SET DELV_GFCD_USE_AMT = (CASE WHEN DELV_FEE > (B.REAL_ORD_AMT * -1) THEN B.REAL_ORD_AMT * -1 ELSE DELV_FEE END)
  481. , REAL_DELV_AMT = (CASE WHEN DELV_FEE > (B.REAL_ORD_AMT * -1) THEN DELV_FEE - (B.REAL_ORD_AMT * -1) ELSE 0 END)
  482. WHERE A.ORD_NO = B.ORD_NO
  483. AND A.DELV_FEE != (B.REAL_ORD_AMT * -1)
  484. AND A.DELV_FEE > 0
  485. AND A.DELV_GFCD_USE_AMT = 0
  486. ;
  487. SELECT A.ORD_NO
  488. , ORD_AMT
  489. , GOODS_CPN_DC_AMT
  490. , CART_CPN_DC_AMT
  491. , PNT_DC_AMT
  492. , (ORD_AMT - GOODS_CPN_DC_AMT - CART_CPN_DC_AMT - PNT_DC_AMT) AS GFCD_USE_AMT
  493. , (ORD_AMT - CNCL_RTN_AMT - GOODS_CPN_DC_AMT - CART_CPN_DC_AMT - PNT_DC_AMT - (ORD_AMT - GOODS_CPN_DC_AMT - CART_CPN_DC_AMT - PNT_DC_AMT)) AS REAL_ORD_AMT
  494. FROM TB_ORDER_DETAIL A, TMP_MINUS_ORD_AMT B
  495. WHERE A.ORD_NO = B.ORD_NO
  496. ;
  497. UPDATE TB_ORDER_DETAIL A, TMP_MINUS_ORD_AMT B
  498. SET A.GFCD_USE_AMT = (A.ORD_AMT - A.GOODS_CPN_DC_AMT - A.CART_CPN_DC_AMT - A.PNT_DC_AMT)
  499. WHERE A.ORD_NO = B.ORD_NO
  500. ;
  501. UPDATE TB_ORDER_DETAIL A, TMP_MINUS_ORD_AMT B
  502. SET A.REAL_ORD_AMT = (A.ORD_AMT - A.CNCL_RTN_AMT - A.GOODS_CPN_DC_AMT - A.CART_CPN_DC_AMT - A.PNT_DC_AMT - A.GFCD_USE_AMT)
  503. WHERE A.ORD_NO = B.ORD_NO
  504. ;
  505. -- END
  506. -- 주문상세이력
  507. INSERT INTO tb_order_detail_hst (ORD_DTL_NO, ORD_NO, ORD_EXCH_GB, ORD_DTL_STAT, ORG_ORD_DTL_NO, SUPPLY_COMP_CD, GOODS_CD, DEAL_GOODS_CD, FORMAL_GB, GOODS_TYPE, LIST_PRICE, CURR_PRICE, DC_RATE, OPT_ADD_PRICE, ORD_QTY, ORD_AMT, CNCL_RTN_QTY, CNCL_RTN_AMT, CPN1_CPN_SQ, CPN1_DC_AMT, TMTB1_SQ, TMTB1_DC_AMT, TMTB2_SQ, TMTB2_DC_AMT, GOODS_CPN_SQ, GOODS_CPN_DC_AMT, CART_CPN_SQ, CART_CPN_DC_AMT, BURDEN_RATE, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, VENDOR_ID, EXTMALL_ID, AGENT_ORDER_ID, EXTMALL_ORDER_ID, CHANGEABLE_YN, CHANGE_FEE_FREE_YN, RETURNABLE_YN, RETURN_FEE_FREE_YN, SOLDOUT_YN, SOLDOUT_MEMO, SOLDOUT_REG_NO, SOLDOUT_REG_DT, DELV_ADDR_SQ, DELV_FEE_CD, SHOT_DELV_YN, GIFT_PACK_YN, GIFT_ADDR_INP_YN, MAKE_GOODS_YN, ENTRY_NO, DELV_LOC_CD, DELV_ASSIGN_DT, DELV_ASSIGN_STAT, DSTRBT_NOTE, DELV_STDT, DELV_EDDT, SHIP_COMP_CD, INVOICE_NO, INVOICE_SEND_YN, SELL_STORE_CD, SELL_FEE_RATE, AF_LINK_CD, ITHR_CD, CONTENTS_LOC, PLAN_DTL_SQ, SOCIAL_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  508. SELECT ORD_DTL_NO, ORD_NO, ORD_EXCH_GB, ORD_DTL_STAT, ORG_ORD_DTL_NO, SUPPLY_COMP_CD, GOODS_CD, DEAL_GOODS_CD, FORMAL_GB, GOODS_TYPE, LIST_PRICE, CURR_PRICE, DC_RATE, OPT_ADD_PRICE, ORD_QTY, ORD_AMT, CNCL_RTN_QTY, CNCL_RTN_AMT, CPN1_CPN_SQ, CPN1_DC_AMT, TMTB1_SQ, TMTB1_DC_AMT, TMTB2_SQ, TMTB2_DC_AMT, GOODS_CPN_SQ, GOODS_CPN_DC_AMT, CART_CPN_SQ, CART_CPN_DC_AMT, BURDEN_RATE, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, VENDOR_ID, EXTMALL_ID, AGENT_ORDER_ID, EXTMALL_ORDER_ID, CHANGEABLE_YN, CHANGE_FEE_FREE_YN, RETURNABLE_YN, RETURN_FEE_FREE_YN, SOLDOUT_YN, SOLDOUT_MEMO, SOLDOUT_REG_NO, SOLDOUT_REG_DT, DELV_ADDR_SQ, DELV_FEE_CD, SHOT_DELV_YN, GIFT_PACK_YN, GIFT_ADDR_INP_YN, MAKE_GOODS_YN, ENTRY_NO, DELV_LOC_CD, DELV_ASSIGN_DT, DELV_ASSIGN_STAT, DSTRBT_NOTE, DELV_STDT, DELV_EDDT, SHIP_COMP_CD, INVOICE_NO, INVOICE_SEND_YN, SELL_STORE_CD, SELL_FEE_RATE, AF_LINK_CD, ITHR_CD, CONTENTS_LOC, PLAN_DTL_SQ, SOCIAL_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT
  509. FROM tb_order_detail
  510. ;
  511. -- SELECT MAX(DELV_FEE_SQ) FROM tb_delivery_fee;
  512. -- ALTER TABLE tb_delivery_fee AUTO_INCREMENT = 4078196;
  513. -- 상품권현금영수증
  514. -- TRUNCATE TABLE TB_GIFTCARD_RECEIPT;
  515. INSERT INTO TB_GIFTCARD_RECEIPT
  516. SELECT
  517. ORD_NO
  518. , TRADE_NO
  519. , AUTH_NO
  520. , AMT
  521. , REG_DT
  522. , REG_DT AS UPD_DT
  523. FROM (
  524. SELECT
  525. B.ORD_NO
  526. , A.Tno AS TRADE_NO
  527. , A.ApprovalNum AS AUTH_NO
  528. , A.Amount AS AMT
  529. , A.DateCreated AS REG_DT
  530. , RANK() over (PARTITION BY PaymentNo ORDER BY DateCreated) AS RNK
  531. FROM old_ord_cashreceiptlog A, tb_payment B
  532. WHERE A.PaymentNo = B.PAY_SQ
  533. AND A.CashReceiptType = '상품권'
  534. AND ApprovalNum IS NOT NULL
  535. AND ApprovalNum != ''
  536. AND RegCd = '0000'
  537. ) A
  538. WHERE RNK = 1
  539. ;
  540. -- 송장
  541. TRUNCATE TABLE TB_ORDER_DETAIL_INVOICE;
  542. ALTER TABLE TB_ORDER_DETAIL_INVOICE AUTO_INCREMENT = 1;
  543. INSERT INTO TB_ORDER_DETAIL_INVOICE (ORD_NO, ORD_DTL_NO, INVOICE_NO, ADD_INVOICE_YN, SWT_TRC_SEND_YN, DEL_YN, REG_NO, REG_DT, UPD_NO, UPD_DT)
  544. SELECT C.ORD_NO
  545. , C.ORD_DTL_NO
  546. -- (SELECT ORD_NO FROM OLD_ORD_ORDERITEM X WHERE X.ORDERITEMNO = )
  547. -- , (SELECT OrderItemNo FROM old_ord_deliveryorderitem X WHERE X.DELIVERYORDERITEMNO)
  548. , A.InvoiceNo AS INVOICE_NO
  549. , 'N' AS ADD_INVOICE_YN
  550. , 'N' AS SWT_TRC_SEND_YN
  551. , 'N' AS DEL_YN
  552. , 2 AS REG_NO
  553. , A.DateFirstCreated AS REG_DT
  554. , 2 AS UPD_NO
  555. , A.DateFirstCreated AS UPD_DT
  556. FROM old_ord_deliveryinvoice A,
  557. old_ord_deliveryorderitem B,
  558. tb_order_detail C
  559. WHERE A.DeliveryOrderItemNo = B.DeliveryOrderItemNo
  560. AND B.OrderItemNo = C.ORD_DTL_NO
  561. AND A.InvoiceNo REGEXP('^[0-9]+$')
  562. AND B.IssueTypeCd = '정상'
  563. -- LIMIT 1000000
  564. -- LIMIT 1000000, 1000000
  565. -- LIMIT 2000000, 1000000
  566. -- LIMIT 3000000, 1000000
  567. -- LIMIT 4000000, 1000000
  568. ;
  569. /*
  570. INSERT INTO TB_ORDER_DETAIL_INVOICE (ORD_NO, ORD_DTL_NO, INVOICE_NO, ADD_INVOICE_YN, SWT_TRC_SEND_YN, DEL_YN, REG_NO, REG_DT, UPD_NO, UPD_DT)
  571. SELECT
  572. ORD_NO
  573. , ORD_DTL_NO
  574. , INVOICE_NO
  575. , ADD_INVOICE_YN
  576. , SWT_TRC_SEND_YN
  577. , DEL_YN
  578. , REG_NO
  579. , REG_DT
  580. , UPD_NO
  581. , UPD_DT
  582. FROM (
  583. SELECT C.ORD_NO
  584. , C.ORD_DTL_NO
  585. , A.InvoiceNo AS INVOICE_NO
  586. , 'N' AS ADD_INVOICE_YN
  587. , 'N' AS SWT_TRC_SEND_YN
  588. , 'N' AS DEL_YN
  589. , 2 AS REG_NO
  590. , A.DateFirstCreated AS REG_DT
  591. , 2 AS UPD_NO
  592. , A.DateFirstCreated AS UPD_DT
  593. , RANK() over (PARTITION BY C.ORD_NO, C.ORD_DTL_NO ORDER BY A.ItemNo DESC) AS RNK
  594. FROM old_ord_deliveryinvoice A,
  595. old_ord_deliveryorderitem B,
  596. tb_order_detail C
  597. WHERE A.DeliveryOrderItemNo = B.DeliveryOrderItemNo
  598. AND B.OrderItemNo = C.ORD_DTL_NO
  599. AND A.InvoiceNo REGEXP('^[0-9]+$')
  600. AND B.IssueTypeCd = '정상'
  601. ) A2
  602. WHERE RNK = 1
  603. ; -- 4분40초*/
  604. SELECT MAX(ORD_INVOICE_SQ) FROM TB_ORDER_DETAIL_INVOICE;
  605. ALTER TABLE TB_ORDER_DETAIL_INVOICE AUTO_INCREMENT = 3982636;
  606. -- 주문상세 배송관련 업데이트
  607. UPDATE tb_order_detail X
  608. SET DELV_STDT = (
  609. SELECT IFNULL(DateSent, A.DateFirstCreated) FROM old_ord_deliveryinvoice A, old_ord_deliveryorderitem B WHERE A.DeliveryOrderItemNo = B.DeliveryOrderItemNo AND A.InvoiceNo REGEXP('^[0-9]+$') AND B.IssueTypeCd = '정상' AND OrderItemNo = X.ORD_DTL_NO ORDER BY A.ItemNo DESC LIMIT 1
  610. )
  611. , DELV_EDDT = (
  612. SELECT DateReceived FROM old_ord_deliveryinvoice A, old_ord_deliveryorderitem B WHERE A.DeliveryOrderItemNo = B.DeliveryOrderItemNo AND A.InvoiceNo REGEXP('^[0-9]+$') AND B.IssueTypeCd = '정상' AND OrderItemNo = X.ORD_DTL_NO ORDER BY A.ItemNo DESC LIMIT 1
  613. )
  614. , SHIP_COMP_CD = (
  615. SELECT (CASE WHEN
  616. (SELECT SHIP_COMP_CD
  617. FROM tb_ship_company
  618. WHERE SHIP_COMP_CD = CASE
  619. WHEN LENGTH(LogisticsNo) = 1 THEN CONCAT('D100', LogisticsNo)
  620. WHEN LENGTH(LogisticsNo) = 2 THEN CONCAT('D10', LogisticsNo)
  621. ELSE CONCAT('D1', LogisticsNo) END)
  622. IN ('D1013', 'D1018') THEN 'D1029' -- CJ대한통운
  623. ELSE (SELECT SHIP_COMP_CD
  624. FROM tb_ship_company
  625. WHERE SHIP_COMP_CD = CASE
  626. WHEN LENGTH(LogisticsNo) = 1 THEN CONCAT('D100', LogisticsNo)
  627. WHEN LENGTH(LogisticsNo) = 2 THEN CONCAT('D10', LogisticsNo)
  628. ELSE CONCAT('D1', LogisticsNo) END)
  629. END
  630. )
  631. FROM old_ord_deliveryinvoice A, old_ord_deliveryorderitem B
  632. WHERE A.DeliveryOrderItemNo = B.DeliveryOrderItemNo AND A.InvoiceNo REGEXP('^[0-9]+$') AND B.IssueTypeCd = '정상'
  633. AND OrderItemNo = X.ORD_DTL_NO ORDER BY A.ItemNo DESC LIMIT 1
  634. )
  635. , INVOICE_NO = (
  636. SELECT INVOICE_NO
  637. FROM tb_order_detail_invoice A
  638. WHERE A.ORD_DTL_NO = X.ORD_DTL_NO
  639. AND A.ORD_NO = X.ORD_NO
  640. ORDER BY A.REG_DT DESC
  641. LIMIT 1
  642. )
  643. , DELV_LOC_CD = (
  644. SELECT A.DELV_LOC_CD
  645. FROM tb_delivery_loc A
  646. WHERE A.SUPPLY_COMP_CD = X.SUPPLY_COMP_CD
  647. LIMIT 1
  648. )
  649. WHERE 1 = 1
  650. AND ORD_NO >= 19495536
  651. ; -- 29분3초
  652. UPDATE tb_order_detail
  653. SET DELV_STDT = DELV_EDDT
  654. WHERE ORD_DTL_STAT = 'G013_20'
  655. AND INVOICE_NO IS NOT NULL
  656. AND DELV_STDT IS NULL
  657. AND ORD_NO >= 19495536
  658. ; -- 31초
  659. -- 배송중으로 업데이트
  660. UPDATE tb_order_detail A
  661. SET ORD_DTL_STAT = 'G013_50'
  662. -- , UPD_NO = 0 -- 배치
  663. , UPD_DT = DELV_STDT
  664. WHERE ORD_DTL_STAT = 'G013_20'
  665. AND INVOICE_NO IS NOT NULL
  666. AND ORD_NO >= 19495536
  667. ; -- 3분32초
  668. -- 주문상세이력
  669. /*
  670. INSERT INTO tb_order_detail_hst (ORD_DTL_NO, ORD_NO, ORD_EXCH_GB, ORD_DTL_STAT, ORG_ORD_DTL_NO, SUPPLY_COMP_CD, GOODS_CD, DEAL_GOODS_CD, FORMAL_GB, GOODS_TYPE, LIST_PRICE, CURR_PRICE, DC_RATE, OPT_ADD_PRICE, ORD_QTY, ORD_AMT, CNCL_RTN_QTY, CNCL_RTN_AMT, CPN1_CPN_SQ, CPN1_DC_AMT, TMTB1_SQ, TMTB1_DC_AMT, TMTB2_SQ, TMTB2_DC_AMT, GOODS_CPN_SQ, GOODS_CPN_DC_AMT, CART_CPN_SQ, CART_CPN_DC_AMT, BURDEN_RATE, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, VENDOR_ID, EXTMALL_ID, AGENT_ORDER_ID, EXTMALL_ORDER_ID, CHANGEABLE_YN, CHANGE_FEE_FREE_YN, RETURNABLE_YN, RETURN_FEE_FREE_YN, SOLDOUT_YN, SOLDOUT_MEMO, SOLDOUT_REG_NO, SOLDOUT_REG_DT, DELV_ADDR_SQ, DELV_FEE_CD, SHOT_DELV_YN, GIFT_PACK_YN, GIFT_ADDR_INP_YN, MAKE_GOODS_YN, ENTRY_NO, DELV_LOC_CD, DELV_ASSIGN_DT, DELV_ASSIGN_STAT, DSTRBT_NOTE, DELV_STDT, DELV_EDDT, SHIP_COMP_CD, INVOICE_NO, INVOICE_SEND_YN, SELL_STORE_CD, SELL_FEE_RATE, AF_LINK_CD, ITHR_CD, CONTENTS_LOC, PLAN_DTL_SQ, SOCIAL_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  671. SELECT * FROM tb_order_detail
  672. WHERE ORD_DTL_STAT = 'G013_50'
  673. ;
  674. */
  675. -- 배송완료로 업데이트
  676. UPDATE tb_order_detail A
  677. SET ORD_DTL_STAT = 'G013_60'
  678. -- , UPD_NO = 0 -- 배치
  679. , UPD_DT = DELV_EDDT
  680. WHERE ORD_DTL_STAT = 'G013_50'
  681. AND INVOICE_NO IS NOT NULL
  682. AND DELV_EDDT IS NOT NULL
  683. AND ORD_NO >= 19495536
  684. ; -- 3분37초
  685. -- 구매확정처리
  686. -- Table : TB_ORD_DeliveryOrderItem
  687. -- Column : IsConfirmed
  688. UPDATE tb_order_detail A, old_ord_deliveryorderitem B
  689. SET ORD_DTL_STAT = 'G013_70'
  690. WHERE A.ORD_DTL_NO = B.OrderItemNo
  691. AND A.ORD_NO >= 19495536
  692. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98')
  693. AND B.IsConfirmed = 'True'
  694. ;
  695. UPDATE tb_order_detail A, old_ord_deliveryorderitem B
  696. SET ORD_DTL_STAT = 'G013_70'
  697. WHERE A.ORD_DTL_NO = B.OrderItemNo
  698. AND A.ORD_NO >= 19495536
  699. AND ORD_DTL_STAT != 'G013_70'
  700. AND B.IsConfirmed = 'True'
  701. ;
  702. -- 주문상세이력
  703. /*
  704. INSERT INTO tb_order_detail_hst (ORD_DTL_NO, ORD_NO, ORD_EXCH_GB, ORD_DTL_STAT, ORG_ORD_DTL_NO, SUPPLY_COMP_CD, GOODS_CD, DEAL_GOODS_CD, FORMAL_GB, GOODS_TYPE, LIST_PRICE, CURR_PRICE, DC_RATE, OPT_ADD_PRICE, ORD_QTY, ORD_AMT, CNCL_RTN_QTY, CNCL_RTN_AMT, CPN1_CPN_SQ, CPN1_DC_AMT, TMTB1_SQ, TMTB1_DC_AMT, TMTB2_SQ, TMTB2_DC_AMT, GOODS_CPN_SQ, GOODS_CPN_DC_AMT, CART_CPN_SQ, CART_CPN_DC_AMT, BURDEN_RATE, PNT_DC_AMT, PRE_PNT_DC_AMT, SAVE_PNT_AMT, REAL_ORD_AMT, GFCD_USE_AMT, VENDOR_ID, EXTMALL_ID, AGENT_ORDER_ID, EXTMALL_ORDER_ID, CHANGEABLE_YN, CHANGE_FEE_FREE_YN, RETURNABLE_YN, RETURN_FEE_FREE_YN, SOLDOUT_YN, SOLDOUT_MEMO, SOLDOUT_REG_NO, SOLDOUT_REG_DT, DELV_ADDR_SQ, DELV_FEE_CD, SHOT_DELV_YN, GIFT_PACK_YN, GIFT_ADDR_INP_YN, MAKE_GOODS_YN, ENTRY_NO, DELV_LOC_CD, DELV_ASSIGN_DT, DELV_ASSIGN_STAT, DSTRBT_NOTE, DELV_STDT, DELV_EDDT, SHIP_COMP_CD, INVOICE_NO, INVOICE_SEND_YN, SELL_STORE_CD, SELL_FEE_RATE, AF_LINK_CD, ITHR_CD, CONTENTS_LOC, PLAN_DTL_SQ, SOCIAL_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  705. SELECT * FROM tb_order_detail
  706. WHERE ORD_DTL_STAT = 'G013_60'
  707. ;
  708. */
  709. -- 입금대기->취소
  710. TRUNCATE TABLE tb_order_change;
  711. ALTER TABLE tb_order_change AUTO_INCREMENT = 1;
  712. INSERT INTO tb_order_change (CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO)
  713. SELECT
  714. 'G680_10' AS CHG_GB
  715. , 'G686_10' AS CHG_REASON
  716. , NULL AS CHG_MEMO
  717. , NULL AS WD_GB
  718. , NULL AS CHGER_NM
  719. , NULL AS CHGER_PHNNO
  720. , NULL AS CHGER_TELNO
  721. , NULL AS CHGER_EMAIL
  722. , NULL AS CHGER_ZIPCODE
  723. , NULL AS CHGER_BASE_ADDR
  724. , NULL AS CHGER_DTL_ADDR
  725. , NULL AS CHGER_RTN_MEMO
  726. , 0 AS ADD_PAY_COST
  727. , 0 AS ADD_PAY_AMT
  728. , NULL AS WD_INVOICE_NO
  729. , 'N' AS WD_INVOICE_SEND_YN
  730. , NULL AS SHIP_COMP_CD
  731. , NULL AS WD_STDT
  732. , NULL AS WD_EDDT
  733. , 'N' AS SWT_TRC_SEND_YN
  734. , NULL AS WD_SHIP_STATE
  735. , NULL AS WD_REASON_CD
  736. , NULL AS WD_STATE_DT
  737. , 'N' AS WD_BF_SEND_YN
  738. , REG_NO
  739. , VA_DEADLINE AS REG_DT
  740. , UPD_NO
  741. , VA_DEADLINE AS UPD_DT
  742. , ORD_NO
  743. FROM old_ord_order A, tb_payment B
  744. WHERE A.OrderNo = B.ORD_NO
  745. AND OrderStatusCd = '입금취소'
  746. ; -- 3초
  747. TRUNCATE TABLE tb_order_change_detail;
  748. INSERT INTO tb_order_change_detail
  749. SELECT
  750. ORD_CHG_SQ
  751. , ORD_DTL_NO
  752. , ORD_QTY
  753. , 'G685_17' AS CHG_STAT
  754. , NULL AS CHG_ORD_DTL_NO
  755. , NULL AS WH_MEMO
  756. , NULL AS COMPLETE_DT
  757. , 'N' AS DEL_YN
  758. , REG_NO
  759. , A.REG_DT
  760. , UPD_NO
  761. , A.UPD_DT
  762. FROM tb_order_change A, tb_order_detail B
  763. WHERE A.OLD_ORD_NO = B.ORD_NO
  764. AND A.CHG_GB = 'G680_10'
  765. AND B.ORD_NO > 1000
  766. ; -- 3초
  767. INSERT INTO tb_payment (ORD_NO, PAY_DT, PAY_MEANS, PAY_AMT, PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, PAY_STAT, PG_GB, PG_TID, PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND, CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS, CARD_PCABLE_YN, VA_NO, VA_NM, VA_BANK, VA_DEADLINE, TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO, ORD_CHG_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  768. SELECT DISTINCT ORD_NO, PAY_DT, PAY_MEANS, (PAY_AMT * -1) AS PAY_AMT
  769. , PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, 'G016_98' AS PAY_STAT, PG_GB, PG_TID
  770. , PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND
  771. , CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS
  772. , CARD_PCABLE_YN, NULL AS VA_NO, NULL AS VA_NM, NULL AS VA_BANK, NULL AS VA_DEADLINE
  773. , TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO
  774. , B.ORD_CHG_SQ, A.REG_NO, VA_DEADLINE AS REG_DT, A.UPD_NO, VA_DEADLINE AS UPD_DT
  775. FROM tb_payment A, tb_order_change B
  776. WHERE A.ORD_NO = B.OLD_ORD_NO
  777. AND EXISTS(
  778. SELECT 1
  779. FROM tb_order_detail B
  780. WHERE B.ORD_NO = A.ORD_NO
  781. AND ORD_DTL_STAT = 'G013_98'
  782. )
  783. AND A.ORD_NO > 1000
  784. ; -- 4초
  785. UPDATE tb_order_detail A, tb_order_change_detail B
  786. SET A.CNCL_RTN_QTY = A.ORD_QTY
  787. , A.CNCL_RTN_AMT = A.ORD_AMT
  788. , A.GOODS_CPN_DC_AMT = 0
  789. , A.CART_CPN_DC_AMT = 0
  790. , A.PNT_DC_AMT = 0
  791. , A.SAVE_PNT_AMT = 0
  792. , A.REAL_ORD_AMT = 0
  793. , A.GFCD_USE_AMT = 0
  794. -- , A.UPD_NO = 0
  795. , A.UPD_DT = B.REG_DT
  796. WHERE A.ORD_DTL_NO = B.ORD_DTL_NO
  797. AND CHG_STAT = 'G685_17'
  798. AND A.ORD_NO > 1000
  799. ; -- 4초
  800. -- DELETE FROM tb_order_change WHERE CHG_GB = 'G680_20';
  801. -- 결제후주문취소(취소/반품 나눠서 처리해야함)
  802. -- 전체취소
  803. INSERT INTO tb_order_change (ORD_CHG_SQ, CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO, OLD_EXEPTION_NO)
  804. SELECT DISTINCT
  805. B.ExceptionNo
  806. , 'G680_20' AS CHG_GB
  807. , CASE WHEN (SELECT MAX(ExceptionReasonCd) FROM old_ord_orderexceptionitem X WHERE X.ExceptionNo = B.ExceptionNo AND X.ExceptionTypeCd = '취소') = '취소' THEN 'G686_10'
  808. WHEN (SELECT MAX(ExceptionReasonCd) FROM old_ord_orderexceptionitem X WHERE X.ExceptionNo = B.ExceptionNo AND X.ExceptionTypeCd = '취소') = '고객변심' THEN 'G686_10'
  809. WHEN (SELECT MAX(ExceptionReasonCd) FROM old_ord_orderexceptionitem X WHERE X.ExceptionNo = B.ExceptionNo AND X.ExceptionTypeCd = '취소') = '품절' THEN 'G686_30'
  810. WHEN (SELECT MAX(ExceptionReasonCd) FROM old_ord_orderexceptionitem X WHERE X.ExceptionNo = B.ExceptionNo AND X.ExceptionTypeCd = '취소') = '상품불량' THEN 'G686_11'
  811. WHEN (SELECT MAX(ExceptionReasonCd) FROM old_ord_orderexceptionitem X WHERE X.ExceptionNo = B.ExceptionNo AND X.ExceptionTypeCd = '취소') = '오배송' THEN 'G686_12'
  812. WHEN (SELECT MAX(ExceptionReasonCd) FROM old_ord_orderexceptionitem X WHERE X.ExceptionNo = B.ExceptionNo AND X.ExceptionTypeCd = '취소') = '배송지연' THEN 'G686_13'
  813. ELSE 'G686_90' END AS CHG_REASON
  814. , B.AdminMemo AS CHG_MEMO
  815. , NULL AS WD_GB
  816. , NULL AS CHGER_NM
  817. , NULL AS CHGER_PHNNO
  818. , NULL AS CHGER_TELNO
  819. , NULL AS CHGER_EMAIL
  820. , NULL AS CHGER_ZIPCODE
  821. , NULL AS CHGER_BASE_ADDR
  822. , NULL AS CHGER_DTL_ADDR
  823. , NULL AS CHGER_RTN_MEMO
  824. , 0 AS ADD_PAY_COST
  825. , 0 AS ADD_PAY_AMT
  826. , NULL AS WD_INVOICE_NO
  827. , 'N' AS WD_INVOICE_SEND_YN
  828. , NULL AS SHIP_COMP_CD
  829. , NULL AS WD_STDT
  830. , NULL AS WD_EDDT
  831. , 'N' AS SWT_TRC_SEND_YN
  832. , NULL AS WD_SHIP_STATE
  833. , NULL AS WD_REASON_CD
  834. , NULL AS WD_STATE_DT
  835. , 'N' AS WD_BF_SEND_YN
  836. , C.REG_NO
  837. , B.DateCreated AS REG_DT
  838. , C.UPD_NO
  839. , B.DateCreated AS UPD_DT
  840. , A.OrderNo
  841. , B.ExceptionNo
  842. FROM old_ord_order A, old_ord_orderexception B, tb_order C, old_ord_refund D
  843. WHERE A.OrderNo = B.OrderNo
  844. AND A.OrderNo = C.ORD_NO
  845. AND B.ExceptionNo = D.ExceptionNo
  846. AND A.OrderStatusCd = '주문취소'
  847. AND B.ExceptionTypeCd = '취소'
  848. AND D.StatusCd = '환불완료'
  849. AND C.ORD_NO > 1000
  850. ; -- 30초
  851. -- DELETE FROM tb_order_change_detail WHERE CHG_STAT = 'G685_18';
  852. INSERT INTO tb_order_change_detail
  853. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  854. ORD_CHG_SQ
  855. , ORD_DTL_NO
  856. , B.Qty
  857. , 'G685_18' AS CHG_STAT
  858. , NULL AS CHG_ORD_DTL_NO
  859. , NULL AS WH_MEMO
  860. , NULL AS COMPLETE_DT
  861. , 'N' AS DEL_YN
  862. , A.REG_NO
  863. , A.REG_DT
  864. , A.UPD_NO
  865. , A.UPD_DT
  866. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  867. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  868. AND A.OLD_ORD_NO = C.ORD_NO
  869. AND B.OrderItemNo = C.ORD_DTL_NO
  870. AND A.CHG_GB = 'G680_20'
  871. AND B.ExceptionTypeCd = '취소'
  872. AND C.ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98')
  873. AND C.ORD_NO > 1000
  874. ; -- 12초
  875. SELECT * FROM tb_order_detail WHERE ORD_NO = 14365690;
  876. SELECT * FROM tb_order_change WHERE OLD_ORD_NO = 14365690;
  877. SELECT * FROM old_ord_refund WHERE ExceptionNo = 1551870;
  878. SELECT * FROM old_ord_orderexception WHERE ExceptionNo = 1551869;
  879. SELECT * FROM old_ord_orderexception WHERE ExceptionNo = 1551870;
  880. SELECT * FROM old_ord_orderexception WHERE ExceptionNo = 1547312;
  881. SELECT DISTINCT StatusCd FROM old_ord_orderexception;
  882. INSERT INTO tb_payment (ORD_NO, PAY_DT, PAY_MEANS, PAY_AMT, PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, PAY_STAT, PG_GB, PG_TID, PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND, CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS, CARD_PCABLE_YN, VA_NO, VA_NM, VA_BANK, VA_DEADLINE, TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO, ORD_CHG_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  883. SELECT DISTINCT ORD_NO, C.DateRefund AS PAY_DT, PAY_MEANS, ((refundcash + refundCardCancel) * -1) AS PAY_AMT
  884. , PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, 'G016_99' AS PAY_STAT, PG_GB, PG_TID
  885. , PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND
  886. , CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS
  887. , CARD_PCABLE_YN, NULL AS VA_NO, NULL AS VA_NM, NULL AS VA_BANK, NULL AS VA_DEADLINE
  888. , TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO
  889. , B.ORD_CHG_SQ, B.REG_NO, B.REG_DT, B.UPD_NO, B.UPD_DT
  890. FROM tb_payment A, tb_order_change B, old_ord_refund C
  891. WHERE A.ORD_NO = B.OLD_ORD_NO
  892. AND B.ORD_CHG_SQ = C.ExceptionNo
  893. AND EXISTS(
  894. SELECT 1
  895. FROM tb_order_detail B
  896. WHERE B.ORD_NO = A.ORD_NO
  897. AND B.ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98')
  898. )
  899. AND C.StatusCd = '환불완료'
  900. AND A.ORD_NO > 1000
  901. ; -- 16초
  902. TRUNCATE TABLE tb_refund;
  903. INSERT INTO tb_refund
  904. SELECT
  905. A.ORD_NO
  906. , A.PAY_SQ
  907. , A.ORD_CHG_SQ
  908. , (refundcash + refundCardCancel) AS REFUND_AMT
  909. , 0 AS DEPOSIT_AMT
  910. , C.RefundAccount AS RA_NO
  911. , C.RefundBank AS RA_BANK
  912. , C.AccountUserName AS RA_NM
  913. , 0 AS RF_CPN1_AMT
  914. , 0 AS RF_TMTB1_AMT
  915. , 0 AS RF_TMTB2_AMT
  916. , 0 AS RF_GOODS_CPN_AMT
  917. , C.RefundCouponDiscount AS RF_CART_CPN_AMT
  918. , 0 AS RF_DELV_CPN_AMT
  919. , C.RefundMileage AS RF_PNT_AMT
  920. , 0 AS RF_PRE_PNT_AMT
  921. , C.RefundTokenAmt AS RF_GFCD_USE_AMT
  922. , 0 AS RF_DELV_GFCD_USE_AMT
  923. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost + refundTokenAmt + refundMileage + RefundCouponDiscount) - refundDeliveryCost) AS RF_CNCL_AMT
  924. , C.RefundDeliveryCost AS RF_DELIVERY_FEE
  925. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost) - refundDeliveryCost) AS RF_REAL_CNCL_AMT
  926. , CustomerChargeDeliveryCost AS CUST_DELV_COST
  927. , refundMemo AS RF_MEMO
  928. , B.REG_NO
  929. , B.REG_DT
  930. , 'N' AS ENC_UPD_YN
  931. FROM tb_payment A, tb_order_change B, old_ord_refund C
  932. WHERE A.ORD_NO = B.OLD_ORD_NO
  933. AND A.ORD_CHG_SQ = B.ORD_CHG_SQ
  934. AND B.ORD_CHG_SQ = C.ExceptionNo
  935. AND EXISTS(
  936. SELECT 1
  937. FROM tb_order_detail B
  938. WHERE B.ORD_NO = A.ORD_NO
  939. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98')
  940. )
  941. AND C.StatusCd = '환불완료'
  942. AND A.ORD_NO > 1000
  943. ; -- 12초
  944. UPDATE tb_order_detail A
  945. SET CNCL_RTN_QTY = ORD_QTY
  946. , CNCL_RTN_AMT = ORD_AMT
  947. , GOODS_CPN_DC_AMT = 0
  948. , CART_CPN_DC_AMT = 0
  949. , PNT_DC_AMT = 0
  950. , SAVE_PNT_AMT = 0
  951. , REAL_ORD_AMT = 0
  952. , GFCD_USE_AMT = 0
  953. , ORD_DTL_STAT = 'G013_99'
  954. -- , UPD_NO = 0
  955. , UPD_DT = (SELECT MAX(X.REG_DT) FROM tb_order_change_detail X WHERE X.ORD_DTL_NO = A.ORD_DTL_NO)
  956. WHERE EXISTS(
  957. SELECT 1
  958. FROM tb_order_change_detail B
  959. WHERE B.ORD_DTL_NO = A.ORD_DTL_NO
  960. AND CHG_STAT = 'G685_18'
  961. )
  962. AND A.ORD_NO > 1000
  963. ; -- 40초
  964. -- 주문상세별 전체 취소
  965. INSERT INTO tb_order_change (ORD_CHG_SQ, CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO, OLD_EXEPTION_NO)
  966. SELECT DISTINCT
  967. C.ExceptionNo
  968. , CHG_GB
  969. , CHG_REASON
  970. , C.AdminMemo AS CHG_MEMO
  971. , WD_GB
  972. , CHGER_NM
  973. , CHGER_PHNNO
  974. , CHGER_TELNO
  975. , CHGER_EMAIL
  976. , CHGER_ZIPCODE
  977. , CHGER_BASE_ADDR
  978. , CHGER_DTL_ADDR
  979. , CHGER_RTN_MEMO
  980. , ADD_PAY_COST
  981. , ADD_PAY_AMT
  982. , WD_INVOICE_NO
  983. , WD_INVOICE_SEND_YN
  984. , SHIP_COMP_CD
  985. , WD_STDT
  986. , WD_EDDT
  987. , SWT_TRC_SEND_YN
  988. , WD_SHIP_STATE
  989. , WD_REASON_CD
  990. , WD_STATE_DT
  991. , WD_BF_SEND_YN
  992. , REG_NO
  993. , C.DateCreated AS REG_DT
  994. , REG_NO
  995. , C.DateLastModified AS UPD_DT
  996. , ORD_NO
  997. , C.ExceptionNo
  998. FROM (
  999. SELECT 'G680_20' AS CHG_GB
  1000. , CASE
  1001. WHEN (SELECT MAX(ExceptionReasonCd)
  1002. FROM old_ord_orderexceptionitem X
  1003. WHERE X.ExceptionNo = B.ExceptionNo
  1004. AND X.ExceptionTypeCd = '취소') = '취소' THEN 'G686_10'
  1005. WHEN (SELECT MAX(ExceptionReasonCd)
  1006. FROM old_ord_orderexceptionitem X
  1007. WHERE X.ExceptionNo = B.ExceptionNo
  1008. AND X.ExceptionTypeCd = '취소') = '고객변심' THEN 'G686_10'
  1009. WHEN (SELECT MAX(ExceptionReasonCd)
  1010. FROM old_ord_orderexceptionitem X
  1011. WHERE X.ExceptionNo = B.ExceptionNo
  1012. AND X.ExceptionTypeCd = '취소') = '품절' THEN 'G686_30'
  1013. WHEN (SELECT MAX(ExceptionReasonCd)
  1014. FROM old_ord_orderexceptionitem X
  1015. WHERE X.ExceptionNo = B.ExceptionNo
  1016. AND X.ExceptionTypeCd = '취소') = '상품불량' THEN 'G686_11'
  1017. WHEN (SELECT MAX(ExceptionReasonCd)
  1018. FROM old_ord_orderexceptionitem X
  1019. WHERE X.ExceptionNo = B.ExceptionNo
  1020. AND X.ExceptionTypeCd = '취소') = '오배송' THEN 'G686_12'
  1021. WHEN (SELECT MAX(ExceptionReasonCd)
  1022. FROM old_ord_orderexceptionitem X
  1023. WHERE X.ExceptionNo = B.ExceptionNo
  1024. AND X.ExceptionTypeCd = '취소') = '배송지연' THEN 'G686_13'
  1025. ELSE 'G686_90' END AS CHG_REASON
  1026. , NULL AS WD_GB
  1027. , NULL AS CHGER_NM
  1028. , NULL AS CHGER_PHNNO
  1029. , NULL AS CHGER_TELNO
  1030. , NULL AS CHGER_EMAIL
  1031. , NULL AS CHGER_ZIPCODE
  1032. , NULL AS CHGER_BASE_ADDR
  1033. , NULL AS CHGER_DTL_ADDR
  1034. , NULL AS CHGER_RTN_MEMO
  1035. , 0 AS ADD_PAY_COST
  1036. , 0 AS ADD_PAY_AMT
  1037. , NULL AS WD_INVOICE_NO
  1038. , 'N' AS WD_INVOICE_SEND_YN
  1039. , NULL AS SHIP_COMP_CD
  1040. , NULL AS WD_STDT
  1041. , NULL AS WD_EDDT
  1042. , 'N' AS SWT_TRC_SEND_YN
  1043. , NULL AS WD_SHIP_STATE
  1044. , NULL AS WD_REASON_CD
  1045. , NULL AS WD_STATE_DT
  1046. , 'N' AS WD_BF_SEND_YN
  1047. , A.REG_NO
  1048. , A.UPD_NO
  1049. , A.ORD_NO
  1050. , B.ExceptionNo
  1051. FROM tb_order_detail A,
  1052. old_ord_orderexceptionitem B
  1053. WHERE A.ORD_DTL_NO = B.OrderItemNo
  1054. AND A.ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1055. AND B.ExceptionTypeCd = '취소'
  1056. AND A.ORD_QTY = B.Qty
  1057. AND B.StatusCd = '처리완료'
  1058. AND A.ORD_NO > 1000
  1059. ) AA, old_ord_orderexception C
  1060. WHERE AA.ExceptionNo = C.ExceptionNo
  1061. -- AND AA.ExceptionNo = 1888671
  1062. ; -- 7초
  1063. INSERT INTO tb_order_change_detail
  1064. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1065. ORD_CHG_SQ
  1066. , ORD_DTL_NO
  1067. , B.Qty
  1068. , 'G685_18' AS CHG_STAT
  1069. , NULL AS CHG_ORD_DTL_NO
  1070. , NULL AS WH_MEMO
  1071. , NULL AS COMPLETE_DT
  1072. , 'N' AS DEL_YN
  1073. , A.REG_NO
  1074. , A.REG_DT
  1075. , A.UPD_NO
  1076. , A.UPD_DT
  1077. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1078. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1079. AND A.OLD_ORD_NO = C.ORD_NO
  1080. AND B.OrderItemNo = C.ORD_DTL_NO
  1081. AND A.CHG_GB = 'G680_20'
  1082. AND B.ExceptionTypeCd = '취소'
  1083. AND C.ORD_QTY = B.Qty
  1084. AND C.ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1085. AND B.StatusCd = '처리완료'
  1086. AND C.ORD_NO > 1000
  1087. ; -- 5초
  1088. UPDATE tb_order_detail A
  1089. SET CNCL_RTN_QTY = ORD_QTY
  1090. , CNCL_RTN_AMT = ORD_AMT
  1091. , GOODS_CPN_DC_AMT = 0
  1092. , CART_CPN_DC_AMT = 0
  1093. , PNT_DC_AMT = 0
  1094. , SAVE_PNT_AMT = 0
  1095. , REAL_ORD_AMT = 0
  1096. , GFCD_USE_AMT = 0
  1097. -- , UPD_NO = 0
  1098. , UPD_DT = (SELECT MAX(X.REG_DT) FROM tb_order_change_detail X WHERE X.ORD_DTL_NO = A.ORD_DTL_NO)
  1099. , ORD_DTL_STAT = 'G013_99'
  1100. WHERE EXISTS(
  1101. SELECT 1
  1102. FROM old_ord_orderexceptionitem B
  1103. WHERE B.OrderItemNo = A.ORD_DTL_NO
  1104. AND B.ExceptionTypeCd = '취소'
  1105. AND A.ORD_QTY = B.Qty
  1106. AND B.StatusCd = '처리완료'
  1107. )
  1108. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1109. -- AND ORD_DTL_STAT = 'G013_20'
  1110. ; -- 9초
  1111. -- 수량부분취소
  1112. INSERT INTO tb_order_change_detail
  1113. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1114. ORD_CHG_SQ
  1115. , ORD_DTL_NO
  1116. , B.Qty
  1117. , 'G685_XX' AS CHG_STAT
  1118. , NULL AS CHG_ORD_DTL_NO
  1119. , NULL AS WH_MEMO
  1120. , NULL AS COMPLETE_DT
  1121. , 'N' AS DEL_YN
  1122. , A.REG_NO
  1123. , A.REG_DT
  1124. , A.UPD_NO
  1125. , A.UPD_DT
  1126. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1127. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1128. AND A.OLD_ORD_NO = C.ORD_NO
  1129. AND B.OrderItemNo = C.ORD_DTL_NO
  1130. AND A.CHG_GB = 'G680_20'
  1131. AND B.ExceptionTypeCd = '취소'
  1132. AND C.ORD_QTY != B.Qty
  1133. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1134. AND B.StatusCd = '처리완료'
  1135. AND C.ORD_NO > 1000
  1136. ;
  1137. INSERT INTO tb_order_change (ORD_CHG_SQ, CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO, OLD_EXEPTION_NO)
  1138. SELECT DISTINCT
  1139. C.ExceptionNo
  1140. , CHG_GB
  1141. , CHG_REASON
  1142. , C.AdminMemo AS CHG_MEMO
  1143. , WD_GB
  1144. , CHGER_NM
  1145. , CHGER_PHNNO
  1146. , CHGER_TELNO
  1147. , CHGER_EMAIL
  1148. , CHGER_ZIPCODE
  1149. , CHGER_BASE_ADDR
  1150. , CHGER_DTL_ADDR
  1151. , CHGER_RTN_MEMO
  1152. , ADD_PAY_COST
  1153. , ADD_PAY_AMT
  1154. , WD_INVOICE_NO
  1155. , WD_INVOICE_SEND_YN
  1156. , SHIP_COMP_CD
  1157. , WD_STDT
  1158. , WD_EDDT
  1159. , SWT_TRC_SEND_YN
  1160. , WD_SHIP_STATE
  1161. , WD_REASON_CD
  1162. , WD_STATE_DT
  1163. , WD_BF_SEND_YN
  1164. , REG_NO
  1165. , C.DateCreated AS REG_DT
  1166. , UPD_NO
  1167. , C.DateLastModified AS UPD_DT
  1168. , ORD_NO
  1169. , C.ExceptionNo
  1170. FROM (
  1171. SELECT 'G680_20' AS CHG_GB
  1172. , CASE
  1173. WHEN (SELECT MAX(ExceptionReasonCd)
  1174. FROM old_ord_orderexceptionitem X
  1175. WHERE X.ExceptionNo = B.ExceptionNo
  1176. AND X.ExceptionTypeCd = '취소') = '취소' THEN 'G686_10'
  1177. WHEN (SELECT MAX(ExceptionReasonCd)
  1178. FROM old_ord_orderexceptionitem X
  1179. WHERE X.ExceptionNo = B.ExceptionNo
  1180. AND X.ExceptionTypeCd = '취소') = '고객변심' THEN 'G686_10'
  1181. WHEN (SELECT MAX(ExceptionReasonCd)
  1182. FROM old_ord_orderexceptionitem X
  1183. WHERE X.ExceptionNo = B.ExceptionNo
  1184. AND X.ExceptionTypeCd = '취소') = '품절' THEN 'G686_30'
  1185. WHEN (SELECT MAX(ExceptionReasonCd)
  1186. FROM old_ord_orderexceptionitem X
  1187. WHERE X.ExceptionNo = B.ExceptionNo
  1188. AND X.ExceptionTypeCd = '취소') = '상품불량' THEN 'G686_11'
  1189. WHEN (SELECT MAX(ExceptionReasonCd)
  1190. FROM old_ord_orderexceptionitem X
  1191. WHERE X.ExceptionNo = B.ExceptionNo
  1192. AND X.ExceptionTypeCd = '취소') = '오배송' THEN 'G686_12'
  1193. WHEN (SELECT MAX(ExceptionReasonCd)
  1194. FROM old_ord_orderexceptionitem X
  1195. WHERE X.ExceptionNo = B.ExceptionNo
  1196. AND X.ExceptionTypeCd = '취소') = '배송지연' THEN 'G686_13'
  1197. ELSE 'G686_90' END AS CHG_REASON
  1198. , NULL AS WD_GB
  1199. , NULL AS CHGER_NM
  1200. , NULL AS CHGER_PHNNO
  1201. , NULL AS CHGER_TELNO
  1202. , NULL AS CHGER_EMAIL
  1203. , NULL AS CHGER_ZIPCODE
  1204. , NULL AS CHGER_BASE_ADDR
  1205. , NULL AS CHGER_DTL_ADDR
  1206. , NULL AS CHGER_RTN_MEMO
  1207. , 0 AS ADD_PAY_COST
  1208. , 0 AS ADD_PAY_AMT
  1209. , NULL AS WD_INVOICE_NO
  1210. , 'N' AS WD_INVOICE_SEND_YN
  1211. , NULL AS SHIP_COMP_CD
  1212. , NULL AS WD_STDT
  1213. , NULL AS WD_EDDT
  1214. , 'N' AS SWT_TRC_SEND_YN
  1215. , NULL AS WD_SHIP_STATE
  1216. , NULL AS WD_REASON_CD
  1217. , NULL AS WD_STATE_DT
  1218. , 'N' AS WD_BF_SEND_YN
  1219. , A.REG_NO
  1220. , A.REG_DT
  1221. , A.UPD_NO
  1222. , A.UPD_DT
  1223. , A.ORD_NO
  1224. , B.ExceptionNo
  1225. FROM tb_order_detail A,
  1226. old_ord_orderexceptionitem B
  1227. WHERE A.ORD_DTL_NO = B.OrderItemNo
  1228. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1229. AND B.ExceptionTypeCd = '취소'
  1230. AND A.ORD_QTY != B.Qty
  1231. AND B.StatusCd = '처리완료'
  1232. AND A.ORD_NO > 1000
  1233. ) AA, old_ord_orderexception C
  1234. WHERE AA.ExceptionNo = C.ExceptionNo
  1235. AND NOT EXISTS(
  1236. SELECT 1
  1237. FROM tb_order_change X
  1238. WHERE X.ORD_CHG_SQ = C.ExceptionNo
  1239. )
  1240. -- AND C.ExceptionNo = 1550590
  1241. ;
  1242. INSERT INTO tb_order_change_detail
  1243. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1244. ORD_CHG_SQ
  1245. , ORD_DTL_NO
  1246. , B.Qty
  1247. , 'G685_XX' AS CHG_STAT
  1248. , NULL AS CHG_ORD_DTL_NO
  1249. , NULL AS WH_MEMO
  1250. , NULL AS COMPLETE_DT
  1251. , 'N' AS DEL_YN
  1252. , A.REG_NO
  1253. , A.REG_DT
  1254. , A.UPD_NO
  1255. , A.UPD_DT
  1256. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1257. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1258. AND A.OLD_ORD_NO = C.ORD_NO
  1259. AND B.OrderItemNo = C.ORD_DTL_NO
  1260. AND A.CHG_GB = 'G680_20'
  1261. AND B.ExceptionTypeCd = '취소'
  1262. AND C.ORD_QTY != B.Qty
  1263. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1264. AND B.StatusCd = '처리완료'
  1265. AND C.ORD_NO > 1000
  1266. AND NOT EXISTS(
  1267. SELECT 1
  1268. FROM tb_order_change_detail X
  1269. WHERE X.ORD_CHG_SQ = B.ExceptionNo
  1270. AND X.ORD_DTL_NO = B.OrderItemNo
  1271. )
  1272. ;
  1273. INSERT INTO tb_payment (ORD_NO, PAY_DT, PAY_MEANS, PAY_AMT, PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, PAY_STAT, PG_GB, PG_TID, PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND, CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS, CARD_PCABLE_YN, VA_NO, VA_NM, VA_BANK, VA_DEADLINE, TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO, ORD_CHG_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  1274. SELECT DISTINCT ORD_NO, C.DateRefund AS PAY_DT, PAY_MEANS, ((refundcash + refundCardCancel) * -1) AS PAY_AMT
  1275. , PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, 'G016_99' AS PAY_STAT, PG_GB, PG_TID
  1276. , PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND
  1277. , CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS
  1278. , CARD_PCABLE_YN, NULL AS VA_NO, NULL AS VA_NM, NULL AS VA_BANK, NULL AS VA_DEADLINE
  1279. , TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO
  1280. , B.ORD_CHG_SQ, B.REG_NO, B.REG_DT, B.UPD_NO, B.UPD_DT
  1281. FROM tb_payment A, tb_order_change B, old_ord_refund C
  1282. WHERE A.ORD_NO = B.OLD_ORD_NO
  1283. AND B.ORD_CHG_SQ = C.ExceptionNo
  1284. AND B.CHG_GB = 'G680_20'
  1285. AND C.StatusCd = '환불완료'
  1286. AND A.ORD_NO > 1000
  1287. ; -- 10초
  1288. INSERT INTO tb_refund
  1289. SELECT
  1290. A.ORD_NO
  1291. , A.PAY_SQ
  1292. , A.ORD_CHG_SQ
  1293. , (refundcash + refundCardCancel) AS REFUND_AMT
  1294. , 0 AS DEPOSIT_AMT
  1295. , C.RefundAccount AS RA_NO
  1296. , C.RefundBank AS RA_BANK
  1297. , C.AccountUserName AS RA_NM
  1298. , 0 AS RF_CPN1_AMT
  1299. , 0 AS RF_TMTB1_AMT
  1300. , 0 AS RF_TMTB2_AMT
  1301. , 0 AS RF_GOODS_CPN_AMT
  1302. , C.RefundCouponDiscount AS RF_CART_CPN_AMT
  1303. , 0 AS RF_DELV_CPN_AMT
  1304. , C.RefundMileage AS RF_PNT_AMT
  1305. , 0 AS RF_PRE_PNT_AMT
  1306. , C.RefundTokenAmt AS RF_GFCD_USE_AMT
  1307. , 0 AS RF_DELV_GFCD_USE_AMT
  1308. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost + refundTokenAmt + refundMileage + RefundCouponDiscount) - refundDeliveryCost) AS RF_CNCL_AMT
  1309. , C.RefundDeliveryCost AS RF_DELIVERY_FEE
  1310. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost) - refundDeliveryCost) AS RF_REAL_CNCL_AMT
  1311. , CustomerChargeDeliveryCost AS CUST_DELV_COST
  1312. , refundMemo AS RF_MEMO
  1313. , B.REG_NO
  1314. , B.REG_DT
  1315. , 'N' AS ENC_UPD_YN
  1316. FROM tb_payment A, tb_order_change B, old_ord_refund C
  1317. WHERE A.ORD_NO = B.OLD_ORD_NO
  1318. AND A.ORD_CHG_SQ = B.ORD_CHG_SQ
  1319. AND B.ORD_CHG_SQ = C.ExceptionNo
  1320. AND B.CHG_GB = 'G680_20'
  1321. AND C.StatusCd = '환불완료'
  1322. AND A.ORD_NO > 1000
  1323. ; -- 7초
  1324. -- 이후 배치 실행 TsbMigrationOrderTask cancelQtyOrderDetailJob
  1325. SELECT
  1326. A.ORD_CHG_SQ
  1327. , A.ORD_DTL_NO
  1328. , B.ORD_QTY
  1329. , B.ORD_AMT
  1330. , B.CNCL_RTN_QTY
  1331. , B.CNCL_RTN_AMT
  1332. , B.GOODS_CPN_DC_AMT
  1333. , B.CART_CPN_DC_AMT
  1334. , B.PNT_DC_AMT
  1335. , B.SAVE_PNT_AMT
  1336. , B.REAL_ORD_AMT
  1337. , B.GFCD_USE_AMT
  1338. , A.CHG_QTY
  1339. FROM tb_order_change_detail A, tb_order_detail B
  1340. WHERE A.ORD_DTL_NO = B.ORD_DTL_NO
  1341. AND A.CHG_STAT = 'G685_XX'
  1342. ORDER BY A.ORD_DTL_NO
  1343. ;
  1344. -- 원주문배송비 환불
  1345. INSERT INTO tb_delivery_fee (PAY_SQ, ORD_NO, DELV_FEE_GB, DELV_FEE_CD, DELV_FEE, DELV_CPN_SQ, DELV_CPN_DC_AMT, REAL_DELV_AMT, ORD_CHG_SQ, SUPPLY_COMP_CD, DELV_USAC_YN, DELV_USAC_DT, REG_NO, REG_DT, UPD_NO, UPD_DT)
  1346. SELECT
  1347. A.PAY_SQ
  1348. , A.ORD_NO
  1349. , 'G018_10' AS DELV_FEE_GB
  1350. , B.DELV_FEE_CD
  1351. , RF_DELIVERY_FEE * -1 AS DELV_FEE
  1352. , NULL AS DELV_CPN_SQ
  1353. , 0 AS DELV_CPN_DC_AMT
  1354. , RF_DELIVERY_FEE * -1 AS REAL_DELV_AMT
  1355. , A.ORD_CHG_SQ
  1356. , B.SUPPLY_COMP_CD
  1357. , 'N' AS DELV_USAC_YN
  1358. , NULL AS DELV_USAC_DT
  1359. , A.REG_NO
  1360. , A.REG_DT
  1361. , A.REG_NO AS UPD_NO
  1362. , A.REG_DT AS UPD_DT
  1363. FROM tb_refund A, tb_delivery_fee B
  1364. WHERE A.ORD_NO = B.ORD_NO
  1365. AND A.PAY_SQ != B.PAY_SQ
  1366. AND RF_DELIVERY_FEE > 0
  1367. ;
  1368. -- 반품
  1369. -- 주문상세별 반품
  1370. INSERT INTO tb_order_change (ORD_CHG_SQ, CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO, OLD_EXEPTION_NO)
  1371. SELECT DISTINCT
  1372. C.ExceptionNo
  1373. , CHG_GB
  1374. , CHG_REASON
  1375. , C.AdminMemo AS CHG_MEMO
  1376. , WD_GB
  1377. , CHGER_NM
  1378. , CHGER_PHNNO
  1379. , CHGER_TELNO
  1380. , CHGER_EMAIL
  1381. , CHGER_ZIPCODE
  1382. , CHGER_BASE_ADDR
  1383. , CHGER_DTL_ADDR
  1384. , CHGER_RTN_MEMO
  1385. , ADD_PAY_COST
  1386. , ADD_PAY_AMT
  1387. , WD_INVOICE_NO
  1388. , WD_INVOICE_SEND_YN
  1389. , SHIP_COMP_CD
  1390. , WD_STDT
  1391. , WD_EDDT
  1392. , SWT_TRC_SEND_YN
  1393. , WD_SHIP_STATE
  1394. , WD_REASON_CD
  1395. , WD_STATE_DT
  1396. , WD_BF_SEND_YN
  1397. , REG_NO
  1398. , C.DateCreated AS REG_DT
  1399. , REG_NO
  1400. , C.DateLastModified AS UPD_DT
  1401. , ORD_NO
  1402. , C.ExceptionNo
  1403. FROM (
  1404. SELECT 'G680_30' AS CHG_GB
  1405. , CASE
  1406. WHEN (SELECT MAX(ExceptionReasonCd)
  1407. FROM old_ord_orderexceptionitem X
  1408. WHERE X.ExceptionNo = B.ExceptionNo
  1409. AND X.ExceptionTypeCd = '반품') = '고객변심' THEN 'G688_10'
  1410. WHEN (SELECT MAX(ExceptionReasonCd)
  1411. FROM old_ord_orderexceptionitem X
  1412. WHERE X.ExceptionNo = B.ExceptionNo
  1413. AND X.ExceptionTypeCd = '반품') = '상품불량' THEN 'G688_11'
  1414. WHEN (SELECT MAX(ExceptionReasonCd)
  1415. FROM old_ord_orderexceptionitem X
  1416. WHERE X.ExceptionNo = B.ExceptionNo
  1417. AND X.ExceptionTypeCd = '반품') = '품절' THEN 'G688_17'
  1418. WHEN (SELECT MAX(ExceptionReasonCd)
  1419. FROM old_ord_orderexceptionitem X
  1420. WHERE X.ExceptionNo = B.ExceptionNo
  1421. AND X.ExceptionTypeCd = '반품') = '오배송' THEN 'G688_12'
  1422. WHEN (SELECT MAX(ExceptionReasonCd)
  1423. FROM old_ord_orderexceptionitem X
  1424. WHERE X.ExceptionNo = B.ExceptionNo
  1425. AND X.ExceptionTypeCd = '반품') = '배송지연' THEN 'G688_13'
  1426. ELSE 'G688_90' END AS CHG_REASON
  1427. , NULL AS WD_GB
  1428. , (SELECT RECIP_NM FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_NM
  1429. , (SELECT RECIP_PHNNO FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_PHNNO
  1430. , (SELECT RECIP_TELNO FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_TELNO
  1431. , (SELECT ORD_EMAIL FROM tb_order X WHERE X.ORD_NO = A.ORD_NO) AS CHGER_EMAIL
  1432. , (SELECT RECIP_ZIPCODE FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_ZIPCODE
  1433. , (SELECT RECIP_BASE_ADDR FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_BASE_ADDR
  1434. , (SELECT RECIP_DTL_ADDR FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_DTL_ADDR
  1435. , NULL AS CHGER_RTN_MEMO
  1436. , 0 AS ADD_PAY_COST
  1437. , 0 AS ADD_PAY_AMT
  1438. , NULL AS WD_INVOICE_NO
  1439. , 'N' AS WD_INVOICE_SEND_YN
  1440. , NULL AS SHIP_COMP_CD
  1441. , NULL AS WD_STDT
  1442. , NULL AS WD_EDDT
  1443. , 'N' AS SWT_TRC_SEND_YN
  1444. , NULL AS WD_SHIP_STATE
  1445. , NULL AS WD_REASON_CD
  1446. , NULL AS WD_STATE_DT
  1447. , 'N' AS WD_BF_SEND_YN
  1448. , A.REG_NO
  1449. , A.REG_DT
  1450. , A.UPD_NO
  1451. , A.UPD_DT
  1452. , A.ORD_NO
  1453. , B.ExceptionNo
  1454. FROM tb_order_detail A,
  1455. old_ord_orderexceptionitem B
  1456. WHERE A.ORD_DTL_NO = B.OrderItemNo
  1457. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1458. AND B.ExceptionTypeCd = '반품'
  1459. AND (A.ORD_QTY - A.CNCL_RTN_QTY) = B.Qty
  1460. AND B.StatusCd IS NOT NULL
  1461. ) AA, old_ord_orderexception C
  1462. WHERE AA.ExceptionNo = C.ExceptionNo
  1463. -- AND C.ExceptionNo = 1548177
  1464. ; --
  1465. -- 상세별전체반품
  1466. INSERT INTO tb_order_change_detail
  1467. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1468. ORD_CHG_SQ
  1469. , ORD_DTL_NO
  1470. , B.Qty
  1471. , CASE WHEN B.StatusCd = '처리완료' THEN 'G685_60'
  1472. WHEN B.StatusCd = '회수지시' THEN 'G685_30'
  1473. WHEN B.StatusCd IN ('환불대기','회수완료','환불지시') THEN 'G685_33'
  1474. ELSE 'G685_50' END AS CHG_STAT
  1475. , NULL AS CHG_ORD_DTL_NO
  1476. , NULL AS WH_MEMO
  1477. , NULL AS COMPLETE_DT
  1478. , 'N' AS DEL_YN
  1479. , A.REG_NO
  1480. , A.REG_DT
  1481. , A.UPD_NO
  1482. , A.UPD_DT
  1483. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1484. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1485. AND A.OLD_ORD_NO = C.ORD_NO
  1486. AND B.OrderItemNo = C.ORD_DTL_NO
  1487. AND A.CHG_GB = 'G680_30'
  1488. AND B.ExceptionTypeCd = '반품'
  1489. AND (C.ORD_QTY - C.CNCL_RTN_QTY) = B.Qty
  1490. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1491. AND B.StatusCd IS NOT NULL
  1492. AND C.ORD_NO > 1000
  1493. ; --
  1494. UPDATE tb_order_detail A, tb_order_change_detail B
  1495. SET CNCL_RTN_QTY = ORD_QTY
  1496. , CNCL_RTN_AMT = ORD_AMT
  1497. , GOODS_CPN_DC_AMT = 0
  1498. , CART_CPN_DC_AMT = 0
  1499. , PNT_DC_AMT = 0
  1500. , SAVE_PNT_AMT = 0
  1501. , REAL_ORD_AMT = 0
  1502. , GFCD_USE_AMT = 0
  1503. , ORD_DTL_STAT = 'G013_99'
  1504. -- , UPD_NO = 0
  1505. , A.UPD_DT = (SELECT MAX(X.REG_DT) FROM tb_order_change_detail X WHERE X.ORD_DTL_NO = A.ORD_DTL_NO)
  1506. WHERE A.ORD_DTL_NO = B.ORD_DTL_NO
  1507. AND B.CHG_STAT = 'G685_60'
  1508. AND A.ORD_NO > 1000
  1509. ; -- 40초
  1510. -- 수량부분 반품(처리완료)
  1511. INSERT INTO tb_order_change_detail
  1512. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1513. ORD_CHG_SQ
  1514. , ORD_DTL_NO
  1515. , B.Qty
  1516. , 'G685_XX' AS CHG_STAT
  1517. , NULL AS CHG_ORD_DTL_NO
  1518. , NULL AS WH_MEMO
  1519. , NULL AS COMPLETE_DT
  1520. , 'N' AS DEL_YN
  1521. , A.REG_NO
  1522. , A.REG_DT
  1523. , A.UPD_NO
  1524. , A.UPD_DT
  1525. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1526. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1527. AND A.OLD_ORD_NO = C.ORD_NO
  1528. AND B.OrderItemNo = C.ORD_DTL_NO
  1529. AND A.CHG_GB = 'G680_30'
  1530. AND B.ExceptionTypeCd = '반품'
  1531. AND (C.ORD_QTY - C.CNCL_RTN_QTY) != B.Qty
  1532. AND B.StatusCd IS NOT NULL
  1533. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1534. AND B.StatusCd = '처리완료'
  1535. AND C.ORD_NO > 1000
  1536. ;
  1537. -- 수량부분 반품(처리중)
  1538. INSERT INTO tb_order_change_detail
  1539. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1540. ORD_CHG_SQ
  1541. , ORD_DTL_NO
  1542. , B.Qty
  1543. , 'G685_XX' AS CHG_STAT
  1544. , NULL AS CHG_ORD_DTL_NO
  1545. , NULL AS WH_MEMO
  1546. , NULL AS COMPLETE_DT
  1547. , 'N' AS DEL_YN
  1548. , A.REG_NO
  1549. , A.REG_DT
  1550. , A.UPD_NO
  1551. , A.UPD_DT
  1552. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1553. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1554. AND A.OLD_ORD_NO = C.ORD_NO
  1555. AND B.OrderItemNo = C.ORD_DTL_NO
  1556. AND A.CHG_GB = 'G680_30'
  1557. AND B.ExceptionTypeCd = '반품'
  1558. AND (C.ORD_QTY - C.CNCL_RTN_QTY) != B.Qty
  1559. AND B.StatusCd IS NOT NULL
  1560. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1561. AND B.StatusCd != '처리완료'
  1562. AND C.ORD_NO > 1000
  1563. ;
  1564. -- 배치실행 TsbMigrationOrderTask returnQtyOrderDetailJob
  1565. -- 부분 반품만 있는것
  1566. INSERT INTO tb_order_change (ORD_CHG_SQ, CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO, OLD_EXEPTION_NO)
  1567. SELECT DISTINCT
  1568. C.ExceptionNo
  1569. , CHG_GB
  1570. , CHG_REASON
  1571. , C.AdminMemo AS CHG_MEMO
  1572. , WD_GB
  1573. , CHGER_NM
  1574. , CHGER_PHNNO
  1575. , CHGER_TELNO
  1576. , CHGER_EMAIL
  1577. , CHGER_ZIPCODE
  1578. , CHGER_BASE_ADDR
  1579. , CHGER_DTL_ADDR
  1580. , CHGER_RTN_MEMO
  1581. , ADD_PAY_COST
  1582. , ADD_PAY_AMT
  1583. , WD_INVOICE_NO
  1584. , WD_INVOICE_SEND_YN
  1585. , SHIP_COMP_CD
  1586. , WD_STDT
  1587. , WD_EDDT
  1588. , SWT_TRC_SEND_YN
  1589. , WD_SHIP_STATE
  1590. , WD_REASON_CD
  1591. , WD_STATE_DT
  1592. , WD_BF_SEND_YN
  1593. , REG_NO
  1594. , C.DateCreated AS REG_DT
  1595. , REG_NO
  1596. , C.DateLastModified AS UPD_DT
  1597. , ORD_NO
  1598. , C.ExceptionNo
  1599. FROM (
  1600. SELECT 'G680_30' AS CHG_GB
  1601. , CASE
  1602. WHEN (SELECT MAX(ExceptionReasonCd)
  1603. FROM old_ord_orderexceptionitem X
  1604. WHERE X.ExceptionNo = B.ExceptionNo
  1605. AND X.ExceptionTypeCd = '반품') = '고객변심' THEN 'G688_10'
  1606. WHEN (SELECT MAX(ExceptionReasonCd)
  1607. FROM old_ord_orderexceptionitem X
  1608. WHERE X.ExceptionNo = B.ExceptionNo
  1609. AND X.ExceptionTypeCd = '반품') = '상품불량' THEN 'G688_11'
  1610. WHEN (SELECT MAX(ExceptionReasonCd)
  1611. FROM old_ord_orderexceptionitem X
  1612. WHERE X.ExceptionNo = B.ExceptionNo
  1613. AND X.ExceptionTypeCd = '반품') = '품절' THEN 'G688_17'
  1614. WHEN (SELECT MAX(ExceptionReasonCd)
  1615. FROM old_ord_orderexceptionitem X
  1616. WHERE X.ExceptionNo = B.ExceptionNo
  1617. AND X.ExceptionTypeCd = '반품') = '오배송' THEN 'G688_12'
  1618. WHEN (SELECT MAX(ExceptionReasonCd)
  1619. FROM old_ord_orderexceptionitem X
  1620. WHERE X.ExceptionNo = B.ExceptionNo
  1621. AND X.ExceptionTypeCd = '반품') = '배송지연' THEN 'G688_13'
  1622. ELSE 'G688_90' END AS CHG_REASON
  1623. , NULL AS WD_GB
  1624. , (SELECT RECIP_NM FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_NM
  1625. , (SELECT RECIP_PHNNO FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_PHNNO
  1626. , (SELECT RECIP_TELNO FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_TELNO
  1627. , (SELECT ORD_EMAIL FROM tb_order X WHERE X.ORD_NO = A.ORD_NO) AS CHGER_EMAIL
  1628. , (SELECT RECIP_ZIPCODE FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_ZIPCODE
  1629. , (SELECT RECIP_BASE_ADDR FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_BASE_ADDR
  1630. , (SELECT RECIP_DTL_ADDR FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_DTL_ADDR
  1631. , NULL AS CHGER_RTN_MEMO
  1632. , 0 AS ADD_PAY_COST
  1633. , 0 AS ADD_PAY_AMT
  1634. , NULL AS WD_INVOICE_NO
  1635. , 'N' AS WD_INVOICE_SEND_YN
  1636. , NULL AS SHIP_COMP_CD
  1637. , NULL AS WD_STDT
  1638. , NULL AS WD_EDDT
  1639. , 'N' AS SWT_TRC_SEND_YN
  1640. , NULL AS WD_SHIP_STATE
  1641. , NULL AS WD_REASON_CD
  1642. , NULL AS WD_STATE_DT
  1643. , 'N' AS WD_BF_SEND_YN
  1644. , A.REG_NO
  1645. , A.REG_DT
  1646. , A.UPD_NO
  1647. , A.UPD_DT
  1648. , A.ORD_NO
  1649. , B.ExceptionNo
  1650. FROM tb_order_detail A,
  1651. old_ord_orderexceptionitem B
  1652. WHERE A.ORD_DTL_NO = B.OrderItemNo
  1653. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1654. AND B.ExceptionTypeCd = '반품'
  1655. AND (A.ORD_QTY - A.CNCL_RTN_QTY) != B.Qty
  1656. AND B.StatusCd IS NOT NULL
  1657. ) AA, old_ord_orderexception C
  1658. WHERE AA.ExceptionNo = C.ExceptionNo
  1659. AND NOT EXISTS(
  1660. SELECT 1
  1661. FROM tb_order_change X
  1662. WHERE X.ORD_CHG_SQ = C.ExceptionNo
  1663. )
  1664. -- AND C.ExceptionNo = 1553434
  1665. ; --
  1666. -- 수량부분 반품(처리완료)
  1667. INSERT INTO tb_order_change_detail
  1668. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1669. ORD_CHG_SQ
  1670. , ORD_DTL_NO
  1671. , B.Qty
  1672. , 'G685_XX' AS CHG_STAT
  1673. , NULL AS CHG_ORD_DTL_NO
  1674. , NULL AS WH_MEMO
  1675. , NULL AS COMPLETE_DT
  1676. , 'N' AS DEL_YN
  1677. , A.REG_NO
  1678. , A.REG_DT
  1679. , A.UPD_NO
  1680. , A.UPD_DT
  1681. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1682. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1683. AND A.OLD_ORD_NO = C.ORD_NO
  1684. AND B.OrderItemNo = C.ORD_DTL_NO
  1685. AND A.CHG_GB = 'G680_30'
  1686. AND B.ExceptionTypeCd = '반품'
  1687. AND (C.ORD_QTY - C.CNCL_RTN_QTY) != B.Qty
  1688. AND B.StatusCd IS NOT NULL
  1689. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1690. AND B.StatusCd = '처리완료'
  1691. AND C.ORD_NO > 1000
  1692. AND NOT EXISTS (
  1693. SELECT 1
  1694. FROM tb_order_change_detail X
  1695. WHERE X.ORD_CHG_SQ = A.ORD_CHG_SQ
  1696. AND X.ORD_DTL_NO = C.ORD_DTL_NO
  1697. )
  1698. ;
  1699. -- 수량부분 반품(처리중)
  1700. INSERT INTO tb_order_change_detail
  1701. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1702. ORD_CHG_SQ
  1703. , ORD_DTL_NO
  1704. , B.Qty
  1705. , 'G685_XX' AS CHG_STAT
  1706. , NULL AS CHG_ORD_DTL_NO
  1707. , NULL AS WH_MEMO
  1708. , NULL AS COMPLETE_DT
  1709. , 'N' AS DEL_YN
  1710. , A.REG_NO
  1711. , A.REG_DT
  1712. , A.UPD_NO
  1713. , A.UPD_DT
  1714. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1715. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1716. AND A.OLD_ORD_NO = C.ORD_NO
  1717. AND B.OrderItemNo = C.ORD_DTL_NO
  1718. AND A.CHG_GB = 'G680_30'
  1719. AND B.ExceptionTypeCd = '반품'
  1720. AND (C.ORD_QTY - C.CNCL_RTN_QTY) != B.Qty
  1721. AND B.StatusCd IS NOT NULL
  1722. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1723. AND B.StatusCd != '처리완료'
  1724. AND C.ORD_NO > 1000
  1725. AND NOT EXISTS (
  1726. SELECT 1
  1727. FROM tb_order_change_detail X
  1728. WHERE X.ORD_CHG_SQ = A.ORD_CHG_SQ
  1729. AND X.ORD_DTL_NO = C.ORD_DTL_NO
  1730. )
  1731. ;
  1732. -- 결제내역
  1733. INSERT INTO tb_payment (ORD_NO, PAY_DT, PAY_MEANS, PAY_AMT, PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, PAY_STAT, PG_GB, PG_TID, PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND, CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS, CARD_PCABLE_YN, VA_NO, VA_NM, VA_BANK, VA_DEADLINE, TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO, ORD_CHG_SQ, REG_NO, REG_DT, UPD_NO, UPD_DT)
  1734. SELECT DISTINCT ORD_NO, C.DateRefund AS PAY_DT, PAY_MEANS, ((refundcash + refundCardCancel) * -1) AS PAY_AMT
  1735. , PG_CPN_AMT, NPAY_PNT_AMT, PAY_GB, 'G016_99' AS PAY_STAT, PG_GB, PG_TID
  1736. , PG_TRADE_NO, PG_SHOP_ID, PG_SHOP_KEY, CARD_TYPE, CARD_KIND
  1737. , CARD_BANK, CARD_CD, CARD_NM, COM_CARD_CD, CARD_MIPS
  1738. , CARD_PCABLE_YN, NULL AS VA_NO, NULL AS VA_NM, NULL AS VA_BANK, NULL AS VA_DEADLINE
  1739. , TELECOM, ESCROW_YN, CASH_AUTH_NO, CASH_TRADE_NO
  1740. , B.ORD_CHG_SQ, B.REG_NO, C.DateRefund AS REG_DT, B.UPD_NO, C.DateRefund AS UPD_DT
  1741. FROM tb_payment A, tb_order_change B, old_ord_refund C
  1742. WHERE A.ORD_NO = B.OLD_ORD_NO
  1743. AND B.ORD_CHG_SQ = C.ExceptionNo
  1744. AND B.CHG_GB = 'G680_30'
  1745. /*AND EXISTS(
  1746. SELECT 1
  1747. FROM tb_order_change_detail X -- , old_ord_orderexceptionitem Y -- TB_ORDER_CHANGE_DETAIL 보면될듯
  1748. WHERE X.ORD_CHG_SQ = B.ORD_CHG_SQ
  1749. AND X.CHG_STAT = 'G685_XX'
  1750. )*/
  1751. AND C.StatusCd = '환불완료'
  1752. AND A.ORD_NO > 1000
  1753. -- AND B.ORD_CHG_SQ = 1548613
  1754. ;
  1755. -- 완료건
  1756. INSERT INTO tb_refund
  1757. SELECT
  1758. A.ORD_NO
  1759. , A.PAY_SQ
  1760. , A.ORD_CHG_SQ
  1761. , (refundcash + refundCardCancel) AS REFUND_AMT
  1762. , 0 AS DEPOSIT_AMT
  1763. , C.RefundAccount AS RA_NO
  1764. , C.RefundBank AS RA_BANK
  1765. , C.AccountUserName AS RA_NM
  1766. , 0 AS RF_CPN1_AMT
  1767. , 0 AS RF_TMTB1_AMT
  1768. , 0 AS RF_TMTB2_AMT
  1769. , 0 AS RF_GOODS_CPN_AMT
  1770. , C.RefundCouponDiscount AS RF_CART_CPN_AMT
  1771. , 0 AS RF_DELV_CPN_AMT
  1772. , C.RefundMileage AS RF_PNT_AMT
  1773. , 0 AS RF_PRE_PNT_AMT
  1774. , C.RefundTokenAmt AS RF_GFCD_USE_AMT
  1775. , 0 AS RF_DELV_GFCD_USE_AMT
  1776. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost + refundTokenAmt + refundMileage + RefundCouponDiscount) - refundDeliveryCost) AS RF_CNCL_AMT
  1777. , C.RefundDeliveryCost AS RF_DELIVERY_FEE
  1778. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost) - refundDeliveryCost) AS RF_REAL_CNCL_AMT
  1779. , CustomerChargeDeliveryCost AS CUST_DELV_COST
  1780. , refundMemo AS RF_MEMO
  1781. , B.REG_NO
  1782. , B.REG_DT
  1783. , 'N' AS ENC_UPD_YN
  1784. FROM tb_payment A, tb_order_change B, old_ord_refund C
  1785. WHERE A.ORD_NO = B.OLD_ORD_NO
  1786. AND A.ORD_CHG_SQ = B.ORD_CHG_SQ
  1787. AND B.ORD_CHG_SQ = C.ExceptionNo
  1788. AND B.CHG_GB = 'G680_30'
  1789. /*AND EXISTS(
  1790. SELECT 1
  1791. FROM tb_order_change_detail X -- , old_ord_orderexceptionitem Y -- TB_ORDER_CHANGE_DETAIL 보면될듯
  1792. WHERE X.ORD_CHG_SQ = B.ORD_CHG_SQ
  1793. AND X.CHG_STAT = 'G685_XX'
  1794. )*/
  1795. AND C.StatusCd = '환불완료'
  1796. AND B.OLD_ORD_NO > 1000
  1797. -- AND C.ExceptionNo = 1725163
  1798. ; -- 7초
  1799. -- 취소/반품 완료일자 업데이트
  1800. UPDATE tb_order_change_detail A, OLD_ORD_REFUND B
  1801. SET COMPLETE_DT = DATEREFUND
  1802. WHERE A.ORD_CHG_SQ = B.EXCEPTIONNO
  1803. ;
  1804. -- 반품진행중
  1805. INSERT INTO tb_refund
  1806. SELECT
  1807. B.OLD_ORD_NO AS ORD_NO
  1808. , 0 AS PAY_SQ
  1809. , B.ORD_CHG_SQ
  1810. , (refundcash + refundCardCancel) AS REFUND_AMT
  1811. , 0 AS DEPOSIT_AMT
  1812. , C.RefundAccount AS RA_NO
  1813. , C.RefundBank AS RA_BANK
  1814. , C.AccountUserName AS RA_NM
  1815. , 0 AS RF_CPN1_AMT
  1816. , 0 AS RF_TMTB1_AMT
  1817. , 0 AS RF_TMTB2_AMT
  1818. , 0 AS RF_GOODS_CPN_AMT
  1819. , C.RefundCouponDiscount AS RF_CART_CPN_AMT
  1820. , 0 AS RF_DELV_CPN_AMT
  1821. , C.RefundMileage AS RF_PNT_AMT
  1822. , 0 AS RF_PRE_PNT_AMT
  1823. , C.RefundTokenAmt AS RF_GFCD_USE_AMT
  1824. , 0 AS RF_DELV_GFCD_USE_AMT
  1825. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost + refundTokenAmt + refundMileage + RefundCouponDiscount) - refundDeliveryCost) AS RF_CNCL_AMT
  1826. , C.RefundDeliveryCost AS RF_DELIVERY_FEE
  1827. , ((refundcash + refundCardCancel + CustomerChargeDeliveryCost) - refundDeliveryCost) AS RF_REAL_CNCL_AMT
  1828. , CustomerChargeDeliveryCost AS CUST_DELV_COST
  1829. , refundMemo AS RF_MEMO
  1830. , B.REG_NO
  1831. , B.REG_DT
  1832. , 'N' AS ENC_UPD_YN
  1833. FROM tb_order_change B, old_ord_refund C
  1834. WHERE B.ORD_CHG_SQ = C.ExceptionNo
  1835. AND B.CHG_GB = 'G680_30'
  1836. /*AND EXISTS(
  1837. SELECT 1
  1838. FROM tb_order_change_detail X -- , old_ord_orderexceptionitem Y -- TB_ORDER_CHANGE_DETAIL 보면될듯
  1839. WHERE X.ORD_CHG_SQ = B.ORD_CHG_SQ
  1840. AND X.CHG_STAT = 'G685_XX'
  1841. )*/
  1842. AND C.StatusCd != '환불완료'
  1843. AND B.OLD_ORD_NO > 1000
  1844. -- AND C.ExceptionNo = 1548613
  1845. ;
  1846. -- 배치실행 TsbMigrationOrderTask returnQtyOrderDetailJob
  1847. -- 반품배송비 (마지막)
  1848. INSERT INTO tb_delivery_fee ( PAY_SQ, ORD_NO, DELV_FEE_GB, DELV_FEE_CD, DELV_FEE, DELV_CPN_SQ, DELV_CPN_DC_AMT, REAL_DELV_AMT, ORD_CHG_SQ, SUPPLY_COMP_CD, DELV_USAC_YN, DELV_USAC_DT, REG_NO, REG_DT, UPD_NO, UPD_DT)
  1849. SELECT
  1850. (SELECT PAY_SQ FROM tb_payment X WHERE X.ORD_CHG_SQ = A.ORD_CHG_SQ LIMIT 1) AS PAY_SQ
  1851. , A.OLD_ORD_NO
  1852. , 'G018_40' AS DELV_FEE_GB
  1853. , (SELECT DELV_FEE_CD FROM tb_delivery_fee X WHERE X.ORD_NO = A.OLD_ORD_NO LIMIT 1) AS DELV_FEE_CD
  1854. , B.CustomerChargeDeliveryCost AS DELV_FEE
  1855. , NULL AS DELV_CPN_SQ
  1856. , 0 AS DELV_CPN_DC_AMT
  1857. , B.CustomerChargeDeliveryCost AS REAL_DELV_AMT
  1858. , A.ORD_CHG_SQ
  1859. , (SELECT SUPPLY_COMP_CD FROM tb_delivery_fee X WHERE X.ORD_NO = A.OLD_ORD_NO LIMIT 1) AS SUPPLY_COMP_CD
  1860. , 'N' AS DELV_USAC_YN
  1861. , NULL AS DELV_USAC_DT
  1862. , A.REG_NO
  1863. , A.REG_DT
  1864. , A.REG_NO AS UPD_NO
  1865. , A.REG_DT AS UPD_DT
  1866. FROM tb_order_change A, old_ord_refund B
  1867. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1868. AND A.CHG_GB = 'G680_30'
  1869. AND B.StatusCd = '환불완료'
  1870. ;
  1871. /*
  1872. INSERT INTO tb_delivery_fee ( PAY_SQ, ORD_NO, DELV_FEE_GB, DELV_FEE_CD, DELV_FEE, DELV_CPN_SQ, DELV_CPN_DC_AMT, REAL_DELV_AMT, ORD_CHG_SQ, SUPPLY_COMP_CD, DELV_USAC_YN, DELV_USAC_DT, REG_NO, REG_DT, UPD_NO, UPD_DT)
  1873. SELECT
  1874. A.PAY_SQ
  1875. , A.ORD_NO
  1876. , 'G018_40' AS DELV_FEE_GB
  1877. , B.DELV_FEE_CD
  1878. , RF_DELIVERY_FEE * -1 AS DELV_FEE
  1879. , NULL AS DELV_CPN_SQ
  1880. , 0 AS DELV_CPN_DC_AMT
  1881. , RF_DELIVERY_FEE * -1 AS REAL_DELV_AMT
  1882. , A.ORD_CHG_SQ
  1883. , B.SUPPLY_COMP_CD
  1884. , 'N' AS DELV_USAC_YN
  1885. , NULL AS DELV_USAC_DT
  1886. , A.REG_NO
  1887. , A.REG_DT
  1888. , A.REG_NO AS UPD_NO
  1889. , A.REG_DT AS UPD_DT
  1890. FROM tb_refund A, tb_delivery_fee B
  1891. WHERE A.ORD_NO = B.ORD_NO
  1892. AND A.PAY_SQ != B.PAY_SQ
  1893. AND RF_DELIVERY_FEE > 0
  1894. ;
  1895. */
  1896. -- 교환
  1897. -- 주문상세별 교환
  1898. INSERT INTO tb_order_change (ORD_CHG_SQ, CHG_GB, CHG_REASON, CHG_MEMO, WD_GB, CHGER_NM, CHGER_PHNNO, CHGER_TELNO, CHGER_EMAIL, CHGER_ZIPCODE, CHGER_BASE_ADDR, CHGER_DTL_ADDR, CHGER_RTN_MEMO, ADD_PAY_COST, ADD_PAY_AMT, WD_INVOICE_NO, WD_INVOICE_SEND_YN, SHIP_COMP_CD, WD_STDT, WD_EDDT, SWT_TRC_SEND_YN, WD_SHIP_STATE, WD_REASON_CD, WD_STATE_DT, WD_BF_SEND_YN, REG_NO, REG_DT, UPD_NO, UPD_DT, OLD_ORD_NO, OLD_EXEPTION_NO)
  1899. SELECT DISTINCT
  1900. C.ExceptionNo
  1901. , CHG_GB
  1902. , CHG_REASON
  1903. , C.AdminMemo AS CHG_MEMO
  1904. , WD_GB
  1905. , CHGER_NM
  1906. , CHGER_PHNNO
  1907. , CHGER_TELNO
  1908. , CHGER_EMAIL
  1909. , CHGER_ZIPCODE
  1910. , CHGER_BASE_ADDR
  1911. , CHGER_DTL_ADDR
  1912. , CHGER_RTN_MEMO
  1913. , ADD_PAY_COST
  1914. , ADD_PAY_AMT
  1915. , WD_INVOICE_NO
  1916. , WD_INVOICE_SEND_YN
  1917. , SHIP_COMP_CD
  1918. , WD_STDT
  1919. , WD_EDDT
  1920. , SWT_TRC_SEND_YN
  1921. , WD_SHIP_STATE
  1922. , WD_REASON_CD
  1923. , WD_STATE_DT
  1924. , WD_BF_SEND_YN
  1925. , REG_NO
  1926. , C.DateCreated AS REG_DT
  1927. , REG_NO
  1928. , C.DateLastModified AS UPD_DT
  1929. , ORD_NO
  1930. , C.ExceptionNo
  1931. FROM (
  1932. SELECT 'G680_40' AS CHG_GB
  1933. , CASE
  1934. WHEN (SELECT MAX(ExceptionReasonCd)
  1935. FROM old_ord_orderexceptionitem X
  1936. WHERE X.ExceptionNo = B.ExceptionNo
  1937. AND X.ExceptionTypeCd = '교환') = '오배송' THEN 'G689_12'
  1938. WHEN (SELECT MAX(ExceptionReasonCd)
  1939. FROM old_ord_orderexceptionitem X
  1940. WHERE X.ExceptionNo = B.ExceptionNo
  1941. AND X.ExceptionTypeCd = '교환') = '상품불량' THEN 'G689_11'
  1942. ELSE 'G689_90' END AS CHG_REASON
  1943. , NULL AS WD_GB
  1944. , (SELECT RECIP_NM FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_NM
  1945. , (SELECT RECIP_PHNNO FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_PHNNO
  1946. , (SELECT RECIP_TELNO FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_TELNO
  1947. , (SELECT ORD_EMAIL FROM tb_order X WHERE X.ORD_NO = A.ORD_NO) AS CHGER_EMAIL
  1948. , (SELECT RECIP_ZIPCODE FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_ZIPCODE
  1949. , (SELECT RECIP_BASE_ADDR FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_BASE_ADDR
  1950. , (SELECT RECIP_DTL_ADDR FROM tb_delivery_addr X WHERE X.DELV_ADDR_SQ = A.DELV_ADDR_SQ) AS CHGER_DTL_ADDR
  1951. , NULL AS CHGER_RTN_MEMO
  1952. , 0 AS ADD_PAY_COST
  1953. , 0 AS ADD_PAY_AMT
  1954. , NULL AS WD_INVOICE_NO
  1955. , 'N' AS WD_INVOICE_SEND_YN
  1956. , NULL AS SHIP_COMP_CD
  1957. , NULL AS WD_STDT
  1958. , NULL AS WD_EDDT
  1959. , 'N' AS SWT_TRC_SEND_YN
  1960. , NULL AS WD_SHIP_STATE
  1961. , NULL AS WD_REASON_CD
  1962. , NULL AS WD_STATE_DT
  1963. , 'N' AS WD_BF_SEND_YN
  1964. , A.REG_NO
  1965. , A.REG_DT
  1966. , A.UPD_NO
  1967. , A.UPD_DT
  1968. , A.ORD_NO
  1969. , B.ExceptionNo
  1970. FROM tb_order_detail A,
  1971. old_ord_orderexceptionitem B
  1972. WHERE A.ORD_DTL_NO = B.OrderItemNo
  1973. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  1974. AND B.ExceptionTypeCd = '교환'
  1975. AND B.StatusCd IS NOT NULL
  1976. ) AA, old_ord_orderexception C
  1977. WHERE AA.ExceptionNo = C.ExceptionNo
  1978. -- AND C.ExceptionNo = 1548177
  1979. ; --
  1980. -- 환불대기밖에 없음...
  1981. INSERT INTO tb_order_change_detail
  1982. SELECT DISTINCT -- old_ord_orderexceptionitem 데이터중복인게 있네
  1983. ORD_CHG_SQ
  1984. , ORD_DTL_NO
  1985. , B.Qty
  1986. , 'G685_40' AS CHG_STAT
  1987. , NULL AS CHG_ORD_DTL_NO
  1988. , NULL AS WH_MEMO
  1989. , NULL AS COMPLETE_DT
  1990. , 'N' AS DEL_YN
  1991. , A.REG_NO
  1992. , A.REG_DT
  1993. , A.UPD_NO
  1994. , A.UPD_DT
  1995. FROM tb_order_change A, old_ord_orderexceptionitem B, tb_order_detail C
  1996. WHERE A.ORD_CHG_SQ = B.ExceptionNo
  1997. AND A.OLD_ORD_NO = C.ORD_NO
  1998. AND B.OrderItemNo = C.ORD_DTL_NO
  1999. AND A.CHG_GB = 'G680_40'
  2000. AND B.ExceptionTypeCd = '교환'
  2001. -- AND (C.ORD_QTY - C.CNCL_RTN_QTY) = B.Qty
  2002. AND ORD_DTL_STAT NOT IN('G013_00', 'G013_10', 'G013_98', 'G013_99')
  2003. AND B.StatusCd IS NOT NULL
  2004. AND C.ORD_NO > 1000
  2005. ; --
  2006. SELECT * FROM tb_common_code WHERE CD_GB = 'G685';
  2007. SELECT
  2008. ORD_NO
  2009. , 'E' AS ORD_EXCH_GB
  2010. , ORD_DTL_STAT VARCHAR(20) NOT NULL DEFAULT 'G013_00' COMMENT '주문상세상태(공통코드G013)', -- 주문상세상태(공통코드G013)
  2011. ORG_ORD_DTL_NO INT UNSIGNED NULL COMMENT '원주문상세번호(주문상세). 교환 시에만 사용', -- 원주문상세번호
  2012. SUPPLY_COMP_CD VARCHAR(20) NOT NULL COMMENT '공급업체코드', -- 공급업체코드
  2013. GOODS_CD VARCHAR(20) NOT NULL COMMENT '상품코드', -- 상품코드
  2014. DEAL_GOODS_CD VARCHAR(20) NULL COMMENT '딜상품코드', -- 딜상품코드
  2015. FORMAL_GB VARCHAR(20) NULL DEFAULT 'G009_10' COMMENT '정상이월구분(공통코드G009)', -- 정상이월구분(공통코드G009)
  2016. GOODS_TYPE VARCHAR(20) NOT NULL COMMENT '상품타입(공통코드G056)', -- 상품타입(공통코드G056)
  2017. LIST_PRICE INT NOT NULL COMMENT '정상가(최초판매가)', -- 정상가(최초판매가)
  2018. CURR_PRICE INT NOT NULL COMMENT '현재판매가', -- 현재판매가
  2019. DC_RATE FLOAT(5,2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '할인율', -- 할인율
  2020. OPT_ADD_PRICE INT NOT NULL DEFAULT 0 COMMENT '옵션추가가격. 주문상세단품 옵션 추가가격의 합', -- 옵션추가가격
  2021. ORD_QTY SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '주문수량', -- 주문수량
  2022. ORD_AMT INT NOT NULL DEFAULT 0 COMMENT '주문금액(=(현재판매가 + 옵션추가가격) * 주문수량)', -- 주문금액
  2023. CNCL_RTN_QTY SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '취소반품수량', -- 취소반품수량
  2024. CNCL_RTN_AMT INT NOT NULL DEFAULT 0 COMMENT '취소반품금액', -- 취소반품금액
  2025. CPN1_CPN_SQ INT UNSIGNED NULL COMMENT '1차쿠폰(즉시할인쿠폰)일련번호(고객보유쿠폰일련번호)', -- 1차쿠폰(즉시할인쿠폰)일련번호
  2026. CPN1_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '1차쿠폰(즉시할인쿠폰)할인금액', -- 1차쿠폰(즉시할인쿠폰)할인금액
  2027. TMTB1_SQ INT UNSIGNED NULL COMMENT '다다익선1일련번호(수량)', -- 다다익선1일련번호(수량)
  2028. TMTB1_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '다다익선1할인금액(수량)', -- 다다익선1할인금액(수량)
  2029. TMTB2_SQ INT UNSIGNED NULL COMMENT '다다익선2일련번호(금액)', -- 다다익선2일련번호(금액)
  2030. TMTB2_DC_AMT INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '다다익선2할인금액(금액)', -- 다다익선2할인금액(금액)
  2031. GOODS_CPN_SQ INT UNSIGNED NULL COMMENT '상품쿠폰일련번호(고객보유쿠폰일련번호)', -- 상품쿠폰일련번호
  2032. GOODS_CPN_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '상품쿠폰할인금액', -- 상품쿠폰할인금액
  2033. CART_CPN_SQ INT UNSIGNED NULL COMMENT '장바구니쿠폰일련번호(고객보유쿠폰일련번호)', -- 장바구니쿠폰일련번호
  2034. CART_CPN_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '장바구니쿠폰할인금액', -- 장바구니쿠폰할인금액
  2035. BURDEN_RATE FLOAT(5,2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '쿠폰분담율', -- 쿠폰분담율
  2036. PNT_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '포인트할인금액', -- 포인트할인금액
  2037. PRE_PNT_DC_AMT INT NOT NULL DEFAULT 0 COMMENT '선포인트할인금액', -- 선포인트할인금액
  2038. SAVE_PNT_AMT INT NOT NULL DEFAULT 0 COMMENT '적립포인트금액', -- 적립포인트금액
  2039. REAL_ORD_AMT INT NOT NULL COMMENT '실주문금액(주문금액 - 취소반품금액 - 1차쿠폰 - 다다익선1 - 다다익선2 - 상품쿠폰 - 장바구니쿠폰 - 포인트할인금액 - 선포인트할인금액)', -- 실주문금액
  2040. GFCD_USE_AMT INT NOT NULL COMMENT '상품권사용금액', -- 상품권사용금액
  2041. VENDOR_ID VARCHAR(20) NULL COMMENT '외부몰벤더ID(공통코드G003)', -- 외부몰벤더ID(공통코드G003)
  2042. EXTMALL_ID VARCHAR(20) NULL COMMENT '외부몰ID(외부몰)', -- 외부몰ID(외부몰)
  2043. AGENT_ORDER_ID VARCHAR(30) NULL COMMENT '에이전트주문번호. 몰구분이 "G011_20:외부몰"일 때 사용', -- 에이전트주문번호
  2044. EXTMALL_ORDER_ID VARCHAR(50) NULL COMMENT '외부몰주문번호(=쇼핑몰주문번호). 몰구분이 "G011_20:외부몰"일 때 사용', -- 외부몰주문번호
  2045. CHANGEABLE_YN CHAR(1) NOT NULL DEFAULT 'Y' COMMENT '교환가능여부(Y:교환가능)', -- 교환가능여부(Y:교환가능)
  2046. CHANGE_FEE_FREE_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '교환배송비무료여부(Y:교환배송비무료)', -- 교환배송비무료여부(Y:교환배송비무료)
  2047. RETURNABLE_YN CHAR(1) NOT NULL DEFAULT 'Y' COMMENT '반품가능여부(Y:반품가능)', -- 반품가능여부(Y:반품가능)
  2048. RETURN_FEE_FREE_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '반품배송비무료여부(Y:반품배송비무료)', -- 반품배송비무료여부(Y:반품배송비무료)
  2049. SOLDOUT_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '결품여부(Y:결품)', -- 결품여부(Y:결품)
  2050. SOLDOUT_MEMO VARCHAR(500) NULL COMMENT '결품메모', -- 결품메모
  2051. SOLDOUT_REG_NO INT UNSIGNED NULL COMMENT '결품등록자번호', -- 결품등록자번호
  2052. SOLDOUT_REG_DT TIMESTAMP NULL COMMENT '결품등록일시', -- 결품등록일시
  2053. DELV_ADDR_SQ INT UNSIGNED NOT NULL COMMENT '배송지일련번호', -- 배송지일련번호
  2054. DELV_FEE_CD VARCHAR(20) NOT NULL COMMENT '배송비정책코드', -- 배송비정책코드
  2055. SHOT_DELV_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '총알배송여부', -- 총알배송여부
  2056. GIFT_PACK_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '선물포장여부', -- 선물포장여부
  2057. GIFT_ADDR_INP_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '선물주소입력여부', -- 선물주소입력여부
  2058. MAKE_GOODS_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '주문제작상품확인여부: 주문제작상품 주문 시 확인', -- 주문제작상품여부
  2059. ENTRY_NO VARCHAR(20) NULL COMMENT '통관번호', -- 통관번호
  2060. DELV_LOC_CD VARCHAR(20) NULL COMMENT '출고처코드', -- 출고처코드
  2061. DELV_ASSIGN_DT TIMESTAMP NULL COMMENT '출고지정일시', -- 출고지정일시
  2062. DELV_ASSIGN_STAT CHAR(1) NOT NULL DEFAULT 'P' COMMENT '출고지정상태(P:대기,Y:수락,N:거부). 입점은 DEFAULT ''Y''', -- 출고지정상태(P:대기,Y:수락,N:거부)
  2063. DSTRBT_NOTE VARCHAR(1000) NULL COMMENT '물류비고(물류담당자에게 공지)', -- 물류비고(물류담당자에게 공지)
  2064. DELV_STDT TIMESTAMP NULL COMMENT '배송시작일시', -- 배송시작일시
  2065. DELV_EDDT TIMESTAMP NULL COMMENT '배송완료일시', -- 배송완료일시
  2066. SHIP_COMP_CD VARCHAR(20) NULL COMMENT '배송업체코드', -- 배송업체코드
  2067. INVOICE_NO VARCHAR(30) NULL COMMENT '송장번호', -- 송장번호
  2068. INVOICE_SEND_YN CHAR(1) NOT NULL DEFAULT 'N' COMMENT '송장전송여부(Y:전송완료, N:전송미완료, X:전송할필요없음)', -- 송장전송여부
  2069. SELL_STORE_CD VARCHAR(20) NULL COMMENT '판매매장코드', -- 판매매장코드
  2070. SELL_FEE_RATE FLOAT(5,2) UNSIGNED NOT NULL DEFAULT 0 COMMENT '판매수수료율', -- 판매수수료율
  2071. AF_LINK_CD VARCHAR(20) NULL COMMENT '제휴링크코드', -- 제휴링크코드
  2072. ITHR_CD VARCHAR(20) NULL COMMENT '유입경로(공통코드G027)', -- 유입경로(공통코드G027)
  2073. CONTENTS_LOC VARCHAR(20) NULL COMMENT '컨텐츠위치(공통코드G028)', -- 컨텐츠위치(공통코드G028)
  2074. PLAN_DTL_SQ INT UNSIGNED NULL COMMENT '기획전상세번호', -- 기획전상세번호
  2075. SOCIAL_SQ INT UNSIGNED NULL COMMENT '소셜일련번호', -- 소셜일련번호
  2076. NPAY_ORD_DTL_NO INT UNSIGNED NULL COMMENT '네이버페이_상품주문번호', -- 네이버페이 상품주문번호(주문상세번호)
  2077. REG_NO INT UNSIGNED NOT NULL COMMENT '등록자번호', -- 등록자번호
  2078. REG_DT TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', -- 등록일시
  2079. UPD_NO INT UNSIGNED NOT NULL COMMENT '수정자번호', -- 수정자번호
  2080. UPD_DT
  2081. FROM tb_order_detail A, tb_order_change_detail B
  2082. WHERE A.ORD_DTL_NO = B.ORD_DTL_NO
  2083. AND EXISTS(
  2084. SELECT 1
  2085. FROM tb_order_change X
  2086. WHERE X.ORD_CHG_SQ = B.ORD_CHG_SQ
  2087. AND X.CHG_GB = 'G680_40'
  2088. )
  2089. ;
  2090. SELECT * FROM tb_refund WHERE PAY_SQ = 0;
  2091. SELECT * FROM tb_common_code WHERE CD_GB = 'G018';
  2092. CHANGE_DETAIL
  2093. 처리완료 - G685_60 (반품완료)
  2094. 회수지시 - G685_30 (회수요청)
  2095. 환불대기 - G685_33 (반품진행중)
  2096. 회수완료 - G685_33 (반품진행중)
  2097. 환불지시 - G685_33 (반품진행중)
  2098. 접수 - G685_50 (반품접수)
  2099. SELECT * FROM old_ord_orderexception WHERE ExceptionNo = 1549015;
  2100. SELECT * FROM old_ord_orderexceptionitem WHERE ExceptionNo = 1549015;
  2101. SELECT DISTINCT StatusCd FROM old_ord_orderexception WHERE ExceptionTypeCd = '반품';
  2102. SELECT DISTINCT StatusCd FROM old_ord_orderexception WHERE ExceptionTypeCd = '취소';
  2103. SELECT * FROM old_ord_deliveryorder WHERE DeliveryOrderNo = 13150505;
  2104. SELECT * FROM old_ord_refund WHERE ExceptionNo = 1867057;
  2105. SELECT * FROM old_ord_orderexceptionitem WHERE ExceptionTypeCd = '반품' AND StatusCd IS NULL ORDER BY ExceptionItemNo DESC;
  2106. SELECT * FROM old_ord_orderexceptionitem WHERE ExceptionTypeCd = '취소' AND StatusCd = '접수';
  2107. SELECT * FROM old_ord_orderexception WHERE ExceptionTypeCd = '반품' AND StatusCd IS NULL;
  2108. SELECT * FROM old_ord_order WHERE OrderGUID = '36A73125-7C41-47B5-9EDD-787F31459A3E';
  2109. SELECT * FROM old_ord_orderexception WHERE ExceptionNo IN (
  2110. SELECT ExceptionNo FROM old_ord_orderexceptionitem WHERE ExceptionTypeCd = '반품' AND StatusCd IS NULL
  2111. )
  2112. AND StatusCd = '접수'
  2113. ;
  2114. 회수지시
  2115. 접수
  2116. SELECT * FROM old_ord_refund WHERE ExceptionNo = 1920476;
  2117. SELECT * FROM tb_delivery_fee WHERE DELV_FEE < 0;
  2118. SELECT * FROM tb_order_detail WHERE ORD_NO = 19429594;
  2119. SELECT * FROM tb_payment WHERE ORD_NO = 19429594;
  2120. SELECT * FROM tb_order_change;
  2121. SELECT B.*
  2122. FROM tb_order_change A, old_ord_refund B
  2123. WHERE A.OLD_EXEPTION_NO = B.ExceptionNo
  2124. AND CustomerChargeDeliveryCost > 0
  2125. ;
  2126. SELECT * FROM tb_common_code WHERE CD_GB = 'G320';
  2127. SELECT * FROM tb_common_code WHERE CD_GB = 'G680';
  2128. SELECT * FROM tb_common_code WHERE CD_GB = 'G688';
  2129. SELECT * FROM tb_common_code WHERE CD_GB = 'G685';
  2130. SELECT * FROM tb_common_code WHERE CD_GB = 'G018';
  2131. -- 환불계좌 암호화 배치
  2132. SELECT * FROM tb_refund;
  2133. SELECT COUNT(1) FROM tb_refund
  2134. WHERE RA_NO IS NOT NULL
  2135. AND RA_NO != ''
  2136. AND ENC_UPD_YN = 'N'
  2137. ;