| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Lines of code | 47 |
| Technical Name |
stock_picking_totals_report |
| License | LGPL-3 |
| Website | https://sjr.ie |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Lines of code | 47 |
| Technical Name |
stock_picking_totals_report |
| License | LGPL-3 |
| Website | https://sjr.ie |
Stock Picking Totals Report
Clean pick docket showing total qty per product and available stock per source location â no lot/serial clutter
The Problem
The standard Odoo picking report prints one line per lot/serial number. When a product is reserved from multiple lots across multiple locations, the docket becomes a long, confusing list â particularly on a handheld scanner screen.
Pickers need to know two things: how many to pick, and where to find it. The barcode app handles which serials get scanned. The pick docket should handle quantities and locations â nothing more.
Before vs After
| Feature | Standard Odoo | With This Module |
|---|---|---|
| One row per lot/serial | Yes (cluttered) | Removed |
| Total qty per product | No | Yes |
| Source locations per product | Spread across many rows | Grouped under product |
| Qty available per location | Mixed with lot info | Clear sub-row per location |
| Lot/Serial barcode columns | Present (scanner app overlap) | Removed |
Example Pick Docket
| Product | Qty Required | From |
|---|---|---|
| Widget A | 10 units | |
| Available at location | 6 units | Shelf 1-A |
| Available at location | 4 units | Shelf 2-B |
| Widget B | 5 units | |
| Available at location | 5 units | Main Stock |
Key Design Decisions
Pick Docket = Qty Authority
The printed docket tells pickers how many to pick in total. It is the authoritative source for quantities.
Barcode App = Serial Authority
The scanner app records which serial/lot numbers are actually picked. Printing serials on the docket is redundant and confusing.
Location Guidance
Sub-rows show each source location and the qty reserved there, so pickers know exactly where to go and how much to take from each spot.
Reduced Cognitive Load
10 lot lines for one product becomes 1 bold total + a short location list. Fewer lines = fewer mistakes.
Technical Details
-
Inheritance: Extends
stock.report_pickingas overridden byproduct_hide_cost -
Product rows: Iterates
move_ids_without_packageâ onestock.moveper product, usingproduct_uom_qtyfor the total demand -
Location rows: Groups
move.move_line_idsbylocation_idusingmapped(), then sumsquantityper location - No Python required: Pure QWeb template inheritance â no model changes
Dependencies
- stock â Odoo Inventory (core)
- product_hide_cost â provides the base stock.report_picking template override
SJR Nebula
Developed by John Ashurst
Please log in to comment on this module