Please see the Stock allocation algorithm section for information about the rules of creating pick lists.
Once a wave is selected on the scanner, all the pick lists in the wave go through a process to allocate the stock to an item detailed level. This means the stock is locked on the location.
Pick list lines that have a location allocated, will get the status ‘ready’.
Stock allocation on detailed level is only done for pick locations.
Stock on a bulk location (Non-pick location) cannot be taken to pick.
Also keep in mind that the stock details from the proposal are copied.
So for example: If on the proposal a certain LUID is locked, the pick list can only take stock for this LUID. This is the same for a batch. The pick list will only allocate for locations where the batch on the proposal is stored.
There are some exceptions to allow the picking on bulk locations: Full pallets can be picked from a bulk location, if this has been configured.
Status:
Not ready ('N'): The pick list has been created, but there is no locking done on detail level.
Partially ready ('A'): Some of the lines still do not have locking on detailed level.
Ready ('R'): All the lines have locking on detailed level.
Partially picked ('I'): Some lines are picked
Picked ('P'): All lines are picked
Partially packed ('T'): Some lines are packed
Packed ('K'): All lines are packed
Partially shipped ('L'): Some lines have been shipped (Pmx sales shipping)
Shipped ('S'): All lines have been shipped (Pmx sales shipping)
Partially delivered ('E'): Some lines have been delivered
Closed ('C'): All lines are closed. Either by closing the pick list or shipping all goods.
Force Close ('F'): This is done when an operator does not count the number of collis correctly
In case a movable location is used to pick on, the lines that are picked will be in status ‘Picked’. The users need to go through the packing flow to pack the items.
When no movable location is used, the picked lines get the status ‘Packed’, because the users will not go through the packing flow.
An exception to this rule is when the option ‘Always status picked?’ is set to true on the Pick list type table (For more explanation see Produmex pick list types (PMX_PLTY))
The order to take the stock is based on settings in the pick list controller.
If there is a custom 'Stock order by' option, the sorting will be the value of that setting.
When the setting has the value *DEFAULT*, the sorting is as below:
Settings that are taken in account:
If the setting ‘Must the user pick full pallet from bulk location’ is checked, the sorting is as follows:
Otherwise the sorting is done as:
After getting this sorting, the system will loop through all the lines it finds. If during this loop, a full pallet is found on a pick location, it is stored in a separate list, and is NOT used on the pick list line. If there is still quantity to allocate after assigning the locations to the pick list line, the stock for full pallets on a pick location is used.
When setting the value as *BIGGEST PALLET FIRST*, the system picks from the pallet where the remaining quantity will be lowest.
First the system sorts the stock as follows:
After the sorting, the system will loop through all the lines.
When there are still stock to pick after the system looped through every line, it will use stock from the memory list.
Examples
We have the following stock situation for the example:
Product A has 5 pallets in stock, the default quantity per pallet is 10 pcs. But we also have 1 ‘older’ larger pallets that has 12 pcs and also an ‘open’ pallet with only 4 pcs.
Product A | SSCC 001 | 12 pcs |
Product A | SSCC 002 | 10 pcs |
Product A | SSCC 003 | 10 pcs |
Product A | SSCC 004 | 10 pcs |
Product A | SSCC 005 | 4 pcs |
Scenario 1: Ordered quantity = quantity on given SSCC
Example 1: We have a sales order for 4 pcs → system allocates SSCC 005
Example 2: We have a sales order for 10 pcs → system allocates SSCC 002 (oldest SSCC that matches the quantity)
Example 3: We have a sales order for 12 pcs → system allocates SSCC 001
Scenario 2: Smallest SSCC < Ordered quantity < quantity on given SSCC
Example 1: We have a sales order for 5 pcs → system allocates 4 pcs from SSCC 005 and 1 pcs from SSCC 001 (because this is the oldest).
Scenario 3: Smallest SSCC > Ordered quantity
Example 1: We have a sales order for 3 pcs → system allocates 3 pcs from SSCC 005 (biggest SSCC that is less than the quantity to pick)
Scenario 4: Ordered quantity > Biggest SSCC
Example 1: We have a sales order for 14 pcs → system allocates 12 pcs from SSCC 001 (biggest SSCC that is less than remaining quantity) and allocate 2 pcs from SSCC 005 (smallest remaining quantity)
Scenario 5: Ordered quantity > Biggest SSCC, but lowest quantity does not fulfill the needs
For this scenario the stock is:
Product A | SSCC 001 | 12 pcs |
Product A | SSCC 002 | 10 pcs |
Product A | SSCC 003 | 10 pcs |
Product A | SSCC 004 | 10 pcs |
Product A | SSCC 005 | 4 pcs |
Product A | SSCC 006 | 1 pcs |
Example 1: We have a sales order for 14 pcs → system allocates 12 pcs from SSCC 001 (biggest SSCC that is less than remaining quantity). Next SSCC 006 is used, because the quantity available is more than the remaining quantity.
Now there is still 1 piece remaining. There is no more stock to be used, so now the system will loop through the remaining stock, but smallest quantity first. This means that 1 piece of SSCC 005 will be used.
For ad hoc picking, the stock is sorted by:
The following tables are used in the query:
Subqueries with the used columns:
When allocating stock for the picklist, the system will count the available stock based on the following logic:
First the system counts the difference between the inventory quantity and the locked quantity for each level.
{“InventoryItem”.”InventoryQuantity“ - “LockedItem”.”LockedQuantity“}
{“InventoryBatch”.”InventoryQuantity“ - “LockedBatch”.”LockedQuantity“}
{“InventoryLUID”.”InventoryQuantity“ - “LockedLUID”.”LockedQuantity“}
{“InventoryDetail”.”InventoryQuantity“ - “LockedDetail”.”LockedQuantity“}
The lowest calculated value will be taken as the available quantity.
When there is no location allocated on the pick list, it means that there is no free stock available on the locations allowed for picking.
So there is no free stock on pick locations, and (if configured to allow full pallet bulk picking) there a no free full pallets on bulk locations.
On the pick list screen there is a button called ‘Make delivery’.
This button can only be used when:
When clicking the button, the system will pick, pack, load and deliver the goods on the pick list.
It will use the stock details from the pick list.
It is not possible to override locations, LUID, …
This button is available when:
When clicking the button, the system will skip the selected lines. This means the lines will be closed, and the items will not be picked.
This button is available when:
When clicking the button, the system will show an additional screen where the user can select 1 or more alternate items to pick from.
If over picking is allowed, the system will allow the user to select more than what was needed to pick.
The list of alternate items is compiled the same way as it would on the picking flow.
The quantity for non-inventory items can be changed when the pick list line is in status ‘Ready’.