Skip to content

Syncing from upstream odoo/odoo (saas-18.2) #34183

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jul 9, 2025

Conversation

bt-admin
Copy link
Collaborator

@bt-admin bt-admin commented Jul 9, 2025

bt_gitbot

ryce-odoo and others added 17 commits July 8, 2025 03:00
When creating a sale order through crm, default_user_id was being
passed through the context. This was causing issues when confirming the
sale orders when quality checks were enabled as the user on the
quality checks would be set as the user from the CRM lead. Removing this
from the context before confirming and thus creating any linked records
avoids this issue.

opw-4658850

closes #216767

X-original-commit: 1540c30
Signed-off-by: Ryan Cen (ryce) <[email protected]>
…rt layout

Steps to Reproduce:
1. Go to Settings > Companies > Configure Document Layout.
2. Choose layout Boxed or any layout that horizontally places
the company logo and address.
3. Edit the address block choose long string.
4. Save the layout and click Preview Document or print SO or invoice.

Issue:
Observe in PDF output the long text overlaps into logo or extend outside the
layout bound(differ in layouts) — even though enough space is visually available

Cause:
A previous change in PR #201198
added the text-nowrap class to address blocks to fix a minor wrapping issue.
However, this unintentionally caused layout overflow issues with long lines.

Solution:
- Added width to the address block to ensure balanced layout structure.
- Removed text-nowrap from all layouts, as the original issue is now resolved by
applying proper width sizing.
- Removed float-end from Boxed layout, as it was contributing to misalignment.

Additional Notes:
All behaviors addressed by PR #201198 were re-tested to ensure this fix does not
reintroduce previous issues.

opw-4764975

closes #217830

X-original-commit: 0a45a1e
Signed-off-by: Bastien Fafchamps (bafa) <[email protected]>
Signed-off-by: Khushi Srivastava (khsr) <[email protected]>
Steps to reproduce:
1. Connect IoT Box and any printer that accepts PDF
2. Turn on Reception Report option on Inventory Settings
3. Set configuration of Receipts to print out Reception Report and Label
4. Assign Reception Report and label to the printer
5. Create a PO and run through the Reception process
   (PO > Reception of Delivery)
6. Print the Reception Report under "Allocations"

-> Result: Reception Report and label is downloaded as a PDF instead of
   being sent to the printer.

The reason for this bug is that the report models were being constructed
directly in the frontend, rather than being fetched from the backend.
This didn't work with IoT printing because its override used to assign
devices to reports is on the backend `ir.actions.report` model.

The fix is to fetch the report from the backend when the component is
loaded. This report is then passed down to the child components as well.

opw-4790299

closes #217781

X-original-commit: fb78c5a
Related: odoo/enterprise#89674
Signed-off-by: Louis Travaux (lotr) <[email protected]>
Signed-off-by: Max Whale (mawh) <[email protected]>
**Steps to reproduce:**
- Install Accounting + Inventory + Sales apps
- Enable Automatic Accounting in Settings
- Ensure two companies are available
- Set one product category (same for both companies)
    - For company 1 (current) -> FIFO + automatic valuation (`'real_time'`)
    - For company 2 -> FIFO + manual valuation (`'manual_periodic'`)
- Create a storable product for this category
- From company 1:
    - Buy 10 products at 10$ each and receive them (Purchase + Delivery)
    - Sell 15 products at 10$ each and deliver them (Sale + Delivery)
    - Buy 10 products at 10$ (Purchase)
- Switch to company 2 (keep company 1 checked)
- From company 2:
    - Validate the third delivery order (WH/IN)
- Go to Inventory/Reporting/Valuation
- One journal entry is missing for the last move

**Issue:**
During the processing of the SVL in `_run_fifo_vacuum`, the product used its current env context company
instead of the one provided explicitly in the parameters. This caused inconsistencies in valuation logic
when the method used differed between the given companies, which results in a missing `account_move_id`.

**Fix:**
Ensure that the product is evaluated in the correct company context by using
`self.with_company(company.id)` when looping on the products before the valuation logic.

opw-4732067

closes #216968

X-original-commit: 6731163
Signed-off-by: Steve Van Essche <[email protected]>
Signed-off-by: Florentin Delcourt (defl) <[email protected]>
Issue:

Copying a bom with an operation will not reassign the copied
operation to the by product lines.

Steps to reproduce:
- In the settings enable operations and by-products
- Create a bom with an operation op1 and a by product produced in op1
- Copy the bom
> The copied by product line refer to the operation of the original bom
> this can be checked by archiving the copied operation which should
> erase its link with the copied by product line but will not

Cause of the issue:

When a bom is copied, the new operation is reassigned to the new bom
lines by these lines:
https://github.com/odoo/odoo/blob/9cb4230a6b2252243a8e0546a1a8f5bc52e74009/addons/mrp/models/mrp_bom.py#L230-L247
However, nothing is made for the by product lines.

opw-4788252

closes #217831

X-original-commit: 75668dd
Signed-off-by: William Henrotin (whe) <[email protected]>
Signed-off-by: Lancelot Semal (lase) <[email protected]>
**Problem:**
When cashier A is assigned to an order, then changed during the payment
screen process to cashier B, the receipt will display Served by cashier A.
It should be Served by cashier B as this is the one that closed the order.
This used to work until 18.0.

**Steps to reproduce:**
- Add some employees to your PoS, using pos_hr
- Select one of them, then change to another one during the payment screen, before paying
- Pay for it, the receipt screen still displays the first cashier

**Why the fix:**
The receipt should first display the current cashier, not the order's
cashier. It was done the other way around before this commit. We now
first display the session's cashier, then if not available we display
the order's cashier.

opw-4868038

closes #217374

X-original-commit: 1abbce3
Signed-off-by: Adrien Guilliams (adgu) <[email protected]>
Signed-off-by: Arthur Nanson (artn) <[email protected]>
Steps to reproduce
===============
1. Create a company called Acme.
2. Create a child contact of type Invoicing address but do not give it any name.
3. Go to Sales.
4. Open send mail composer and add this partner as a recipient.
---> The recipient tag will show Unnamed.

From [Commit 1], the fallback for partner without name and email was unnamed.

After this commit, consider display_name for the tag's text before falling back
to the `Unnamed`.

[Commit 1]: cba81ac

Task-4812554

closes #211830

Signed-off-by: Warnon Aurélien (awa) <[email protected]>
In 0f3a9de we added helpers to create test taxes in
`AccountTestInvoicingCommon`, not realizing that they were already in
`TestTaxCommon`.

This commit removes them from `TestTaxCommon` to avoid the duplication.

task-none

closes #217779

X-original-commit: aae91c9
Signed-off-by: Laurent Smet (las) <[email protected]>
Signed-off-by: Antoine Dupuis (andu) <[email protected]>
Before this commit:

- Pressing backspace while a columns are selected could remove the base
  container inside that column.

After this commit:

- Multiple columns can no longer be selected using mouse or Shift+Arrow.
- Selecting columns using “Select All” (e.g., Ctrl+A) and pressing backspace
  will remove the columns.

task:4783325

X-original-commit: 7315de4
Part-of: #217425
Signed-off-by: David Monjoie (dmo) <[email protected]>
Before this commit:

- When a table row or column was not fully selected, pressing Backspace would
  replace the contents of the selected td elements with a br tag.

After this commit:

- Pressing Backspace in a partially selected row or column now replaces the
  content of the selected td elements with a base container instead of a br tag.

task:4783325

closes #217425

X-original-commit: 78309bb
Signed-off-by: David Monjoie (dmo) <[email protected]>
When [1] introduced a cached version of the form data to compute
visibility, it did not take into account the values that are completed
through `prefillValues`. Because of this, input events are required for
those to be taken into account.

This commit fixes this by re-evaluating the form content after the
execution of `prefillValues`.

Steps to reproduce:
- Drop a "Form" snippet
- Make "Your Question" field visible only if "Your Email" is set.
- Save page.

=> Upon display, the email is populated with the user's email, but "Your
Question" did not become visible.

[1]: 027ce4e

task-jke

closes #217729

Signed-off-by: Francois Georis (fge) <[email protected]>
Before this commit an error can appear if there two delivery line.
Use method in delivery module to compute delivery amont.
This method can compute if there are two line with delivery
https://github.com/odoo/odoo/blob/18.0/addons/delivery/models/sale_order.py#L27

closes #217705

X-original-commit: 7c55bed
Signed-off-by: Antoine Vandevenne (anv) <[email protected]>
Before, the previous document chaining was not sent in the
XML because with the t-if, if the variable name is unknown,
it will not complain and just see it as False. (like for the
first invoice that has no previous)

Now, passing the correct variable name, the previous document
will be included

opw-4814241

closes #217788

X-original-commit: 4aa87ad
Signed-off-by: Ruben Gomes (rugo) <[email protected]>
Signed-off-by: Josse Colpaert (jco) <[email protected]>
The test in this module imports a common setup from
account_reports which is not a dependency, and is not
auto installed when the test runs with comunity modules
only. This fix replaces the setup by the community one
AccountTestInvoicingCommon.

closes #217778

X-original-commit: 591acd3
Signed-off-by: Jinane Maksoud (maji) <[email protected]>
…ed from sale

In Hungary the rate of the currency of an invoice is based on the delivery date.
When creating an invoice from Sale, the `currency_rate` of the lines is the one of the invoice date not of the delivery.

Steps to reproduce:
- Install l10n_hu_edi and witch to Hungarian company
- Have two different rates for EUR<->HUF
- Create a pricelist in EUR
- Create a quotation with the pricelist and confirm
- Validate the delivery on another date (which has a different rate from today)
- In the sale order click "Create Invoice"
- The generated invoice has lines using the rate for today

Cause:
The field `delivery_date` is `precompute=True` but on creation of the invoice, at the time of the precompute, `line_ids` is still `False`.
So the invoice is first computed without the delivery date, the currency rate used is the one of the invoice date. When the delivery date is written on the invoice, the line balance is not recomputed as the field `balance` is marked as `protected`.

Solution:
As the field `delivery_date` was implemented in `account_move` for localizations including l10n_hu, there are no reason to contain the fix only to l10n_hu.
So we add the value of `delivery_date` in the dictionnary used to create a new invoice from sale with the method `_create_invoices`. This way the delivery date is there on creation of the invoice and is used for the currency rate.

opw-4756568

closes #217876

X-original-commit: 459803b
Signed-off-by: Ruben Gomes (rugo) <[email protected]>
Signed-off-by: Mathieu Coutant (mcou) <[email protected]>
bug introduced in: ea48070

Steps to reproduce the bug:
- Go to "Inventory" → "Operations" menu → "Replenishment"
- Click "New" to create a new replenishment rule

Problem:
Traceback is triggered:
```
in _float_check_precision assert precision_rounding > 0,\
^^^^^^^^^^^^^^^^^^^^^^ AssertionError: precision_rounding must be
positive, got 0.0
```

As the product is not set, the `product_uom` is not set either,
which leads to a `product_uom.rounding` of 0.0.

Opw-4925719
Opw-4928957
Opw-4926504
Opw-4925919
Opw-4928684
Opw-4925080
Opw-4928788
Opw-4926719
Opw-4927440
opw-4928540

closes #217960

X-original-commit: 6218559
Signed-off-by: Quentin Wolfs (quwo) <[email protected]>
Signed-off-by: Djamel Touati (otd) <[email protected]>
Before this commit:
When calculating the `price_unit` for stock moves from purchase order lines,
the `remaining_qty` and `remaining_value` could be imprecise. Standard float
comparisons for these remaining amounts could lead to incorrect `price_unit`
calculations if, for example, `remaining_qty` was a very small float near zero.
This could result in inaccurate stock valuations, particularly when currency
conversions were involved or when landed costs were applied.

For example, 70.00000003 is rounded **up** to 70.00001 (with 5 digits),
resulting in a quantity difference of 0.00001, which incorrectly
inflates the unit cost.

After this commit:
Change the rounding method to 'HALF-UP' instead of the default 'UP' to improve
precise result for quantities.

Steps to reproduce:
1. Configure a product with AVCO real time. Set decimal precision for price
   and UoM to 5 digits.
2. Create a Purchase Order (e.g., 190 units @ $110/unit).
3. Receive 70 units and create a backorder
4. Create and post a bill for the initially received quantity.
5. Apply a landed cost to the picking of the first 70 units.
6. Create a draft bill for the remaining quantity on the PO.
7. Receive the remaining 120 units from the backorder.
8. The product's cost explodes

opw-4705224

closes #217977

X-original-commit: 60a5ba0
Signed-off-by: Tiffany Chang (tic) <[email protected]>
Signed-off-by: Walravens Mathieu (wama) <[email protected]>
@bt-admin bt-admin merged commit fe377f8 into brain-tec:saas-18.2 Jul 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.