Daily updates from Odoo
Thursday, July 31, 2025
10 changes
Enhancements to existing features
Peruvian electronic invoices now export down payments in the format required by SUNAT, avoiding negative quantities that are not accepted by the government. This helps businesses issue compliant final invoices when prepayments or down payments are involved.
Original PR description
By default, the UBL module represents prepayments / downpayments as a InvoiceLine in the final invoice with a negative quantity and amount. However, SUNAT and the Peru Government does not allow negative quantities, and instead require this information to be stored within the PrepaidPayments node and referred to via AdditionalDocumentsReference. task-4605204 Forward-Port-Of: odoo/enterprise#87692
Bank reconciliation can now create separate automatic matching rules for different statement labels even when they use the same account. This helps businesses automate recurring transactions like rent or location-related payments more accurately without one rule blocking another.
Original PR description
- Before this pr: The automatic creation of reco model is constrained only by company, account and journal. So if the reco model with config exists then new reco model will not be created. - After…
- Before this pr: The automatic creation of reco model is constrained only by company, account and journal. So if the reco model with config exists then new reco model will not be created. - After this pr: Now two more constraints are added 'match_label' and 'match_label_param' in the searching domain. So if the reco model with this config does not exists then new model will be automatically created. - Example: Suppose we have 3 statement lines with 'Rent' as a label in them, and 3 statement lines with 'Location' as a label in them. So before this pr when user sets same account on the first two lines with 'Rent' label will create a new reco model with account name as a model name and common substring from labels of both lines will be set as a match_label_param of the model. And then user next set that same account on the first two lines with 'Location' label will not create a new reco model automatically, because for this config one reco model already exists. But now after this pr when user sets same account for first two lines with 'Location' label will also create a new reco model automatically with a common substring from labels of both lines will be set as a match_label_param of the reco model. Related Community PR: https://github.com/odoo/odoo/pull/215525 Task: 4876374
The Partner Ledger report has been reworked to make its data handling and display easier to maintain and more consistent. This should support a more reliable accounting reporting experience and make future enhancements easier to deliver.
Original PR description
task-4245219
Date and time fields are now easier to read by default, while still allowing precise editing when selected. Language settings for date and time formats were simplified, making configuration more consistent across affected apps.
Original PR description
The dates became more readable. The datetime_field has been changed to show a button with a readable date and when it's focused, the button is replaced with the real input and the date inside it take the format from res.lang. The prop "condensed" has also been removed. The res.lang has also been simplified. Date/time_short_format fields have been removed. The remaining fields are now selections and not char input. TASK-ID: 4613138
This update adds country-specific EC Sales List and Intrastat reporting rules for Austria, Germany, and the Netherlands, including relevant deadlines and filing periodicities. It helps businesses in these countries stay aligned with local compliance requirements while also including several accounting report stability fixes.
Original PR description
Following the implementation of the Tax returns feature in 18.3 which was focused on the general implementation and Belgium, we want to add the specification for other country and in this case Austria, Germany, The Netherlands. Adding EC sales list, Intrastat specific deadlines and periodicities. task-4776236
Users now see a clearer popup explaining why signed documents cannot be deleted. This replaces a technical or unclear error, making the signing workflow easier to understand and reducing confusion.
Original PR description
Before: - Deletion of signed documents(`state='signed'`) was blocked with a technical or unclear error message. After: - A more user-friendly popup message is shown when attempting to delete a signed document. Impact: - Improve user experience by clearly explaining why deletion is not allowed for signed documents task-4879592
Room booking and VoIP features were updated to work with a new browser tab coordination mechanism. This helps ensure these services behave reliably when users have Odoo open in multiple tabs.
Original PR description
https://github.com/odoo/odoo/pull/218332 introduced a new master tab election mechanism. Adapt enterprise code for it. community: https://github.com/odoo/odoo/pull/218332
Payroll salary rules can now mark generated journal entry lines with the employee as the related partner. This improves payroll accounting visibility by making it easier to track salary-related balances and chart of accounts activity by employee, including for net salary rules across supported localizations.
Original PR description
Add the option on Salary rules to set the employee as the partner on the Journal Entry lines generated from the payslip. This works in both batched and non-batched move lines. Adjust all the NET salary rules data to show partner per default. This allows to track the chart of accounts through the employee's partner. task-4652900
IoT device records now show which Point of Sale they are configured with. This makes it easier for users to identify and manage devices used in PoS setups without searching through separate configuration screens.
Original PR description
In order to ease the configuration and use of IoT devices in PoS, we now display the PoS where devices are configured directly on device records. Task: 4901312 Forward-Port-Of: odoo/enterprise#88819
The Belgian POS Blackbox flow is easier to understand and use, with clearer employee identification wording, better clock-in guidance, and simpler visual status indicators. Installing the Blackbox module from IoT now refreshes the page so users can continue with the updated setup immediately.
Original PR description
- renamed "Social security identification number (INSZ or BIS)" -> "National Register Number", - added page reload after installing module "pos_blackbox_be" from iot app, - improved message "User must be clocked in" to explain why and how to do it, - replaced the clocked (In)/(Out) status by a green/red icon on the user. Task: 4978644 Forward-Port-Of: odoo/enterprise#91266