Skip to main content
Odoo Community Association

Budget Control on Sale with Stock

Alpha License: AGPL-3 ecosoft-odoo/budgeting

This module is a bridge between budget_control_stock and sale_stock.

When a Sale Order is confirmed, the system auto-creates a Delivery Order (DO). At this point, the Budget Control may not yet be confirmed (the user needs to set KPIs first). This module bypasses the stock budget commit check during SO confirmation so the DO can be created without a budget error.

After SO confirmation, all subsequent DO operations (validate, unreserve, etc.) enforce the budget check normally, requiring the user to confirm the Budget Control before the DO can be processed.

An SO that creates a new Project defaults to Lifetime budgeting. The system creates one Project-scoped Budget Period and one Budget Control for the total estimated SO cost. After the user enters the Project Planned Dates, the draft period follows those dates. Commitments and actual costs in every fiscal year inside that range consume the same total Project balance.

The SO can instead select Fiscal Period before confirmation. That mode keeps the annual behavior: one Budget Control per fiscal period, with audited carry forward between Fiscal Periods when required.

Lifetime periods are exclusive to one analytic account, so they may overlap the normal fiscal periods used by departments. They do not use carry forward because the Project balance does not reset at fiscal year end.

This also supports department analytics that are not linked to a Project. If a control is managed by a Budget Plan, the plan remains the owner of its allocated amount; a Sale Order only links to that control.

The Sale Order cost added to a Budget Control is a planning snapshot taken when the order is linked. Later quantity, cost, or cancellation changes do not silently rewrite an approved budget; a budget manager reopens and adjusts the control explicitly when required.

One Sale Order may create only one budgeted Project. Splitting an SO that would generate several Projects keeps cost ownership explicit.

Table of contents

Usage

To control one total cost budget for a Project that may span several years:

  1. Configure a service product with Create on Order = Project (or Project & Task).

  2. Add that product to one Sale Order. Leave Project Budget Scope as Lifetime and confirm the order.

  3. Odoo creates the Project and Analytic Account. This module copies the fiscal period’s control configuration into a private Lifetime period and creates one draft Budget Control for the total SO cost.

  4. Open the generated Project and enter both Planned Start and End dates. The draft Budget Control follows those dates automatically.

  5. Open the Budget smart button, select the KPIs, prepare plan amounts equal to the total estimated cost, then submit and control the budget.

  6. Use the same Project Analytic Account on purchases, stock moves, expenses, and bills. Documents in every year within the Planned Dates consume the same Project balance.

  7. Use the Project’s Budget Controls smart button for monitoring.

The Project Lifetime Budget cannot be submitted until both Planned Dates are set. Once submitted, set it back to Draft before changing the Project dates. It does not use Forward Budget Balance.

The allocated amount is a snapshot of the Sale Order line costs at the time the Budget Control is created. Later Sale Order edits do not silently rewrite an approved budget.

For annual Project budgeting, choose Fiscal Period on the SO before confirmation. Create or link real SOs/Budget Plans in each fiscal period. Use a Forward Budget Balance document when unused annual balance may continue.

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

Contributors

Maintainers

Current maintainer:

Saran440

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

You are welcome to contribute.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file odoo_addon_budget_control_sale_stock-18.0.1.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for odoo_addon_budget_control_sale_stock-18.0.1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 524f3eceadd76ce8874976fc4dd6bc62f9cb5942331fd7b82b7160d8bd3f1607
MD5 c41e9453c3710c6dbc139a113b41821c
BLAKE2b-256 9472551b49a4e5593100acd854e5d6297150e529d3891ccd155a8b4c320e90f6

See more details on using hashes here.

Release history Release notifications | RSS feed

18.0.1.3.3

1 file

This release

18.0.1.3.2 This release

1 file

18.0.1.3.1

1 file

18.0.1.3.0.1

1 file

18.0.1.2.0

1 file

18.0.1.1.0.1

1 file

18.0.1.0.2

1 file

18.0.1.0.1

1 file

18.0.1.0.0.1

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page