lzh
2025-06-24 13c4a636539584ab977fddacfae884b3ec250aee
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
105
106
107
108
ÿþ--[[
    x: WMS-19-03
     Tðy: ¹[hV'ÁTfÆ~-xØv-agx“eQT
    \O€ÿHAN
    åegÿ2023-8-18
 
    §~+RÿúVš[ (ô‹f,gµkãNx(Wy˜îv-N N*YOØSS)
 
    ýQpeÿ AfterQRCodeInput
 
    ŸRý€:
        -- (WxØvLub— ÿ“eQagx/kbxT ÿ—‰Çagx·ƒÖS 'ÁT„váOo`
        -- èl: ,gãNx9hnc °etQy˜îv \O:NŸS‹W_ÑS ÿ›OvQƒ[y˜îvÂS€
        --     °etQy˜îv/fÎN
N¶gUSfÆ~-N·ƒÖS/f&T    gå‹agx„v'ÁT,kbÏc„vŒNô~x/f yb!k+wS÷S /fN*N/UN÷S
               (W0
N¶gUSfÆ~0-N/f S_SERIAL_NO §NÁT^R÷S
    ôf9e°‹U_:
        V6.0 HAN 2023/9/6  -- lua.Error/lua.Debug ýQpeØSS
        V6.1 S_ITEM_ROUT 9eb S_ITEM_ROUTE
        V7.0 HAN 2024/2/5
             N›N^\'`„vYt¹eÕl9ebg°e„vΘ<h
--]]
 
require("WMS-BASE")
 
function AfterQRCodeInput (strLuaDEID)
    local nRet, strRetInfo
    local attrs
 
    -- step1  ·ƒÖS5600xØvLub—-Nhˆ4YLub—„v“eQ„vagx
    nRet, attrs = m3.GetSysInputParameter(strLuaDEID)
    if (nRet ~= 0) then
        lua.Error(strLuaDEID, debug.getinfo(1), "·ƒÖSS_MR“eQb—g̑„v^\'`1Y%! " .. attrs)
    end
    local input_attr = m3.KeyValueAttrsToObjAttr(attrs)
    local qr_code = input_attr.QRCode
    if (qr_code == nil or qr_code == '') then
        return
    end
 
    -- step2 ågâ‹0
N¶gUSfÆ~0
    -- èl:  Nb—„vågâ‹agöNïSý€ N Ty˜îvO    g@b N T
    --     N_B_STATE = 0 ô‹fُag0
N¶gUSfÆ~0؏    gϑïSåNۏLˆÑ~š[
    local strCondition = "S_SERIAL_NO = '" .. qr_code .. "' AND N_B_STATE = 0"
    local putaway_detail
    nRet, putaway_detail = m3.GetDataObjByCondition(strLuaDEID, "Putaway_Detail", strCondition)
    if (nRet == 1) then
        -- MRïz>f:yáOo`
        mobox.setInfo(strLuaDEID, "0
N¶gUSfÆ~0-N NX[(Wán³îvMRagxagöN„v°‹U_!")
        return
    end
    if (nRet ~= 0) then
        lua.Error(strLuaDEID, debug.getinfo(1), "·ƒÖS0
N¶gUSfÆ~0áOo`1Y%! " .. strRetInfo)
    end
 
    -- ¡‹—{úQïSåNÑ~š[„vpeϑ
    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
    -- ïSåNÑ~š[„vpeϑ = ;`peϑ - RM‘Ï‘ - ÖSˆmpeϑ - ò]Ï~Ñ~š[peϑ
    local qty = total_qty - alloc_qty - acc_c_qty - acc_b_qty
 
    if (qty <= 0) then
        -- MRïz>f:yáOo`
        mobox.setInfo(strLuaDEID, "Ñ~š[peϑò]án!")
        return
    end
 
    -- Ä~Ç~ ¹[hV'ÁTfÆ~ pencù[aŒ^\'` -- Ù*N ReQ0R ck(WxØv 
    -- èl:  Nb—„vågâ‹agöNïSý€ N Ty˜îvO    g@b N T
    -- ¾‹náOo`
    local attr_array = {}
    local attrs_array = {}
    local insert_row = {}
    -- lua.Debug( strLuaDEID, debug.getinfo(1), 'putaway_detail', putaway_detail )
    attr_array[1] = lua.KeyValueObj("S_PUTAWAY_NO", putaway_detail.putaway_no)
    attr_array[2] = lua.KeyValueObj("S_ITEM_CODE", putaway_detail.item_code)
    attr_array[3] = lua.KeyValueObj("S_ITEM_NAME", putaway_detail.item_name)
    attr_array[4] = lua.KeyValueObj("S_SERIAL_NO", putaway_detail.serial_no)
    attr_array[5] = lua.KeyValueObj("S_BS_NO", putaway_detail.bs_no)
    attr_array[6] = lua.KeyValueObj("F_NET_WEIGHT", putaway_detail.net_weight)
    attr_array[7] = lua.KeyValueObj("F_GROSS_WEIGHT", putaway_detail.gross_weight)
    attr_array[8] = lua.KeyValueObj("S_WU", putaway_detail.weight_unit)
    attr_array[9] = lua.KeyValueObj("S_UOM", putaway_detail.uom)
    attr_array[10] = lua.KeyValueObj("F_QTY", qty)
 
    attrs_array.attrs = attr_array
    insert_row[1] = attrs_array
 
    lua.Debug(strLuaDEID, debug.getinfo(1), "·ƒÖS0R„v¹[hV'ÁTfÆ~áOo`:", insert_row)
 
    local strDataJson = '{"page_name":"ck(WxØv","clear":true,"content":' .. lua.table2str(insert_row) .. '}'
    local strAction = '[{"action_type":"set_subtable_page_content","value":' .. strDataJson .. '}]'
 
    lua.Debug(strLuaDEID, debug.getinfo(1), "u˜b—áOo`¾‹nMR:", strAction)
 
    -- ¾‹naction
    nRet, strRetInfo = mobox.setAction(strLuaDEID, strAction)
    if (nRet ~= 0) then
        lua.Error(strLuaDEID, debug.getinfo(1), "setAction1Y%! " .. strRetInfo .. ' action = ' .. lua.table2str(action))
    end
end