--[[
|
编码: WMS-19-08
|
名称: 容器货品明细-修改后
|
作者:HANXU
|
日期:2025-1-29
|
|
级别:固定 (说明本段代码在项目中不太会变化)
|
|
函数: AfterDataObjModify
|
|
功能:
|
-- 获取修改后的N_货品状态,来修改S_货品状态
|
-- 如果 C_ITEM_MERGE = Y 的时候,要判断一下是否有修改数量,如果数量修改要修改 Container_Good 中的数量
|
|
更改记录:
|
|
--]]
|
wms_base = require( "wms_base" )
|
|
function AfterDataObjModify ( strLuaDEID )
|
local cg_detail
|
local nRet, strRetInfo
|
|
nRet, cg_detail = m3.GetSysCurEditDataObj( strLuaDEID, "CG_Detail" )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..cg_detail ) end
|
|
local n_item_state = lua.StrToNumber(cg_detail.item_state)
|
local s_item_state = wms_base.GetDictItemName( strLuaDEID, "WMS_ItemState", n_item_state )
|
|
--获取当前编辑的数据对象标识
|
--V2.0
|
local strClsID, strObjID
|
nRet, strClsID, strObjID = mobox.getCurEditDataObjID( strLuaDEID )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "getCurEditDataObjID失败! " ) end
|
local strCondition = "S_ID = '"..strObjID.."'"
|
local strSetSQL = "S_ITEM_STATE = '" ..s_item_state .."'"
|
nRet, strRetInfo = mobox.updateDataAttrByCondition(strLuaDEID, "CG_Detail", strCondition, strSetSQL)
|
if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), strRetInfo) end
|
|
--V2.0
|
if ( cg_detail.item_merge == 'Y') then
|
local cg_id = cg_detail.cg_id
|
local qty = cg_detail.qty
|
local old_cg_detail
|
local qty
|
|
nRet, old_cg_detail = m3.GetSysCurEditOldDataObj( strLuaDEID, "CG_Detail" )
|
if ( cg_detail.qty ~= old_cg_detail.qty ) then
|
-- 更新 Container_Good
|
local strSetAttr
|
strCondition = "S_ID = '"..cg_detail.cg_id.."'"
|
if ( cg_detail.qty > old_cg_detail.qty ) then
|
qty = cg_detail.qty - old_cg_detail.qty
|
strSetAttr = "F_QTY = F_QTY + "..qty
|
else
|
qty = old_cg_detail.qty - cg_detail.qty
|
strSetAttr = "F_QTY = F_QTY - "..qty
|
end
|
nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Container_Good", strCondition, strSetAttr )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "更新【容器货品】数量失败!"..strRetInfo ) end
|
end
|
end
|
end
|