Odoo Community Association

Budget Control on Stock

Alpha License: AGPL-3 ecosoft-odoo/budgeting

This module adds budget control on stock operations, so that goods issued from inventory consume budget independently from the related purchase or sale documents.

When an outgoing transfer (delivery) of an operation type with Commit Budget enabled is confirmed, a stock.budget.move commitment is created per analytic account. The committed amount is the move quantity valued at the configured price source: the stock move’s unit price (falling back to product standard price when empty) or the lot standard price. When the transfer is validated, the stock journal entry is posted and recorded as budget actual (from the stock valuation value), while the original stock commitment is released, so the budget consumption moves smoothly from commitment to actual. Cancelling or reverting the transfer removes the commitment.

The committed amount can be reviewed on the Budget Commitment tab of the stock transfer and on the budget monitoring report.

Open stock commitments (transfers confirmed but not yet validated at the end of a budget period) are carried forward to the next period together with the other commitment types of the standard Budget Commit Forward document.

Important

This is an alpha version, the data model and design can change at any time without warning. Only for development or testing purpose, do not use in production. More details on development status

Table of contents

Configuration

To configure this module, you need to:

#. Go to Inventory > Configuration > Operation Types. #. Open the operation type that issues goods from inventory (for example Delivery Orders) and enable Commit Budget. Confirming a transfer of this operation type will then create budget commitments. #. Choose the Budget Price Source used to value the commitment:

  • Move Unit Price (default): uses price_unit from the stock move first. Falls back to product.standard_price when price_unit is empty.
  • Lot Standard Price: uses lot.standard_price per reserved lot (weighted average if multiple lots), for FIFO / lot-based costing. Falls back to Move Unit Price when no lots are reserved.

#. Go to Budgeting > Configuration > Budget Periods, open the relevant period and tick On Stock to control the budget against stock commitments. When Control Budget is enabled the flag follows it by default.

Notes:

  • Stock moves must carry an analytic distribution (provided by the stock_analytic dependency); commitments are created per analytic account.
  • Recording the related stock journal entry as budget actual relies on the standard journal-entry budget flow, so make sure the stock journal entries carry the analytic distribution of the moves.

Usage

To use this module, you need to:

#. Make sure the operation type and the budget period are configured (see Configuration) and that the budget control sheet of the analytic account is in Controlled status. #. Create an outgoing transfer (delivery) whose stock moves carry an analytic distribution. #. Confirm the transfer. For each analytic account, a budget commitment is created from the configured price source (move unit price or lot standard price). If the budget is not sufficient and the period blocks over-budget transactions, confirmation is refused. #. Review the committed amount on the Budget Commitment tab of the transfer, on the budget control sheet (Stock column) or on the budget monitoring report. #. Validate the transfer. The stock journal entry is posted and recorded as budget actual, and the matching stock commitment is released, so consumption moves from commitment to actual.

Cancelling, reverting to draft or returning the transfer removes the related commitment.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Ecosoft

Maintainers

Current maintainer:

Saran440

This module is part of the ecosoft-odoo/budgeting project on GitHub.

You are welcome to contribute.