Wednesday, July 9, 2025
7 changes · saas-18.3
Resolved issues and error corrections
This fix stops the system from automatically assigning a newly connected IoT device as a weighing scale when it may be misidentified on first startup. It prevents stores from ending up with the wrong device linked to their Point of Sale configuration after the IoT box restarts.
Original PR description
If on first boot after flashing the iot box a blackbox is connected the iot box doesn't have the blackbox driver so it's identified as Adam scale With the pos_iot auto configuration we would first send it as a scale to the database and it would be set as a scale to the selected pos config. After odoo restart on the iot box it gets detected as blackbox correctly and its name changes. Now after it's sent to the db the user ends up with a blackbox in the scale field in PoS config. This PR removes the automatic scale configuration so that doesn't happen
Users can now open and generate field service task reports from the portal even when the optional reporting module is not installed. This prevents a portal error and keeps customer-facing task details accessible.
Original PR description
An error occurs when a user attempts to generate a report from the portal because the `industry_fsm_report` module is not installed. **Steps to reproduce:** * Install `industry_fsm` * Field Service>New Task>log time sheet using `start` button * open portal view( `/my/tasks` )> Your created task> `View details` `AttributeError: 'project.task' object has no attribute '_get_report_base_filename'` **Solution:** * Define `_get_report_base_filename` inside `industry_fsm` instead of `industry_fsm_report`. **Sentry-6685756279** Forward-Port-Of: odoo/enterprise#89615 Forward-Port-Of: odoo/enterprise#87949
The UAE Corporate Tax Report now prevents taxable and tax amount lines from dropping below zero when profits are under the exemption threshold. This avoids confusing negative tax amounts and gives businesses a more accurate view of what they owe.
Original PR description
The Corporate Tax Report was incorrectly showing a negative"Corporate TAX Amount" when the taxable profit fell below the exemption threshold (e.g 375,000 AED). This issue happened because the formula used to compute the Corporate TAX Amount was: `AE_CORP_TAXABLE.balance * (AE_CORP_TAX_PERC.balance / 100)` This formula applies the tax rate even when `AE_CORP_TAXABLE.balance` is negative, which results in an incorrect negative tax amount in the report. Since the report engine doesn't support conditional logic like `max(...)` or `> 0` in XML formulas, we couldn't fix this in the formula definition directly. To solve the issue, we added a check in the Python report handler `_custom_line_postprocessor` to override the value of the Corporate TAX Amount and cap it at zero when it would otherwise be negative. Steps to reproduce: In run bot or any db go to Corporate tax report OPW-4739052 Forward-Port-Of: odoo/enterprise#86087
The POS Belgian fiscal device integration now starts listening for a response before sending a request to the IoT device. This prevents missed replies that could leave the checkout process waiting indefinitely.
Original PR description
Before this commit, the listener to the longpolling or the websocket was added (subscribe for websocket and addListener for longpolling) after the action was sent to the IoT. The answer could be sent before we even listen to it so the answer was never received. This could cause infinite waiting.
Bookkeepers can now open, close, and reset tax returns without being blocked by administrator-only setup or lock date permissions. This keeps tax return workflows moving smoothly for accounting teams and reduces the need for administrator intervention.
Original PR description
- Trying to open the returns form the dashboard failed for bookkeepers when no opening date was set, since the wizard used to set them is restricted to administrators only. - When closing a tax return, an access error was triggered when trying to set the lock date. - When resetting a tax return, an access error was triggered when trying to set the lock date.
This fixes an issue where employee document shortcuts could miss files stored in subfolders under the HR folder. Users with the right sharing permissions can now access those HR documents as expected, reducing confusion and missing file reports.
Original PR description
Following this: [85156](https://github.com/odoo/enterprise/pull/85156) the domain has been incorrect, leading to some documents not showing up anymore when these should have. This PR aims to solve this issue by correcting the domain at fault Task: 4922346 Forward-Port-Of: odoo/enterprise#89548
Budget reports now handle negative purchase order lines, such as discounts, correctly when bills are confirmed. This prevents an extra duplicated discount amount from appearing, improving budget accuracy for project cost tracking.
Original PR description
Steps to reproduce: - Create a new Budget with budget line having Project [TEST] - Create a purchase order with 2 lines: 1. Product A, analytic [TEST], price unit 100, qty 1 2. Product B, analytic [TEST], price unit -10, qty 1 - Confirm the PO, mark products as received - Create the bill and confirm - Go back in PO, click on Budget smart button, open list view Issue: The budget report will correctly show a line for each invoiced line, but an extra line with double discount amount is present Occurs because we use a SQL code to replicate the qty_invoiced field of a purchase order line, but we adjust the sign based on the aml balance instead of taking into account the move type opw-4775631 Forward-Port-Of: odoo/enterprise#89545