1
Jianw
10 天以前 88e26a2a960dbbc148332772448b79b9877102d8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
--[[
    编码: 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