update AC_PICK ap
set ap.USABLE_QUANTITY = ap.USABLE_QUANTITY + #{quantity},
ap.RECEIVE_TIME = #{receiveTime},
ap.IS_FREE_MAIL = 1,
ap.PK_POSTAGE = #{pkPostage},
ap.PK_POSTAGE = 0,
ap.pk_modified = #{pkModified},
ap.modified_time = sysdate
where ap.del_flag = 0
and ap.PICK_TYPE = #{pickType}
and ap.PK_BASE_CONFIG = #{pkBaseConfig}
and ap.PK_DATA_ID = #{pkDataId}
and ap.PK_MEMBER = #{pkMember}
and ap.USABLE_QUANTITY + #{quantity} > 0
merge into ac_pick ap
using (
select
#{item.pkId} PK_ID,
#{item.pkMember} PK_MEMBER
from dual
) tmp
on (tmp.PK_ID = ap.PK_ID)
WHEN MATCHED THEN
update
set ap.USABLE_QUANTITY = USABLE_QUANTITY - #{quantity},
ap.USED_QUANTITY = USED_QUANTITY + #{quantity},
ap.pk_modified = tmp.pk_member,
ap.modified_time = sysdate
update AC_PICK ap
set ap.USABLE_QUANTITY = ap.USABLE_QUANTITY - #{quantity},
ap.USED_QUANTITY = ap.USED_QUANTITY + #{quantity},
ap.pk_modified = #{pkModified},
ap.modified_time = sysdate
where ap.del_flag = 0
and ap.pk_id = #{pkId}
and ap.USABLE_QUANTITY - #{quantity} >= 0
update ac_pick ap
set ap.modified_time = sysdate,
ap.pk_modified = #{pkModified},
ap.usable_quantity = ap.usable_quantity - #{quantity},
where ap.del_flag = 0
and ap.pk_member = #{pkMember}
and ap.pick_type = #{pickType}
and ap.pk_base_config = #{pkBaseConfig}
and ap.pk_data_id = #{pkDataId}
and ap.usable_quantity - #{quantity} >= 0
update AC_PICK ap
set ap.USABLE_QUANTITY = ap.USABLE_QUANTITY + #{acPick.usableQuantity},
ap.receive_time = #{acPick.receiveTime},
ap.is_free_mail = #{acPick.isFreeMail},
ap.pk_postage = #{acPick.pkPostage},
ap.pk_postage = null,
ap.BASE_QUANTITY = #{acPick.baseQuantity},
ap.pk_modified = #{acPick.pkModified},
ap.modified_time = sysdate
where ap.del_flag = 0
and ap.PK_ID = #{acPick.pkId}
update AC_PICK ap
set ap.del_flag = 1,
ap.pk_modified = #{acPick.pkModified},
ap.modified_time = sysdate
where ap.del_flag = 0
and ap.PK_ID = #{acPick.pkId}
merge into ac_pick ap
using (
select pk_member,pk_pick,sum(PICK_QUANTITY) PICK_QUANTITY from(
select
#{item.pkMember} PK_MEMBER,
#{item.pkPick} PK_PICK,
#{item.pickQuantity} PICK_QUANTITY
from dual
)
group by pk_member,pk_pick
) tmp
on (tmp.PK_PICK = ap.PK_ID)
WHEN MATCHED THEN
update
set ap.USABLE_QUANTITY = ap.USABLE_QUANTITY + tmp.PICK_QUANTITY,
ap.USED_QUANTITY = ap.USED_QUANTITY -tmp.PICK_QUANTITY,
ap.pk_modified = tmp.pk_member,
ap.modified_time = sysdate
update ac_pick ap
set ap.usable_quantity = ap.usable_quantity -
nvl((select sum(soi.quantity)
from sa_order_items soi
where soi.pk_order = #{pkOrder}
and soi.is_gift = 0
and soi.pk_product = ap.pk_data_id),
0)
where ap.del_flag = 0
and ap.pk_member = #{pkMember}
and ap.pick_type = 8