--[[
|
编码: WMS-19-07
|
名称: 容器货品明细-码盘-条码输入后
|
作者:LZH
|
日期:2024-3-26
|
|
级别:固定 (说明本段代码在项目中不太会变化)
|
|
函数: NewAfterQRCodeInput
|
|
功能:
|
-- 在码盘界面,输入条码/扫码后,需要通过条码获取 货品的信息
|
-- 注: 本代码根据 新兴项目 作为原型开发,供其它项目参考
|
-- 新兴项目是从上架单明细中获取是否有该条码的货品,扫描的二维码是 批次+卷号 是一个唯一号
|
在【上架单明细】中是 S_SERIAL_NO 产品序列号
|
--]]
|
|
require("WMS-BASE")
|
|
function NewAfterQRCodeInput (strLuaDEID)
|
local nRet, strRetInfo
|
local attrs
|
|
-- step1 获取5600码盘界面中表头界面的输入的条码
|
nRet, attrs = GetSysInputParameter(strLuaDEID)
|
if (nRet ~= 0) then
|
Error(strLuaDEID, debug.getinfo(1), "获取当前输入面板里的属性失败! " .. attrs)
|
end
|
local input_attr = KeyValueAttrsToObjAttr(attrs)
|
local qr_code = input_attr.QRCode
|
if (qr_code == nil or qr_code == '') then
|
return
|
end
|
|
-- step2 通过产品唯一码查询【容器货品明细】是否和托盘已绑定,绑定则提示,未绑定则添加
|
-- 注: 下面的查询条件可能不同项目会有所不同
|
local strCondition = "S_SERIAL_NO = '" .. qr_code .. "'"
|
local nRet, id, putaway_detail = mobox.getDataObjAttrByKeyAttr(strLuaDEID, "CG_Detail", strCondition)
|
if (nRet == 0) then
|
-- 前端显示信息
|
mobox.setInfo(strLuaDEID, "【容器货品明细】中已存在满足目前条码条件的记录!")
|
return
|
end
|
|
-- 计算出可以绑定的数量
|
--local total_qty = putaway_detail.qty
|
--local alloc_qty = putaway_detail.alloc_qty
|
--local acc_c_qty = putaway_detail.acc_c_qty
|
--local acc_b_qty = putaway_detail.acc_b_qty
|
-- 可以绑定的数量 = 总数量 - 分配量 - 取消数量 - 已经绑定数量
|
--local qty = total_qty - alloc_qty - acc_c_qty - acc_b_qty
|
|
--if (qty <= 0) then
|
-- 前端显示信息
|
-- mobox.setInfo(strLuaDEID, "绑定数量已满!")
|
-- return
|
--end
|
|
-- 组织 容器货品明细 数据对象属性 -- 这个加入到“正在码盘”
|
-- 注: 下面的查询条件可能不同项目会有所不同
|
-- 设置信息
|
local attr_array = {}
|
local attrs_array = {}
|
local insert_row = {}
|
local strCondition = "S_SERIAL_NO = '" .. qr_code .. "'"
|
nRet, strRetInfo = QueryDataObject(strLuaDEID,"Putaway_Detail", strCondition)
|
if(nRet ~= 0) then
|
attr_array[2] = KeyValueObj("S_ITEM_CODE", "81201")
|
attr_array[3] = KeyValueObj("S_ITEM_NAME", "棉针织布")
|
attr_array[4] = KeyValueObj("S_SERIAL_NO",qr_code )
|
attr_array[10] = KeyValueObj("F_QTY", 1)
|
else
|
local attrs = strRetInfo[1].attrs
|
local data_object_lua = KeyValueAttrsToObjAttr(attrs)
|
Debug(strLuaDEID, debug.getinfo(1), "data_object_lua", data_object_lua)
|
attr_array[1] = KeyValueObj("S_PUTAWAY_NO", data_object_lua.S_PUTAWAY_NO)
|
attr_array[2] = KeyValueObj("S_ITEM_CODE", data_object_lua.S_ITEM_CODE)
|
attr_array[3] = KeyValueObj("S_ITEM_NAME", data_object_lua.S_ITEM_NAME)
|
attr_array[4] = KeyValueObj("S_SERIAL_NO",qr_code )
|
attr_array[5] = KeyValueObj("S_BS_NO", data_object_lua.S_BS_NO)
|
attr_array[6] = KeyValueObj("F_NET_WEIGHT", data_object_lua.F_NET_WEIGHT)
|
attr_array[7] = KeyValueObj("F_GROSS_WEIGHT", data_object_lua.F_GROSS_WEIGHT)
|
attr_array[8] = KeyValueObj("S_WU", data_object_lua.S_WU)
|
attr_array[9] = KeyValueObj("S_UOM", data_object_lua.S_UOM)
|
attr_array[10] = KeyValueObj("F_QTY", data_object_lua.F_QTY)
|
end
|
|
|
attrs_array.attrs = attr_array
|
insert_row[1] = attrs_array
|
|
Debug(strLuaDEID, debug.getinfo(1), "获取到的容器货品明细信息:", insert_row)
|
|
local strDataJson = '{"page_name":"正在码盘","clear":true,"content":' .. table2str(insert_row) .. '}'
|
local strAction = '[{"action_type":"set_subtable_page_content","value":' .. strDataJson .. '}]'
|
|
Debug(strLuaDEID, debug.getinfo(1), "页面信息设置前:", strAction)
|
|
-- 设置action
|
nRet, strRetInfo = mobox.setAction(strLuaDEID, strAction)
|
if (nRet ~= 0) then
|
Error(strLuaDEID, debug.getinfo(1), "setAction失败! " .. strRetInfo .. ' action = ' .. table2str(action))
|
end
|
end
|