--[[
|
编码: JX-51-11
|
名称: 出库单-出库后处理
|
作者:HAN
|
日期:2025-1-29
|
|
|
级别:项目
|
|
函数: PostProcess
|
|
功能:
|
【配盘】出库完成后,需要检查一下该配盘下面明细中相关的出库单是否可以完成
|
|
更改记录:
|
|
--]]
|
wms_base = require ("wms_base")
|
|
function PostProcess ( strLuaDEID )
|
local nRet, strRetInfo
|
local dc_obj = {}
|
nRet, dc_obj = m3.GetSysCurEditDataObj( strLuaDEID, "Distribution_CNTR" )
|
if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "获取【配盘】对象属性失败!"..operation_obj ) end
|
if ( dc_obj.dc_no == '' or dc_obj.dc_no == nil ) then return end
|
|
-- 只有对状态=5(回库)=6(完成)状态的配盘容器进行后处理
|
local strCondition, strSetAttr
|
|
if ( dc_obj.b_state == 5 or dc_obj.b_state == 6 ) then
|
if ( dc_obj.bs_type == "Outbound_Wave" ) then
|
|
strCondition = "F_QTY > (F_ACC_O_QTY + F_ACC_C_QTY) AND S_WAVE_NO = '"..dc_obj.bs_no.."'"
|
|
nRet, strRetInfo = mobox.getDataObjCount( strLuaDEID, "OW_Detail", strCondition )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "getDataObjCount失败!"..strRetInfo ) end
|
local nCount = lua.StrToNumber( strRetInfo )
|
|
if ( nCount == 0 ) then
|
-- 出库波次可以完工
|
-- N_B_STATE = 4 出库完成
|
strSetAttr = "N_B_STATE = 4"
|
strCondition = "S_WAVE_NO = '"..dc_obj.bs_no.."'"
|
nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Outbound_Wave", strCondition, strSetAttr )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "更新【出库波次】状态息失败!"..strRetInfo ) end
|
-- 设置 N_B_STATE = 4 出库单完成
|
nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Outbound_Order", strCondition, strSetAttr )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "更新【出库单】状态息失败!"..strRetInfo ) end
|
|
nRet, strRetInfo = wms_base.OutboundWave_Finish_PostProce( strLuaDEID, dc_obj.bs_no )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "WMS_OutboundWave_Finish_PostProce失败!"..strRetInfo ) end
|
|
-- 触发出库波次里的【出库单】报完工 WFP
|
strCondition = "S_NO IN ( Select S_OO_NO From TN_OW_Compose with (NOLOCK) Where S_WAVE_NO = '"..dc_obj.bs_no.."')"
|
-- 找出出库波次组成的出库单
|
local data_objs
|
nRet, data_objs = m3.QueryDataObject(strLuaDEID, "Outbound_Order", strCondition, "S_NO" )
|
if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1),"QueryDataObject失败!"..data_objs ) end
|
if ( data_objs == '' ) then return end
|
|
local n
|
local obj_attrs
|
local add_wfp = {}
|
for n = 1, #data_objs do
|
obj_attrs = m3.KeyValueAttrsToObjAttr(data_objs[n].attrs)
|
-- 增加一个后台进程进行入库单完工回报
|
add_wfp = {
|
wfp_type = 1, -- 触发数据对象事件(指定数据对象标识)
|
cls = "出库单",
|
obj_id = data_objs[n].id,
|
obj_name = "出库单号'"..obj_attrs.S_NO.."'-->完工回报",
|
trigger_event = "完工回报"
|
}
|
nRet, strRetInfo = m3.AddSysWFP( strLuaDEID, add_wfp )
|
if ( nRet ~= 0 ) then
|
lua.Error( strLuaDEID, debug.getinfo(1), "AddSysWFP失败!"..strRetInfo )
|
end
|
end
|
end
|
end
|
end
|
end
|