Daily updates from Odoo
Thursday, October 30, 2025
5 changes · master
Resolved issues and error corrections
Quality checks linked to a camera now correctly trigger the connected IoT Box to take a picture instead of opening a manual file upload. The update also improves retrieval of measurements from IoT devices, helping shop floor checks run as intended.
Original PR description
Even after linking a camera to a quality control point, we still ended up in the file uploader instead of calling the *take picture* action on the IoT Box. This commit fixes the issue by restoring the call to the IoT Box, updating it to use the `iot_http` service. It also ensures measurements are correctly fetched from the IoT Box. Forward-Port-Of: odoo/enterprise#98071
Batch payments now show a clear warning when SEPA Credit Transfer partners are missing required country or city details for structured addresses. This helps users fix partner records before generating payment XML files that would become invalid under the upcoming rules.
Original PR description
Starting from November 15th, 2026, SEPA Credit Transfer (SCT) payments require both the partner's country and city to be defined when using structured addresses. If missing, the generated XML file will be invalid. This change adds a non-blocking red banner on the batch payment form to warn users and provide a link to review the affected partners. task-5156613 Forward-Port-Of: odoo/enterprise#97598
Default values set on salary input rules now appear automatically when those rules are selected for employees or payslips. This prevents payroll teams from having to re-enter expected default amounts and reduces the risk of incorrect payroll data.
Original PR description
## Steps to reproduce 1. Make a new salary rule with condition based on 'salary input'. 2. Enable 'Input on' employee and payslip both and set a default value. 3. Go to employees 'Payroll tab' and 'add inputs', then select the rule. 4. Similary in 'Payslip' on 'Salary inputs' tab, 'add inputs' and select the rule. ## Issue - The default values on the employee and payslips were not being reflected on selection of the rule. ## Fix - Modified '_update_payroll_properties'. It now fetches active_id and updates properties based on the default values of input rules. - Updated '_compute_payslip_properties'. Ensures that payslips without common payroll properties fall back to the default values of the related input rules. task-5072646
Assets created from vendor bills now calculate their original value using only the deductible portion of the related bill line. This prevents overstating asset values when part of an expense is not deductible, improving accounting accuracy.
Original PR description
We allow the user to create an asset from a bill with lines which are not fully deductible but the created asset's original value is the based on the entire balance of the journal item. It should be only the deductible part. task-5156256 Forward-Port-Of: odoo/enterprise#98327 Forward-Port-Of: odoo/enterprise#97505
This fix prevents the Italian Point of Sale from crashing when a cashier deletes a product line from an order. It improves checkout reliability for Italian POS setups using fiscal printer localization, avoiding interruptions during sales.
Original PR description
Currently POS crashes with the Italian localization if they delete a product line. Steps to reproduce: ------------------- * Install l10n_it_pos and switch to the IT company * Create a pos and…
Currently POS crashes with the Italian localization if they delete a product line. Steps to reproduce: ------------------- * Install l10n_it_pos and switch to the IT company * Create a pos and configure Italian printer * Open shop * Add a product to cart * On the numpad try deleting the line > Observation, pos crashes Traceback: TypeError: Cannot read properties of undefined (reading 'tax_details') Why the fix: ------------ When first hitting the delete button we will put the price unit to 0. With that we have ``` const reduced_base_lines = Object.values(base_line_map).filter( (base_line) => !floatIsZero(base_line.price_unit, base_line.currency_id.decimal_places)); ``` returning an empty list. Utlimately making `reduce_base_lines_to_target_amount` return an empty list. `[][0]` returns `undefined` and we were passing `[undefined]` in parameters of `fix_base_lines_tax_details_on_manual_tax_amounts`, we enter the loop with undefined and try to access some variables. We also set `l10n_it_epson = False` in order to avoid recursively looping. opw-5184113 Forward-Port-Of: odoo/enterprise#98229