633 lines
20 KiB
XML
633 lines
20 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.wb.domainserver.mapper.gcone.AciDlivyMapper">
|
|
|
|
<!-- 출고 대상 주문 목록 조회 (ORDR_STTUS_CD = '35' 상품준비중) -->
|
|
<select id="selectAciDlivyTargetList" resultType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
<![CDATA[
|
|
SELECT
|
|
ORDR_DLVY_INNB,
|
|
ORDR_INNB,
|
|
SOPMAL_CD
|
|
FROM GC_ORDER_SHIPPING
|
|
WHERE ORDR_STTUS_CD = '35'
|
|
AND USE_AT = 'Y'
|
|
ORDER BY ORDR_DLVY_INNB
|
|
]]>
|
|
</select>
|
|
|
|
|
|
<!-- 출고 대상 주문상품 옵션 조회 -->
|
|
<!-- QY: 반품(85)을 제외한 미출고 수량, 출고 아이템/로그/상태 처리 기준 -->
|
|
<select id="selectAciDlivyTargetItemList"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO"
|
|
resultType="dataMap">
|
|
<![CDATA[
|
|
SELECT
|
|
OIOP.ORDR_GOODS_OPTN_INNB,
|
|
OIOP.SOPMAL_CD,
|
|
OIOP.OPTN_TY,
|
|
((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS QY
|
|
FROM GC_ORDER_ITEM_OPTION OIOP
|
|
INNER JOIN GC_ORDER_SHIPPING SH
|
|
ON OIOP.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
|
|
WHERE SH.SOPMAL_CD = #{sopmalCd}
|
|
AND SH.ORDR_INNB = #{ordrInnb}
|
|
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
|
]]>
|
|
</select>
|
|
|
|
|
|
<!-- gc_goods_export 존재 여부 -->
|
|
<select id="selectGoodsExportCount"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO"
|
|
resultType="int">
|
|
<![CDATA[
|
|
SELECT COUNT(1)
|
|
FROM GC_GOODS_EXPORT
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND ORDR_INNB = #{ordrInnb}
|
|
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
|
AND HDRYCPN_CD = #{hdrycpnCd}
|
|
]]>
|
|
</select>
|
|
|
|
|
|
<!-- gc_goods_export INSERT -->
|
|
<!-- DLIVY_INNB: gc_order_shipping.ORDR_DLVY_INNB 값 사용 (Java에서 dlivyInnb = ordrDlvyInnb 세팅 후 전달) -->
|
|
<!-- DLIVY_CD_NB: Java에서 생성한 dlivyCdNb 직접 포함 (INSERT 전 생성) -->
|
|
<!-- HDRYCPN_CD: code22 고정, INVCNB: ACI BLNO -->
|
|
<insert id="insertGoodsExport"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
|
|
<![CDATA[
|
|
INSERT INTO GC_GOODS_EXPORT (
|
|
DLIVY_INNB,
|
|
SOPMAL_CD,
|
|
ORDR_INNB,
|
|
ORDR_DLVY_INNB,
|
|
DLIVY_CD_NB,
|
|
DLIVY_STTUS_CD,
|
|
STTUS_UPDT_DT,
|
|
HDRYCPN_CD,
|
|
INVCNB,
|
|
DLIVY_DT,
|
|
DLIVY_COMPT_DT,
|
|
MNGR_INNB,
|
|
REGIST_DT,
|
|
UPDT_DT
|
|
) VALUES (
|
|
#{dlivyInnb},
|
|
#{sopmalCd},
|
|
#{ordrInnb},
|
|
#{ordrDlvyInnb},
|
|
#{dlivyCdNb},
|
|
#{dlivySttusCd},
|
|
SYSDATE(),
|
|
#{hdrycpnCd},
|
|
#{blno},
|
|
SYSDATE(),
|
|
SYSDATE(),
|
|
0,
|
|
SYSDATE(),
|
|
SYSDATE()
|
|
)
|
|
]]>
|
|
</insert>
|
|
|
|
|
|
<!-- gc_goods_export DLIVY_CD_NB UPDATE -->
|
|
<!-- INSERT 경로에서 dlivyCdNb 생성 후 호출하여 DLIVY_CD_NB 설정 -->
|
|
<update id="updateGoodsExportDlivyCdNb"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
<![CDATA[
|
|
UPDATE GC_GOODS_EXPORT SET
|
|
DLIVY_CD_NB = #{dlivyCdNb},
|
|
UPDT_DT = SYSDATE()
|
|
WHERE DLIVY_INNB = #{dlivyInnb}
|
|
]]>
|
|
</update>
|
|
|
|
|
|
<!-- gc_goods_export UPDATE (기존 레코드 있음) -->
|
|
<!-- gc_goods_export UPDATE (기존 레코드 있음, dlivyInnb = ordrDlvyInnb Java 세팅) -->
|
|
<update id="updateGoodsExport"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
|
|
<![CDATA[
|
|
UPDATE GC_GOODS_EXPORT SET
|
|
INVCNB = #{blno},
|
|
DLIVY_DT = SYSDATE(),
|
|
DLIVY_COMPT_DT = SYSDATE(),
|
|
UPDT_DT = SYSDATE()
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND ORDR_INNB = #{ordrInnb}
|
|
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
|
AND HDRYCPN_CD = #{hdrycpnCd}
|
|
]]>
|
|
</update>
|
|
|
|
|
|
<!-- gc_goods_export_item 존재 여부 -->
|
|
<select id="selectGoodsExportItemCount"
|
|
parameterType="dataMap"
|
|
resultType="int">
|
|
<![CDATA[
|
|
SELECT COUNT(1)
|
|
FROM GC_GOODS_EXPORT_ITEM
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND DLIVY_INNB = #{dlivyInnb}
|
|
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
|
AND OPTN_TY = #{optnTy}
|
|
]]>
|
|
</select>
|
|
|
|
|
|
<!-- gc_goods_export_item INSERT -->
|
|
<insert id="insertGoodsExportItem" parameterType="dataMap">
|
|
|
|
<selectKey order="BEFORE" keyProperty="dlivyGoodsInnb" resultType="java.lang.String">
|
|
SELECT IFNULL(MAX(DLIVY_GOODS_INNB), 0) + 1 FROM GC_GOODS_EXPORT_ITEM
|
|
</selectKey>
|
|
|
|
<![CDATA[
|
|
INSERT INTO GC_GOODS_EXPORT_ITEM (
|
|
DLIVY_GOODS_INNB,
|
|
DLIVY_INNB,
|
|
ORDR_GOODS_OPTN_INNB,
|
|
OPTN_TY,
|
|
SOPMAL_CD,
|
|
QY,
|
|
PYMNT_PREARNGE_QY,
|
|
ACCMLMNY_PYMNT_QY,
|
|
PYMNT_PREARNGE_EXTSH_QY,
|
|
NPAY_TRNSMIS_AT
|
|
) VALUES (
|
|
#{dlivyGoodsInnb},
|
|
#{dlivyInnb},
|
|
#{ordrGoodsOptnInnb},
|
|
#{optnTy},
|
|
#{sopmalCd},
|
|
#{qy},
|
|
#{qy},
|
|
0,
|
|
0,
|
|
NULL
|
|
)
|
|
]]>
|
|
</insert>
|
|
|
|
|
|
<!-- gc_goods_export_item UPDATE (기존 레코드 있음) -->
|
|
<update id="updateGoodsExportItem" parameterType="dataMap">
|
|
<![CDATA[
|
|
UPDATE GC_GOODS_EXPORT_ITEM SET
|
|
QY = (QY + #{qy}),
|
|
PYMNT_PREARNGE_QY = (QY + #{qy})
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND DLIVY_INNB = #{dlivyInnb}
|
|
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
|
]]>
|
|
</update>
|
|
|
|
|
|
<!-- gc_order_item_option 상태 UPDATE -->
|
|
<!-- ORDR_STTUS_CD: 부분출고(50) 또는 출고완료(55), STEP55 = 출고수량, STEP45 = 0 -->
|
|
<update id="updateOrderItemOptionStatus" parameterType="dataMap">
|
|
<![CDATA[
|
|
UPDATE GC_ORDER_ITEM_OPTION SET
|
|
ORDR_STTUS_CD = CASE
|
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '50'
|
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '55'
|
|
ELSE ORDR_STTUS_CD
|
|
END,
|
|
STEP55 = #{qy},
|
|
STEP45 = 0,
|
|
UPDT_DT = SYSDATE()
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND OPTN_TY = #{optnTy}
|
|
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
|
]]>
|
|
</update>
|
|
|
|
|
|
<!-- gc_order_shipping 상태 UPDATE -->
|
|
<!-- 하위의 모든 item_option 상태/수량 기준으로 동적 결정 (기존 updateBOOrdrDlvyStatusUpdt6575 참고) -->
|
|
<update id="updateOrderShippingStatus"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
<![CDATA[
|
|
UPDATE GC_ORDER_SHIPPING SH,
|
|
(
|
|
SELECT
|
|
CASE WHEN MAX(OIOP.ORDR_STTUS_CD) = MIN(OIOP.ORDR_STTUS_CD)
|
|
THEN MAX(OIOP.ORDR_STTUS_CD)
|
|
ELSE CAST(MAX(OIOP.ORDR_STTUS_CD) - 5 AS CHAR(2))
|
|
END AS ORDR_STTUS_CD,
|
|
SH.SOPMAL_CD,
|
|
SH.ORDR_INNB,
|
|
SH.ORDR_DLVY_INNB
|
|
FROM GC_ORDER_SHIPPING SH
|
|
INNER JOIN GC_ORDER_ITEM_OPTION OIOP
|
|
ON SH.SOPMAL_CD = OIOP.SOPMAL_CD
|
|
AND SH.ORDR_DLVY_INNB = OIOP.ORDR_DLVY_INNB
|
|
AND OIOP.ORDR_QY <> OIOP.STEP85
|
|
WHERE SH.SOPMAL_CD = #{sopmalCd}
|
|
AND SH.ORDR_INNB = #{ordrInnb}
|
|
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
|
AND SH.USE_AT = 'Y'
|
|
GROUP BY SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
|
|
) STEP
|
|
SET
|
|
SH.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD,
|
|
SH.UPDT_DT = SYSDATE()
|
|
WHERE SH.SOPMAL_CD = STEP.SOPMAL_CD
|
|
AND SH.ORDR_INNB = STEP.ORDR_INNB
|
|
AND SH.ORDR_DLVY_INNB = STEP.ORDR_DLVY_INNB
|
|
]]>
|
|
</update>
|
|
|
|
|
|
<!-- gc_order 상태 UPDATE -->
|
|
<!-- 하위의 모든 shipping 상태 기준으로 동적 결정 (기존 updateBOOrdrStatusUpdt6575 참고) -->
|
|
<update id="updateOrderStatus"
|
|
parameterType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
<![CDATA[
|
|
UPDATE GC_ORDER O,
|
|
(
|
|
SELECT
|
|
CASE WHEN MAX(SH.ORDR_STTUS_CD) = MIN(SH.ORDR_STTUS_CD)
|
|
THEN MAX(SH.ORDR_STTUS_CD)
|
|
ELSE CAST(MAX(SH.ORDR_STTUS_CD) - 5 AS CHAR(2))
|
|
END AS ORDR_STTUS_CD,
|
|
O.SOPMAL_CD,
|
|
O.ORDR_INNB
|
|
FROM GC_ORDER O
|
|
INNER JOIN GC_ORDER_SHIPPING SH
|
|
ON O.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
|
AND SH.ORDR_STTUS_CD <> '85'
|
|
WHERE O.SOPMAL_CD = #{sopmalCd}
|
|
AND O.ORDR_INNB = #{ordrInnb}
|
|
GROUP BY O.SOPMAL_CD, O.ORDR_INNB
|
|
) STEP
|
|
SET
|
|
O.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD,
|
|
O.UPDT_DT = SYSDATE()
|
|
WHERE O.SOPMAL_CD = STEP.SOPMAL_CD
|
|
AND O.ORDR_INNB = STEP.ORDR_INNB
|
|
AND O.USE_AT = 'Y'
|
|
]]>
|
|
</update>
|
|
|
|
|
|
<!-- GC_GOODS_EXPORT_LOG INSERT -->
|
|
<insert id="insertGoodsExportLog" parameterType="dataMap">
|
|
|
|
<selectKey order="BEFORE" keyProperty="dlivyLogInnb" resultType="java.lang.String">
|
|
SELECT IFNULL(MAX(DLIVY_LOG_INNB), 0) + 1 FROM GC_GOODS_EXPORT_LOG
|
|
</selectKey>
|
|
|
|
<![CDATA[
|
|
INSERT INTO GC_GOODS_EXPORT_LOG (
|
|
DLIVY_LOG_INNB,
|
|
ORDR_INNB,
|
|
ORDR_DLVY_INNB,
|
|
MNGR_INNB,
|
|
DLIVY_CD_NB,
|
|
DLIVY_GOODS_CD_NB,
|
|
INVNTRY_SETUP_CD,
|
|
REQST_PROCS_STTUS_CD,
|
|
MSSAGE_CN,
|
|
REGIST_DT
|
|
) SELECT
|
|
#{dlivyLogInnb},
|
|
#{ordrInnb},
|
|
#{ordrDlvyInnb},
|
|
#{regusr},
|
|
DLIVY_CD_NB,
|
|
#{dlivyGoodsCdNb},
|
|
#{invntrySetupCd},
|
|
#{reqstProcsSttusCd},
|
|
#{mssageCn},
|
|
SYSDATE()
|
|
FROM GC_GOODS_EXPORT
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND DLIVY_INNB = #{dlivyInnb}
|
|
]]>
|
|
</insert>
|
|
|
|
|
|
<!-- GC_ORDER_LOG INSERT -->
|
|
<insert id="insertOrderLog" parameterType="dataMap">
|
|
<![CDATA[
|
|
INSERT INTO GC_ORDER_LOG (
|
|
ORDR_INNB,
|
|
SOPMAL_CD,
|
|
LOG_SJ,
|
|
LOG_DTL_CN,
|
|
ADIT_INFO_CN,
|
|
DLIVY_INNB,
|
|
ORDER_REFUND_INNB,
|
|
LOG_DV_CD,
|
|
DV_CD,
|
|
OPETR_NM,
|
|
QY,
|
|
AMT,
|
|
PROCS_DT
|
|
) VALUES (
|
|
#{ordrInnb},
|
|
#{sopmalCd},
|
|
#{logSj},
|
|
#{logDtlCn},
|
|
#{aditInfoCn},
|
|
#{dlivyInnb},
|
|
#{refundCdNb},
|
|
#{logDvCd},
|
|
#{dvCd},
|
|
#{opetrNm},
|
|
#{qy},
|
|
#{amt},
|
|
SYSDATE()
|
|
)
|
|
]]>
|
|
</insert>
|
|
|
|
<!-- 배송처리 대상 주문 목록 조회 (DLIVY_STTUS_CD = '55' 출고완료) -->
|
|
<select id="selectGoodsExportList" parameterType="java.lang.String"
|
|
resultType="com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO">
|
|
<![CDATA[
|
|
SELECT
|
|
DLIVY_INNB,
|
|
ORDR_INNB,
|
|
ORDR_DLVY_INNB,
|
|
SOPMAL_CD,
|
|
INVCNB
|
|
FROM GC_GOODS_EXPORT
|
|
WHERE DLIVY_STTUS_CD = #{param}
|
|
ORDER BY DLIVY_INNB ASC
|
|
]]>
|
|
</select>
|
|
|
|
<!-- 출고 상태 일괄 변경 다건 -->
|
|
<update id="updateBODlivySttusGetbackUpdtArr" parameterType="dataMap">
|
|
<![CDATA[
|
|
UPDATE GC_GOODS_EXPORT SET
|
|
DLIVY_STTUS_CD = #{dlivySttusCd},
|
|
]]>
|
|
<if test="dlivySttusCd == '75'">
|
|
<![CDATA[
|
|
DLVY_COMPT_DT = SYSDATE(),
|
|
]]>
|
|
</if>
|
|
<![CDATA[
|
|
STTUS_UPDT_DT = SYSDATE(),
|
|
MNGR_INNB = #{mngrInnb},
|
|
UPDT_DT = SYSDATE() -- TODO : 상태 변경일시, 구매확정일시를 수정하는데 수정일시도 수정?
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND DLIVY_INNB = #{dlivyInnb}
|
|
]]>
|
|
</update>
|
|
|
|
<!-- 출고완료상태의 출고상품 목록 조회 -->
|
|
<select id="selectBOExportOrderItemInqire">
|
|
<![CDATA[
|
|
SELECT
|
|
EXI.ORDR_GOODS_OPTN_INNB
|
|
,EXI.OPTN_TY
|
|
,EXI.SOPMAL_CD
|
|
,(OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS QY
|
|
,0 AS PYMNT_PREARNGE_QY -- 지급예정수량
|
|
,IFNULL((EXI.PYMNT_PREARNGE_QY - OIOP.STEP85), 0) AS ACCMLMNY_PYMNT_QY -- 적립금지급수량
|
|
,IFNULL(OIOP.STEP85, 0) AS PYMNT_PREARNGE_EXTSH_QY -- 지급예정소멸수량
|
|
,EX.ORDR_INNB
|
|
,O.MBR_DV_CD
|
|
,O.MBR_INNB
|
|
,OIOP.ORDR_DLVY_INNB
|
|
,IFNULL(EX.DLIVY_CD_NB, '') AS DLIVY_CD_NB
|
|
,EX.DLIVY_INNB
|
|
,IFNULL(OIOP.MLG_VALID_PD, 0) AS MLG_VALID_PD
|
|
,IFNULL(OIOP.MLG_VALID_PD_AT, 'N') AS MLG_VALID_PD_AT
|
|
,CASE
|
|
WHEN OIOP.STEP85 = 0 THEN ROUND(OIOP.MLG_ACCML_UNIT * ( OIOP.ORDR_QY - OIOP.STEP85 ) + OIOP.MLG_ACCML_REST)
|
|
WHEN OIOP.STEP85 > 0 THEN ROUND(OIOP.MLG_ACCML_UNIT * ( OIOP.ORDR_QY - OIOP.STEP85 ))
|
|
END AS MLG_ACCML_AMT
|
|
FROM GC_GOODS_EXPORT_ITEM EXI
|
|
INNER JOIN GC_GOODS_EXPORT EX ON EXI.SOPMAL_CD = EX.SOPMAL_CD
|
|
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
|
|
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
|
|
AND EXI.OPTN_TY = OIOP.OPTN_TY
|
|
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
|
|
AND OIOP.PURCHS_DCSN_QY < ( OIOP.ORDR_QY - OIOP.STEP85 )
|
|
INNER JOIN GC_ORDER O ON EX.SOPMAL_CD = O.SOPMAL_CD
|
|
AND EX.ORDR_INNB = O.ORDR_INNB
|
|
WHERE 1 = 1
|
|
AND EX.SOPMAL_CD = #{sopmalCd}
|
|
]]>
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dlivyInnb)">
|
|
<![CDATA[
|
|
AND EX.DLIVY_INNB = #{dlivyInnb}
|
|
]]>
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrGoodsOptnInnb)">
|
|
<![CDATA[
|
|
AND EXI.OPTN_TY = #{optnTy}
|
|
AND EXI.ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
|
]]>
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)">
|
|
<![CDATA[
|
|
AND EX.ORDR_INNB = #{ordrInnb}
|
|
]]>
|
|
</when>
|
|
</choose>
|
|
</select>
|
|
|
|
<!-- 출고 처리 후 주문 상품 옵션 상태 변경 -->
|
|
<update id="updateBOOrdrItemStatusUpdt6575">
|
|
<![CDATA[
|
|
UPDATE GC_ORDER_ITEM_OPTION SET
|
|
]]>
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(dlivySttusCd, '65')">
|
|
<![CDATA[
|
|
ORDR_STTUS_CD =
|
|
CASE
|
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '60'
|
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '65'
|
|
ELSE ORDR_STTUS_CD
|
|
END
|
|
,STEP65 = #{qy}
|
|
,STEP55 = CASE
|
|
WHEN (STEP55 - #{qy}) < 0 THEN 0
|
|
ELSE (STEP55 - #{qy})
|
|
END,
|
|
]]>
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(dlivySttusCd, '75')">
|
|
<![CDATA[
|
|
ORDR_STTUS_CD =
|
|
CASE
|
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '70'
|
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '75'
|
|
ELSE ORDR_STTUS_CD
|
|
END
|
|
,STEP55 = CASE
|
|
WHEN (STEP55 - #{qy}) < 0 THEN 0
|
|
ELSE (STEP55 - #{qy})
|
|
END
|
|
,STEP65 = CASE
|
|
WHEN (STEP65 - #{qy}) < 0 THEN 0
|
|
ELSE (STEP65 - #{qy})
|
|
END
|
|
,STEP75 = #{qy},
|
|
]]>
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(dlivySttusCd, '55')">
|
|
<![CDATA[
|
|
ORDR_STTUS_CD =
|
|
CASE
|
|
WHEN (ORDR_QY - STEP85) > #{qy} THEN '50'
|
|
WHEN (ORDR_QY - STEP85) = #{qy} THEN '55'
|
|
ELSE ORDR_STTUS_CD
|
|
END
|
|
,STEP55 = #{qy},
|
|
]]>
|
|
</when>
|
|
</choose>
|
|
<![CDATA[
|
|
STEP45 = 0
|
|
,UPDT_DT = SYSDATE()
|
|
WHERE SOPMAL_CD = #{sopmalCd}
|
|
AND OPTN_TY = #{optnTy}
|
|
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
|
|
]]>
|
|
</update>
|
|
|
|
<!-- 출고 처리 후 주문 배송 상태 변경
|
|
SH.ORDR_STTUS_CD =
|
|
CASE
|
|
WHEN EXISTS (
|
|
SELECT
|
|
1
|
|
FROM GC_ORDER_ITEM_OPTION OIOP
|
|
WHERE OIOP.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
|
|
AND OIOP.ORDR_STTUS_CD = '60'
|
|
) THEN '60'
|
|
WHEN EXISTS (
|
|
SELECT
|
|
1
|
|
FROM GC_ORDER_ITEM_OPTION OIOP
|
|
WHERE OIOP.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
|
|
AND OIOP.ORDR_STTUS_CD = '65'
|
|
) THEN '65'
|
|
ELSE ORDR_STTUS_CD
|
|
END
|
|
|
|
-->
|
|
<update id="updateBOOrdrDlvyStatusUpdt6575">
|
|
<![CDATA[
|
|
UPDATE
|
|
GC_ORDER_SHIPPING SH,
|
|
(
|
|
SELECT CASE WHEN MAX(OIOP.ORDR_STTUS_CD) = MIN(OIOP.ORDR_STTUS_CD) THEN MAX(OIOP.ORDR_STTUS_CD)
|
|
ELSE CAST(MAX(OIOP.ORDR_STTUS_CD) - 5 AS CHAR(2))
|
|
END ORDR_STTUS_CD
|
|
, SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
|
|
FROM GC_ORDER_SHIPPING SH
|
|
INNER JOIN GC_ORDER_ITEM_OPTION OIOP
|
|
ON SH.SOPMAL_CD = OIOP.SOPMAL_CD
|
|
AND SH.ORDR_DLVY_INNB = OIOP.ORDR_DLVY_INNB
|
|
AND OIOP.ORDR_QY <> OIOP.STEP85
|
|
WHERE SH.SOPMAL_CD = #{sopmalCd}
|
|
AND SH.ORDR_INNB = #{ordrInnb}
|
|
]]>
|
|
<choose>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnb)">
|
|
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
|
|
</when>
|
|
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnbArr)">
|
|
<![CDATA[
|
|
AND SH.ORDR_DLVY_INNB IN
|
|
]]>
|
|
<foreach collection="ordrDlvyInnbArr" item="ordrDlvyInnbArr" open="(" close=")" separator=",">
|
|
#{ordrDlvyInnbArr}
|
|
</foreach>
|
|
</when>
|
|
</choose>
|
|
<![CDATA[
|
|
AND SH.USE_AT = 'Y'
|
|
GROUP BY SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
|
|
]]>
|
|
<![CDATA[
|
|
) STEP
|
|
SET
|
|
SH.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD
|
|
,SH.MNGR_INNB = #{updusr}
|
|
,SH.UPDT_DT = SYSDATE()
|
|
WHERE 1 = 1
|
|
AND SH.SOPMAL_CD = STEP.SOPMAL_CD
|
|
AND SH.ORDR_INNB = STEP.ORDR_INNB
|
|
AND SH.ORDR_DLVY_INNB = STEP.ORDR_DLVY_INNB
|
|
]]>
|
|
</update>
|
|
|
|
<!-- 출고 처리 후 주문 상태 변경
|
|
UPDATE GC_ORDER O SET
|
|
O.ORDR_STTUS_CD =
|
|
CASE
|
|
WHEN EXISTS (
|
|
SELECT
|
|
1
|
|
FROM GC_ORDER_SHIPPING SH
|
|
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
|
AND SH.ORDR_STTUS_CD = '60'
|
|
) THEN '60'
|
|
WHEN EXISTS (
|
|
SELECT
|
|
1
|
|
FROM GC_ORDER_SHIPPING SH
|
|
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
|
AND SH.ORDR_STTUS_CD = '65'
|
|
) THEN '65'
|
|
ELSE ORDR_STTUS_CD
|
|
END
|
|
WHERE O.SOPMAL_CD = #{sopmalCd}
|
|
AND O.ORDR_INNB = #{ordrInnb}
|
|
AND O.USE_AT = 'Y'
|
|
-->
|
|
<update id="updateBOOrdrStatusUpdt6575">
|
|
<![CDATA[
|
|
UPDATE
|
|
GC_ORDER O,
|
|
(SELECT CASE WHEN MAX(SH.ORDR_STTUS_CD) = MIN(SH.ORDR_STTUS_CD) THEN MAX(SH.ORDR_STTUS_CD)
|
|
ELSE CAST(MAX(SH.ORDR_STTUS_CD) - 5 AS CHAR(2))
|
|
END ORDR_STTUS_CD
|
|
, O.SOPMAL_CD, O.ORDR_INNB
|
|
FROM GC_ORDER O
|
|
INNER JOIN GC_ORDER_SHIPPING SH
|
|
ON O.SOPMAL_CD = SH.SOPMAL_CD
|
|
AND O.ORDR_INNB = SH.ORDR_INNB
|
|
AND SH.ORDR_STTUS_CD <> '85'
|
|
WHERE O.SOPMAL_CD = #{sopmalCd}
|
|
AND O.ORDR_INNB = #{ordrInnb}
|
|
GROUP BY O.SOPMAL_CD, O.ORDR_INNB
|
|
) STEP
|
|
SET
|
|
O.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD
|
|
,O.MNGR_INNB = #{updusr}
|
|
,O.UPDT_DT = SYSDATE()
|
|
WHERE 1 = 1
|
|
AND O.SOPMAL_CD = STEP.SOPMAL_CD
|
|
AND O.ORDR_INNB = STEP.ORDR_INNB
|
|
AND O.USE_AT = 'Y'
|
|
]]>
|
|
</update>
|
|
|
|
</mapper>
|