Odoo倉庫掃碼的設計,前提是操作人在PC上先做好分揀單,然后根據打印出來的分揀單去倉庫進行掃碼打包,默認的情況下,分揀在被確認的時候會自動保留庫位中已經存在的庫存(已經分配批次\序列號),而在掃碼界面,如果掃到的批次並非預先保留的批次,系統會在掃碼界面新增一列,並在掃碼結束的時候將其調撥出去。這里的弊端有兩點,一是必須保證掃到的批次正確無誤,錯誤的批次會增加,並有可能導致多出乃至負庫存,缺少對庫存的核驗機制(主要是對唯一序列號而言)。二是,倉庫人員在進入掃碼界面之前需要先做揀貨單,這一點在實際過程中可能效率低下,倉庫在打包產品的時候數量不確定,批次也不確定,可操作性並不那么強。
我們要根據實際的操作流程來解決這個問題,首先,產品從產線上下來的時候,打包人員掃一下產品上的條碼即可以將本批次\序列號的產品添加到掃碼界面上,所有產品掃完之后,在掃碼界面生成包裝(箱),然后在完成分揀,調撥完成入庫。倉庫在出庫的時候,也是一樣,僅通過掃包裝碼即可將整箱的產品添加到出庫單,最后點一下完成即可調撥出庫。
依據這樣的思路,我們實現的方案如下:
1. 修改原分揀的掃碼按鈕只有在確認狀態下可見的條件,改為草稿狀態就能打開掃碼界面。
2. 在掃碼界面可以完成增加刪除產品,並檢查庫存,若庫存不足,掃碼無效。
3. 針對掃到的包裝號,如第2步般修改。
PS.Odoo掃碼界面一共可以輸入四種類型的條碼,依次分別是庫位、產品、批次、包裝,個人猜想其原本的設計目的是批量打印出分揀單后,掃描分揀單上的庫位,快速定位哪張分揀單,然后在進行后續的操作。然而根據我們的操作流程,這樣做遭到了業務人員的反對,可能並不對其他企業有效,僅供參考。
后續
之前的設計思路並沒有考慮到與拉式物流規則結合的情形,在我們的案例中,系統需要管理全國100多個城市的倉庫,各地分倉庫需要向總部倉庫提出領貨的需求,再由倉庫分配出庫,鑒於職責分清的要求,還需要使用中間庫位(在途庫位,參見拉式物流分析文章),這樣就給我們的出庫造成了困難,因為系統自動生成的出庫單會自動在當前庫存中預留,並非我們希望的通過掃碼操作掃進系統的那些貨物。
解決的方案是,雖然系統自動預留了quant,我們在出庫的時候多一步撤銷預留,將之返回到草稿狀態,然后再按照上述的方案進行出庫,這樣既保留了系統生成的拉式規則,又將預留的quant改為了我們掃碼進去的quant。