--[[
|
编码: AMS-21-01
|
名称: 入库单明细-创建前
|
作者:HAN
|
日期:2025-1-29
|
|
级别: 项目
|
艾默生项目专用
|
|
函数: BeforeDataObjCreate
|
|
功能:
|
1) 系统自动生成行号
|
更改记录:
|
|
--]]
|
json = require ("json")
|
mobox = require ("OILua_JavelinExt")
|
m3 = require("oi_base_mobox")
|
|
function BeforeDataObjCreate ( strLuaDEID )
|
local nRet, strRetInfo
|
|
-- 获取 入库单号
|
nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_IO_NO","S_STORER", "S_ITEM_CODE" )
|
if ( nRet ~= 0 ) then
|
lua.Stop( strLuaDEID, "获取当前编辑属性失败! "..strRetInfo )
|
return
|
end
|
|
local obj_attrs = json.decode( strRetInfo )
|
local io_no = obj_attrs[1].value -- 入库单单号
|
if ( io_no == '' ) then
|
lua.Stop( strLuaDEID, "S_IO_NO 不能为空! " )
|
return
|
end
|
local storer = obj_attrs[2].value -- 入库单单号
|
if ( storer == '' ) then
|
lua.Stop( strLuaDEID, "S_STORER 不能为空! " )
|
return
|
end
|
local item_code = obj_attrs[3].value -- 入库单单号
|
if ( item_code == '' ) then
|
lua.Stop( strLuaDEID, "S_ITEM_CODE 不能为空! " )
|
return
|
end
|
-- 获取 SKU 中的 S_UDF19, S_UDF20 这些参数的项目临时增加的属性
|
local sku
|
local strCondition = "S_STORER = '"..storer.."' AND S_ITEM_CODE = '"..item_code.."'"
|
nRet, sku = m3.GetDataObjByCondition( strLuaDEID, "SKU", strCondition )
|
if ( nRet ~= 0 ) then
|
return 2, "获取【SKU】信息失败!"..strRetInfo
|
end
|
|
-- 获取当前最大行号
|
nRet,strRetInfo = mobox.getSerialMaxNumber( "行号", io_no )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "getSerialMaxNumber() 失败! "..strRetInfo ) end
|
local row_no = lua.StrToNumber( strRetInfo )
|
|
-- 设置信息
|
local attr_value = {
|
{ attr = "N_ROW_NO", value = row_no },
|
{ attr = "S_UDF19", value = sku.udf19 or '' },
|
{ attr = "S_UDF20", value = sku.udf20 or '' }
|
}
|
nRet, strRetInfo = mobox.setCurEditDataObjAttr( strLuaDEID, lua.table2str(attr_value) )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "设置【入库单明细】信息失败! "..strRetInfo ) end
|
end
|