| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 4559 |
| Technical Name |
stock_manual_forecast_realtime_stock |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
Stock Manual Forecast Realtime Stock
NextERP Romania
NextERP Romania is a leading provider of integrated business management solutions, specializing in Odoo ERP implementations and customizations. With a strong focus on innovation and customer satisfaction, NextERP delivers scalable and efficient solutions tailored to the needs of Romanian businesses.
About Us
- Expertise: Over 10 years of experience in ERP, CRM, and business process automation.
- Services: Odoo implementation, customization, support, and training.
- Clients: Serving a wide range of industries including retail, manufacturing, and services.
Use Cases / Context
Stock Manual Forecast Realtime Stock
Context
stock_manual_forecast_realtime_stock adds a live dashboard to the base stock_manual_forecast module. It compares forecasted quantities (from forecast inputs) against actual stock movements for any given day, broken down by configurable hour intervals. The dashboard refreshes on demand to give warehouse managers a minute-by-minute view of how deliveries are tracking against plan.
Typical use-cases:
- Wholesale / distribution operations that run time-sensitive daily dispatch windows and need to see whether target quantities have been shipped in each hour slot
- Businesses with multiple warehouses that want a single screen consolidating real vs. planned outflows
- Operations teams that track donation pickings separately from commercial deliveries (the dashboard shows donation quantities in a dedicated column)
Key Concepts
| Concept | Description |
|---|---|
| Hour Start / Hour End | Fields on the Forecast Config that define the visible time window (default 07:00–22:00) |
| Interval | One hour slot within the window; moves are bucketed by the local hour of date_done using the user’s timezone |
| Before / After rows | Moves that fall outside the window are collected into a single before (00:00–start) and after (end–24:00) row |
| Initial Stock (BOD) | Computed from all done outbound moves before the selected date; represents beginning-of-day stock |
| Forecast | Taken from the confirmed stock.manual.forecast.input for the same config and date |
| In / Out / Donation | in_qty = inbound moves done; out_qty = outbound non-donation moves done; donation_qty = outbound donation moves done |
| Stock on Hand (EOD) | initial_stock − out_qty − donation_qty + in_qty; projected end-of-day position |
| is_donation | Boolean on stock.picking; marks a transfer as a donation so it is separated from commercial outflows |
Data Flow
Forecast Config (hour_start, hour_end)
│
├─ Forecast Input (date, lines with forecast_qty)
│
└─ Realtime Dashboard (controller /web/stock_realtime_forecast)
├─ initial_stock ← historical done moves before selected date
├─ interval grid ← done moves for selected date, bucketed by local hour
└─ warehouse_totals
├─ initial_stock
├─ in_qty, out_qty, donation_qty
├─ stock_on_hand (EOD)
└─ forecast
Configuration
Configuration Guide
Prerequisites
- stock_manual_forecast must be installed and configured with at least one Forecast Config and a confirmed Forecast Input for the day you want to monitor.
Setting the Dashboard Time Window
The realtime hour range is defined on each Forecast Config:
- Go to Inventory → Configuration → Manual Forecast → Forecast Configs.
- Open the config you want to adjust.
- Set the Realtime Hour Start and Realtime Hour End fields
(visible after this module is installed):
- Realtime Hour Start (0–23, default 7) — first visible hour interval
- Realtime Hour End (1–24, default 22) — last visible hour interval (exclusive)

Example: hour_start = 7, hour_end = 22 produces intervals 07:00–08:00 through 21:00–22:00, plus a 00:00–07:00 before row and a 22:00–24:00 after row.
Validation: 0 ≤ hour_start ≤ 23, 1 ≤ hour_end ≤ 24, and hour_start < hour_end.
Marking Donation Pickings
To track donation outflows separately from commercial deliveries:
- Open any transfer in Inventory → Operations → Transfers.
- Tick the Donation checkbox added by this module to the picking form.
- The picking’s moves are counted in the donation column of the dashboard instead of out.
Timezone
Move hours are displayed in the user’s configured timezone (from res.users.tz). Ensure users have their timezone set correctly so that hour bucketing matches local clock time.
Access Rights
No additional access groups are required beyond the base stock_manual_forecast access rights.
Usage
Usage Guide
Opening the Dashboard
Go to Inventory → Operations → Manual Forecast → Realtime Stock vs Forecast.
The dashboard opens showing today’s date and the first available config.

Selecting Date and Config
- Set the Date using the date-picker at the top (defaults to today).
- Select a Config from the dropdown.
- The grid loads automatically after both are set.

Reading the Dashboard
Detail View (default)
Rows = hour intervals, columns = products (grouped by category). The Total column aggregates across all products for each hour.
| Row | Meaning |
|---|---|
| Initial Stock | Beginning-of-day stock (all done moves before the selected date) |
| 00:00–HH:00 | Moves that occurred before hour_start (overnight receipts, early dispatches) |
| HH:00–(HH+1):00 | Moves bucketed into this one-hour slot (in local time) |
| HH:00–24:00 | Moves after hour_end (late dispatches) |
Footer legend per product:
- In (green) — inbound units done in this hour
- Out (red) — outbound commercial units done
- Donation (orange) — outbound donation units done
Warehouse totals footer:
- ▶ initial_stock — beginning-of-day stock (blue)
- +in_qty — total inbound (green)
- −out_qty — total commercial outbound (red)
- F:forecast — forecasted total (amber)
- −donation_qty — total donation outbound (orange)
- →stock_on_hand — projected end-of-day stock (teal)
Summary View
Click Summary (top-right toggle) to switch to a category-level aggregation — useful for a high-level overview during busy dispatch windows.
Toolbar Buttons
| Button | Action |
|---|---|
| Refresh | Reloads data without changing date/config |
| Auto OFF / ON | Toggles automatic periodic refresh |
| Detail / Summary | Switches between product-level and category-level views |
Donation Tracking
Pickings marked with Donation = True appear in the donation chip and the donation_qty footer line, completely separate from commercial outflows. This lets managers see what portion of dispatched goods were donations vs. sales orders.
Bug Tracker
Bugs are tracked on NextERP Issues. In case of trouble, please check there if your issue has already been reported.
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