Inventory Movement & Balance Report
by Digital Economics LLC. https://de.com.eg , Eng. Ahmed Nasreldin https://de.com.eg , Mostafa Hegazy https://de.com.eg$ 49.02
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 571 |
| Technical Name |
de_stockmovement_report |
| License | OPL-1 |
| Website | https://de.com.eg |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • Discuss (mail) |
| Lines of code | 571 |
| Technical Name |
de_stockmovement_report |
| License | OPL-1 |
| Website | https://de.com.eg |
📊 Per-product Stock Card with Opening, IN/OUT, Closing
📊 كارت صنف لكل منتج مع الرصيد والوارد والصادر
$49
Inventory Movement & Balance Report
تقرير حركة وأرصدة المخزون
A stock-card style report that pulls every stock.move for any date range, classifies it by location-usage transition (Purchase, Sale, Transfer, Adjustment, Production, Scrap), computes the running balance, and exports the result to a two-sheet XLSX with per-product totals.
Opening + IN/OUT + Closing
13 Movement Types
Group by WH / Location / Product
No stock.valuation.layer dependency
Why this report exists
Without it
- Inventory Valuation report reads
stock.valuation.layerâ useless on migrated databases where the layer is incomplete - No quick way to answer "what was the closing balance of SKU X at warehouse Y on date Z?"
- Auditors ask for opening / IN / OUT / closing per period and you have to glue queries together by hand
- No movement-type breakdown by location-usage transitions
With it
- Engine rebuilds balances purely from
stock.moveâ survives any valuation layer gap - One wizard, three group-by axes, two-sheet XLSX in seconds
- Every row classified into one of 13 movement types â purchase, sale, transfer, adjustment, production, scrap, etc.
- Multi-company, multi-warehouse, multi-currency-aware (per-company)
Use it in 3 steps
Open the Wizard
Inventory â Reporting â Movement & Balance Report
Pick filters
Date range, warehouses, products, category, location, partner
Generate XLSX
Two-sheet workbook downloads in seconds
Features
Pure stock.move Engine
Opening balance and every period row are rebuilt directly from stock.move history. No reliance on stock.valuation.layer — the report is correct even on databases where the valuation layer is missing or incomplete (migrated environments).
13 Movement Types
Each row is classified by location-usage transition into one of: Purchase, Purchase Return, Sale, Sales Return, Internal Transfer (In/Out), Inventory Adjustment (+/−), Production (Finished/Consumed), Scrap, or Unclassified.
Three Grouping Modes
Pick the bucket: Product × Warehouse, Product × Location, or Product only. Cross-warehouse transfers emit paired IN/OUT rows so the ledger always balances.
Powerful Filters
Date range, warehouses, products, recursive product category, internal locations, partner. Skip-zero toggles for empty balances and idle products keep the output focused.
Two-sheet XLSX
Summary — one row per (product, bucket) with Opening / IN / OUT / Closing Qty / Closing Value, plus a green "Total — all buckets" row whenever a product spans more than one bucket. Detail — Opening row → one row per ledger entry → Closing row, per bucket, with banded formatting.
UoM-aware
Every move's quantity is normalised to the product's reference UoM via the standard uom._compute_quantity() path, so a 5 kg flour bag sale reports as 5 kg even when the move was in "bag" units.
Partner Resolution Chain
The counterparty on each ledger row is resolved with a precedence chain: move.partner_id → picking.partner_id → purchase_line.order_id.partner_id → sale_line.order_id.partner_id. You always get the right name even when the move itself has no partner.
Multi-company + Bilingual
Wizard carries a company_id and respects multi-company access rules. Arabic (ar_001) translations bundled for menus, fields and the XLSX header band.
FAQs
الأسئلة الشائعة
stock.valuation.layer — which is the source of truth on a clean database but often incomplete after migration. This report rebuilds opening, in, out and closing purely from stock.move history. Use the standard report for financial reconciliation; use this one for stock-card audits and for migrated databases.closing_qty × product.standard_price. It is intentionally simple — the wizard's job is movement & balance reporting, not AVCO valuation. If you need a full per-move AVCO ledger, the standard Inventory Valuation report covers that.stock.move from warehouse A â warehouse B emits TWO ledger rows: an Internal Transfer (Out) on warehouse A and an Internal Transfer (In) on warehouse B. The two warehouse buckets stay balanced.stock_account, which is part of standard Odoo.stock.move, then iterates products one by one to keep memory bounded. Typical run for a single warehouse with ~1,000 SKUs over a month: 30 seconds or less.Why Digital Economics?
لماذا ديجيتال إيكونوميكس؟
Your All-in-One Smart ERP Partner
Gold Partner
Certified Odoo Gold Partner in Egypt
Projects
Successful International Implementations
Retention
Client Retention for 5+ Years
Countries
Global Operations Worldwide
Release Information
| Version | 18.0.1.14.0 |
| Release Date | May 2026 |
| Price | $49 USD |
| License | OPL-1 |
| Dependencies | stock_account |
| Odoo Version | 18.0 (Community & Enterprise) |
Changelog v18.0.1.14.0
- Initial release for Odoo 18.0
stock.movement.report.wizard— full opening / IN / OUT / closing engine driven bystock.move- 13 movement-type classifications by location-usage transition
- Three grouping modes: Product × Warehouse, Product × Location, Product only
- Filters: date range, warehouses, products, recursive category, locations, partner
- Two-sheet XLSX export (Summary + Detail) with per-product Total rows
- Preview action returns a notification with bucket / row counts before download
- Multi-company aware via
company_id - Arabic translations (
ar_001)
Digital Economics LLC.
Unlock Your Business Growth Potential
ديجيتال إيكونوميكس - أطلق إمكانات نمو أعمالك
Contact Information
Copy any link below and paste in your browser
| Website | de.com.eg |
| support@de.com.eg | |
| wa.me/201509061111 | wa.me/201509071111 | |
| Support Portal | de.com.eg/helpdesk/customer-care-1/knowledgebase |
Digital Economics
Unlock Your Business Growth Potential
Copyright 2025 Digital Economics LLC. All rights reserved.
جميع الحقوق محفوظة 2025 ديجيتال إيكونوميكس
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module