--[[
|
编码: WMS-20-03
|
名称: 入库单-删除后
|
作者:HAN
|
日期:2025-1-29
|
|
级别:固定 (说明本段代码在项目中不太会变化)
|
|
函数: AfterDataObjDelete
|
|
功能:
|
- 删除【入库单明细】
|
- 清除最大行号记录
|
更改记录:
|
|
--]]
|
wms_pac = require( "wms_pac_cbg" )
|
|
function AfterDataObjDelete ( strLuaDEID )
|
local nRet, strRetInfo
|
|
-- 获取 S_NO
|
nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_NO", "N_B_STATE" )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..strRetInfo ) end
|
|
local obj_attrs = json.decode( strRetInfo )
|
local io_no = obj_attrs[1].value -- 入库单编号
|
local b_state = lua.StrToNumber( obj_attrs[2].value )
|
|
if ( io_no ~= "" ) then
|
local strCondition = "S_IO_NO = '"..io_no.."'"
|
nRet, strRetInfo = mobox.deleteDataObject( strLuaDEID, "Inbound_Detail", strCondition )
|
if ( nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "删除作业相关的【入库单明细】失败! "..strRetInfo ) end
|
-- 清除最大行号记录
|
nRet, strRetInfo = mobox.removeSerialNumber( "行号", io_no )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "removeSerialNumber() 失败! "..strRetInfo ) end
|
|
-- 如果业务状态不等于完成 要把容器解锁
|
if ( b_state ~= INBOUND_STATE.Finish ) then
|
nRet, strRetInfo = wms_pac.Release_Pre_Alloc_Cntr( strLuaDEID, "Inbound_Order", io_no )
|
if ( nRet ~= 0 ) then
|
lua.Stop( strLuaDEID, strRetInfo )
|
return
|
end
|
end
|
-- 删除[预分配容器/Pre_Alloc_Container]
|
local strCondition = "S_BS_TYPE = 'Inbound_Order' AND S_BS_NO = '"..io_no.."'"
|
nRet, strRetInfo = mobox.dbdeleteData(strLuaDEID, "Pre_Alloc_Container", strCondition)
|
if (nRet ~= 0) then
|
lua.Stop( strLuaDEID, "删除【Pre_Alloc_Container】失败!"..strRetInfo)
|
return
|
end
|
|
-- 删除[预分配容器明细/Pre_Alloc_CNTR_Detail]
|
nRet, strRetInfo = mobox.dbdeleteData(strLuaDEID, "Pre_Alloc_CNTR_Detail", strCondition)
|
if (nRet ~= 0) then
|
lua.Stop( strLuaDEID, "删除【Pre_Alloc_CNTR_Detail】失败!"..strRetInfo)
|
return
|
end
|
end
|
end
|