--[[
|
编码: WMS-01-09
|
名称: 容器-解绑
|
作者:HAN
|
日期:2025-1-29
|
|
级别:固定 (说明本段代码在项目中不太会变化)
|
|
函数: Unbinding
|
|
功能:
|
删除容器中所有货品和容器的绑定关系,这个不是一条货品的解绑是全部解绑
|
|
更改记录:
|
|
--]]
|
|
json = require ("json")
|
mobox = require ("OILua_JavelinExt")
|
wms = require("OILua_WMS")
|
m3 = require("oi_base_mobox")
|
|
function Unbinding ( strLuaDEID )
|
local nRet, strRetInfo
|
local row_data
|
-- step1 获取当前容器编号
|
nRet, row_data = m3.GetSysInputParameter( strLuaDEID )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取容器对象属性失败! "..row_data ) end
|
-- 把 [{"attr":"a1","value":"xxx"},..] 的json对象转成 {"a1":"xxx","b1":"xxx"}
|
|
local obj_attrs = m3.KeyValueAttrsToObjAttr( row_data.attrs )
|
local cntr_code = lua.Get_StrAttrValue( obj_attrs.S_CODE ) -- 容器编码
|
if ( cntr_code == '' or cntr_code == nil ) then lua.Error( strLuaDEID, debug.getinfo(1), "容器编码不能为空! " ) end
|
|
-- step2 获取容器货品明细记录
|
local strCondition = "S_CNTR_CODE = '"..cntr_code.."'"
|
local strOrder = ""
|
|
nRet, strRetInfo = mobox.queryDataObjAttr( strLuaDEID, "CG_Detail", strCondition, strOrder, "S_ITEM_CODE" )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取【容器货品明细】失败! "..strRetInfo ) end
|
if ( strRetInfo == '' ) then return end
|
local retObjs = json.decode( strRetInfo )
|
local nCount = #retObjs
|
local n
|
|
for n = 1, nCount do
|
nRet, strRetInfo = wms.wms_Putaway_DecAccBindingQty( strLuaDEID, retObjs[n].id, "serial" )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "wms_Putaway_DecAccBindingQty 失败! "..strRetInfo ) end
|
end
|
|
end
|