1
Jianw
9 天以前 70f29da38121b9a467841253e3268feb5df02902
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
--[[
   编码: JX-102-02
   名称: 创建后
   作者:
   日期: 2025-1-29
 
   函数: AfterDataObjDelete
 
   功能:
        -- 删除【波次组成】【波次明细】
        -- 删除入库波次计划出库的料箱等,更新入库单信息
 
   更改记录:
 
--]]
 
wms_base = require ("wms_base")
 
function AfterDataObjDelete( strLuaDEID )
    local   nRet, strRetInfo
 
    -- 获取 S_NO
    nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_WAVE_NO", "N_B_STATE" ) 
    if ( nRet ~= 0 )  then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..strRetInfo ) end 
 
    local obj_attrs = json.decode( strRetInfo ) 
    local wave_no = obj_attrs[1].value                
    local b_state = lua.StrToNumber( obj_attrs[2].value )   
 
    if ( wave_no == '' or wave_no == nil ) then return end           
 
    -- 删除波次组成
    local strCondition = "S_WAVE_NO = '"..wave_no.."'"
    nRet, strRetInfo = mobox.dbdeleteData( strLuaDEID, "IW_Compose", strCondition )
    if ( nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "删除入库波次相关的【波次组成】失败!  "..strRetInfo ) end  
 
    -- 删除入库波次组成
    local strCondition = "S_WAVE_NO = '"..wave_no.."'"
    nRet, strRetInfo = mobox.dbdeleteData(strLuaDEID, "IW_Detail", strCondition)
    if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "删除【IW_Detail】失败!"..strRetInfo) end   
    
    -- 更新【入库单】中的 S_WAVE_NO,S_STATION_NO, S_OPERATOR_NAME, S_OPERATOR, N_B_STATE
    local strUpdateSql = "N_B_STATE = 0, S_WAVE_NO = '', S_STATION_NO ='', S_OPERATOR_NAME = '', S_OPERATOR = ''"
    local strCondition = "S_WAVE_NO = '"..wave_no.."'"
    nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, "Inbound_Order", strCondition, strUpdateSql )
    if ( nRet ~= 0 ) then  
        lua.Stop( strLuaDEID, "更新【入库单】信息失败!"..strRetInfo )
        return 
    end  
 
 
    -- 如果业务状态不等于完成 要把容器解锁
    if ( b_state ~= IN_WAVE_STATE.Finish ) then
        nRet, strRetInfo = wms_pac.Release_Pre_Alloc_Cntr( strLuaDEID, "Inbound_Wave", wave_no )
        if ( nRet ~= 0 ) then  
            lua.Stop( strLuaDEID, strRetInfo )
            return 
        end          
    end
 
    -- 删除[预分配容器/Pre_Alloc_Container]
    local strCondition = "S_BS_TYPE = 'Inbound_Wave' AND S_BS_NO = '"..wave_no.."'"
    nRet, strRetInfo = mobox.dbdeleteData(strLuaDEID, "Pre_Alloc_Container", strCondition)
    if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "删除【Pre_Alloc_Container】失败!"..strRetInfo) end      
    
    -- 删除[预分配容器明细/Pre_Alloc_CNTR_Detail]
    nRet, strRetInfo = mobox.dbdeleteData(strLuaDEID, "Pre_Alloc_CNTR_Detail", strCondition)
    if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), "删除【Pre_Alloc_CNTR_Detail】失败!"..strRetInfo) end      
 
end