Repository navigation
Conversation
These modules extends the functionality of Sale Order to support Blanket Order and Call-off Order.
…fic products by default, blanket order overlap is not allowed, ensuring that only one active blanket order applies at a time. however, for certain products like delivery services, overlapping blanket orders are normal and do not pose an issue. this commit adds a bool field, allow_blanket_order_overlap, to the product model, allowing specific products to permit overlapping blanket orders when enabled.
…roducts At the EOL of a blanket order, if the only remaining product to deliver is a delivery product and the user hasn't included it in any of the call-off orders, it makes no sense to create a call-off order containing only a delivery product without tangible items. Such orders would serve no practical purpose and could lead to confusion. Ensuring that call-off orders include at least one actual product maintains meaningful and logical orders.
Moves the `create_call_off_from_so_if_possible` boolean field to its own line to properly display its label and prevent it from appearing on the same line as the `commitment_date` field. This resolves a rendering issue caused by incorrect placement within an `o_row` div.
…e order for products still to be delivered in blanket orders
…nket order is confirmed.
Currently translated at 100.0% (112 of 112 strings) Translation: sale-blanket-16.0/sale-blanket-16.0-sale_order_blanket_order Translate-URL: https://translation.odoo-community.org/projects/sale-blanket-16-0/sale-blanket-16-0-sale_order_blanket_order/it/
Before this change the auto creation of call off orders was not possible if the original order contains lines referencing products from different blanket order due to an error into the code
…anklet orders If checked, the system will enforce that the products are called off with the same packaging as the one defined on the blanket order lines. If not checked, the system will not take care of the packaging defined on the blanket order lines when calling off products nor the one on the call-off order lines.
…tRaises When a test is designed to ensure that errors are detected correctly, if the error assertion does not terminate the test and the code continues to use the ORM, it is important to wrap this assertion in a savepoint to ensure that the ORM is restored to a consistent state following the error.
…d order It's possible to update the qty on confirmed blanked orders. Nevertheless, the price unit must be preserved.
The "Normal Orders" filter was searching for 'normal' in the 'order_type' selection field. However, the correct technical value for standard orders is 'order'.
…parameters `_action_launch_stock_rule` now takes its parameters named instead of positional. Error message: > TypeError: SaleOrderLine._action_launch_stock_rule() takes 1 positional argument but 2 were given - Fixed bug by changing how paremeters are passed - Existing tests detects the issue: no need to add another
Error message: ValueError: Order term 'blanket_order_id.id' is not a valid aggregate nor valid groupby Root Cause: _compute_call_off_order_count crashes on 18 because `_read_group` is called the Odoo 16 way. Fix: order parameter in _read_group does not support .id anymore. Removed order parameter as it's not useful to the function. Added test reproducing call_off_order_count crash
…ll-off orders When generating a call-off order from a master blanket order that has manually overridden or updated invoice/shipping child addresses, the resulting call-off order defaulted back to the primary partner address.
vvrossem
force-pushed
the
19.0-mig-sale_order_blanket_order
branch
5 times, most recently
from
October 19, 2026 10:20
489a3fa to
f4f7837
Compare
vvrossem
force-pushed
the
19.0-mig-sale_order_blanket_order
branch
from
October 20, 2026 09:45
f4f7837 to
8675ab5
Compare
sale_order_blanket_order excludes sale_blanket_order, so they can't be installed together. Same rebel module group as on 18.0, see OCA@8111008
vvrossem
force-pushed
the
19.0-mig-sale_order_blanket_order
branch
from
October 20, 2026 10:00
8675ab5 to
d9dd201
Compare
yankinmax
approved these changes
Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on
sale_manual_delivery, already migrated in OCA/sale-workflow#4316.Besides the usual migration steps:
product_uom_id. A call-off line can then be in another unit than its blanket line, so quantities are converted where they're compared or summed (see below). If a quantity isn't a whole number of packs, the call-off line falls back to the product UoM.api.propagate()is gone (odoo/odoo@15d427ff86f0)_patch_methodusesfunctools.update_wrapper, like base_optional_quick_create.fields.first()is gone[:1].odoo_test_helperno longer neededadd_to_registryand restoresale.orderafterwards. I also had to give the fixed tax a group and a country, and use a carrier that isn't demo data.These conversions use
round=False, because_compute_quantityrounds UP to 0.01 by default. Example: a blanket line of 1 Pack of 3 (= 3 units), called off as 1 unit, then 2 units.round=FalseCovered by
test_call_off_units_from_pack(1 + 2 units) andtest_call_off_units_from_pack_one_by_one(1 + 1 + 1 units).I left
_prepare_reserve_procurement_valuesandrelease_reservationalone: they extend sale_stock_prebook, which isn't on 19.0 yet.