=====Warehouse Management===== ====Definitions==== rack - the physical holder of many row and bins inside a warehouse. row - the level inside the rack. bin - the finest physical location or bay/bucket/bin where stock is stored. location - the whole warehouse. webERP already caters for multiple warehouses (locations) stock = inventory stock locator = rack/row/bin ====Background==== Warehouse management has previously been discussed on the list but no development has made it back into the project as yet. There has been some difficulties encountered in the development of robust warehouse management extensions to webERP. Previous attempts have centered around extension of the fields in locstock to allow for specification of the bins. The problem with this approach is that currently a locstock record is required for every item, for every stocking location. Where there is already quite a good number of inventory items and potential warehouse locations - this can result in a sizable locstock table. To extend this to have a record for every potential bin in each stock location would cause a dramatic increase in the size of an already very large table. Efficiency of retrieval of the information and the whole application will decrease if large amounts of redudant information is mainatined. A more efficent approach is required. ====Definition - Goals==== To identify the stock location (rack/row/bin) of products stored in a warehouse for fast retrieval and for potentially even automating and suggesting picking routes for dispatch. Goods received would need to be booked into a rack/row/bin. Stock adjusted from the stocking location would need to refer to the rack/row/bin where the stock is to be adjusted. Goods dispatched would need to be recorded against the rack/row/bin they were taken from. Goods transferred would need to be booked out of a rack/row/bin and potentially into a bin at a new location. Rack/row/bins should be able to store multiple lots/serial numbers of items. The system should be able to tell which serial numbers/lots are in which rack/row/bin. Only stocking locations that have warehouse management control flagged would require specification of bins. Only like items - the same stock/inventory code can be stored in the same bin. ====Proposal==== A new table that consists of: create table stock_locators loccode varchar(5), - refers locations loccode Primary Key rack varchar(20), row varchar(20), bin varchar(20), stockid varchar(20), -refers stockmaster stockid or empty quantity double When a location is flagged as having warehouse management control new bins can be created for it. By default new bins created have zero quantity and an empty stockid.This table is the bins Maybe the bin togther with the loccode could be the unique primary key. Guess rack and row might be useful for sorting for planning a picking route and a new table that consists of: create table binmoves stkitmmoveno int(11), stockmoveno int(11), -refers to stockmoves - stockmoveno stockid varchar(20), - refers to stockmaster stockid loccode varchar(5), - refers to stock_locators loccode moveqty double This table records the details of movements from a warehouse managed location in and out of stock locators. It effectively analyses stock movements from the existing stockmoves table between stock locators. If this table is not created then the number of normal stock movements recorded - with an additional field for the stock locator would increase by an enormous factor. maybe we might not need loccode on this table since we have a reference to the stockmoves which has this. However, both these tables will be quite seriously large maybe if we wish to query on location/bin and both will be required to get a unique bin it might be as well to duplicate it to save another join on stockmoves. However, I suspect other queries will need info in stock moves anyway. We would need a reference to the bin though too A new field for StockSerialItems for the bin varchar(20) - this would enable the bin of each serial item to be maintained - some modifications to booking in controlled stock items would be required to also analyse to which bins they are being put into (or taken out of). ====New scripts would be required to:==== - analyse the bins where stock is received into a location flagged as warehouse management activated - this script is similar to GoodsReceivedControlled.php and activated from GoodsReceived.php in a similar way. - analyse the bins where stock is taken from for goods dispatched/invoiced - this script is similar to ConfirmDispatch_InvoiceControlled.php and activated from ConfirmDispatch_Invoice.php in a similar way. - analyse the bins where stock is adjusted from for stock adjustments in a location where warehouse management is active - similar to StockAdjustmentsControlled.php activated from StockAdjustments.php - analayse the bins where stock is taken from for stock transfers where warehouse management is active - analayse the bins where stock is received into from stock transfers where warehouse management is active in the receiving location. This will be similar to StockTransferControlled.php. Additional inquiry scripts would be required to show the bins and drill down to their contents - potentially showing the serial numbers/lots of items in each bin. This approach removes very large amounts of unecessary data.