Daily updates from Odoo
Wednesday, October 15, 2025
7 changes · master
New functionality added to Odoo
Belgian accounting users can now connect journals to Codaclean through Odoo's IAP service to automatically or manually fetch CODA bank files. This reduces manual bank statement handling, with a small backport fix ensuring imports safely stop when no CODA files are provided.
Original PR description
This module adds support for "codaclean" integration. CODA files can be periodically (or on demand) fetched from codaclean and imported into bank journals. The module only connects to the IAP server.…
This module adds support for "codaclean" integration. CODA files can be periodically (or on demand) fetched from codaclean and imported into bank journals. The module only connects to the IAP server. The IAP side does the actual calls to codaclean (with a secret API key). To use the module you have to create a connection to IAP / codaclean and set up a bank journal: - To manage the connection to IAP / codaclean go to Settings -> Accounting -> Codaclean -> Manage Connection - To set up the bank journal you need to configure the following in the "Journal Entries" tab on the journal: - Put the IBAN in the "Bank Account Number" field - Select "Codaclean Synchronization" for the "Bank Feeds" field Coda files will be automatically fetched 2 times per day via the scheduled action called "Accounting: Sync Coda Files from Codaclean". They can also be manually fetched by clicking "Fetch from Codaclean" below the journal on the accounting dashboard (only available when the journal and connection are setup correctly). On an empty journal we start fetching from 1 year ago. When the journal is not empty we start fetching after the last bank statement / bank statement line in the journal. task-4844423 backport of commit 518ab9e Forward-Port-Of: odoo/enterprise#96903 Forward-Port-Of: odoo/enterprise#95747
Enhancements to existing features
Austrian POS companies with an email address will now automatically receive an invitation to access their Fiskaly dashboard. If the company email changes, a new invitation is sent, and Fiskaly organization details stay updated even while authentication is pending.
Original PR description
In this commit: ------------------ - If a company email is set in the company information, we send an invitation to that email, allowing the user to access their company data on the Fiskaly dashboard by logging in using the company email. - If the email is later updated, access invitation will automatically be sent to the new email. - If the fiskaly organization exists, we should update the organization data even if the authentication is remaining to keep the data uptodate. Related PR: https://github.com/odoo/iap-apps/pull/1098 Task: 4881786 Forward-Port-Of: odoo/enterprise#88106
Online orders handled through Urban Piper are now protected from manual deletion in the point of sale. This keeps order records aligned with the normal restaurant workflow, where such orders should be cancelled by the aggregator or rejected by the restaurant instead.
Original PR description
Before this commit: =================== - We were able to delete online orders, but generally, online orders are either cancelled by the aggregator or rejected by the restaurant. After this commit: ================== - Online orders can no longer be deleted. Task: 496669 Forward-Port-Of: odoo/enterprise#95074
Peruvian electronic invoices can now include the required withholding reference when selling to customers classified as withholding agents. This helps businesses comply with local invoicing rules by reflecting the total withholding amount correctly in the XML without affecting invoice totals.
Original PR description
Some customers in Peru are considered "agentes de retención", and as such have special considerations that are necessary. We must perform specific actions when working with these customers, when selling to them we must: - recieve a specific document from the customer (A followup task will add this support for companies to generate this document) - Include a retention reference in our XML. This is represented as a specific `AllowanceCharge` node that is the sum of all of the Withholding taxes on the lines with the specific code of 62. We know an invoice is to a withholding customer because all lines must have a tax that is a part of the withholding tax group. This withholding tax is not included in the monetarytotals, tax totals, or invoice line values. And there can be only one AllowanceCharge node per invoice, not one per line. task-4989463 Forward-Port-Of: odoo/enterprise#97071 Forward-Port-Of: odoo/enterprise#94504
Attachments shared during a website helpdesk live chat are now carried into the related lead description in a cleaner, consistent format. This helps sales and support teams keep customer context and supporting files together when following up.
Original PR description
This commit PR attachment conversion logic with `_attachment_to_html` introduced in the related Community PR. Related: https://github.com/odoo/odoo/pull/227563 Task-4777564 Forward-Port-Of: odoo/enterprise#94970
Resolved issues and error corrections
IoT users and administrators can now open IoT screens even when they do not have Point of Sale access. POS-specific options are only shown or used for users with the right permissions, preventing unnecessary access errors.
Original PR description
Before this commit, if an IoT user/admin attempted to access any IoT view while `pos_iot` was installed, they would get a permission error if they were not also a POS user. After this commit, we check if the user is in a POS group before showing any POS related fields. We also check the group when autoconfiguring a new IoT box with a POS, this feature will simply be skipped if the user cannot access POS. Forward-Port-Of: odoo/enterprise#97133
This fix prevents spreadsheet list editing from crashing when a referenced field was removed during migration or after deleting a custom field. Business users can continue editing affected lists from the side panel instead of being blocked by an error.
Original PR description
If a field disappeared from a list following a migration or a deleted custom field, the list could no longer be edited in the sidepanel because we tried to access the missing field info (name & string) Task-4915281 Forward-Port-Of: odoo/enterprise#97179 Forward-Port-Of: odoo/enterprise#96158