Daily updates from Odoo
Saturday, July 25, 2026
5 changes · saas-18.3
Enhancements to existing features
The Peru EDI localization now reflects SUNAT's updated debit note reason requirements effective August 1, 2026. Businesses issuing debit notes in Peru will see the new “Penalties” reason and the updated “Other concepts” label, helping keep electronic invoicing compliant.
Original PR description
Purpose: SUNAT has issued new validation rules and database updates for EDI. The changes are mandatory and is effective starting August 1, 2026. To stay compliant, the debit note reasons need to be updated when creating a debit note in Peru. A new code 13 with label "Penalties" is added to the list of reasons. Code 03 reason need its label to be updated to "Other concepts." Task [link](https://www.odoo.com/odoo/project.task/6312025) task-6312025 Forward-Port-Of: odoo/enterprise#122320
Resolved issues and error corrections
The WinBooks import now avoids incorrectly combining contact records that share the same number but have different VAT details. This prevents valid imports from failing due to mismatched VAT and country information, especially when supplier and customer records overlap.
Original PR description
When importing a WinBooks zip, contacts sharing the same number might fail VAT validation if distinct contact data is merged incorrectly. Steps to reproduce: - Create a database with the Belgian…
When importing a WinBooks zip, contacts sharing the same number might fail VAT validation if distinct contact data is merged incorrectly. Steps to reproduce: - Create a database with the Belgian localization installed - Install the account_winbooks_import module - Navigate to Accounting > Configuration > Settings > Initial Setup > Import - Import the WinBooks zip Issue: The import fails with the following error: The VAT number [AAAAAA] for partner [BBBBBB] does not seem to be valid. Note: the expected format is BExxxxxxx. Analysis: In WinBooks, contacts can be of type Supplier or Customer, and it is possible for a supplier and a customer to share the same number. During the import, the system will merge contacts if found with the same number. In the specific case, the VAT number from one contact without country is combined with the country information from another contact, resulting in a VAT validation error. This change prevents the merger of partner data if their VAT numbers are explicitly different. opw-6251772 Forward-Port-Of: odoo/enterprise#119579
backport of b07624fdae794ae129fbe31cebf7a158be8bf39e - Install l10n_it_edi - Create and confirm vendor bill - Use studio to make the field l10n_it_edi_transaction editable - Input any value - The reset to draft button disappears In _compute_show_reset_to_draft_button we hide the reset to draft button if l10n_it_edi_transaction is populated in order to filter out moves already sent to the tax agency. Normally invoices and bills sent to the SDI cannot be modified. However it is possib
Original PR description
backport of b07624fdae794ae129fbe31cebf7a158be8bf39e - Install l10n_it_edi - Create and confirm vendor bill - Use studio to make the field l10n_it_edi_transaction editable - Input any value - The reset to draft button disappears In _compute_show_reset_to_draft_button we hide the reset to draft button if l10n_it_edi_transaction is populated in order to filter out moves already sent to the tax agency. Normally invoices and bills sent to the SDI cannot be modified. However it is possible to import vendor bills from the SDI, and their transaction field is also imported. It should be possible to modified those imported invoices. opw-6385498 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#277994
**STEP TO REPRODUCE** 1. Install l10n_fr_pdp and select the french company. 2. Go on a contact form, under invoicing, select 'by Approved Platform' for invoice sending. 3. Click on the eInvoice format selection, and notice the format 'France E-invoicing (UBL 2.1)' is not there. Note: with other invoice sending values, it shows up. **CAUSE** In the `_get_ubl_cii_formats_info()` override in `l10n_fr_pdp`, we declare the ubl_21_fr format as not being usable with the peppol invoice sending me
Original PR description
**STEP TO REPRODUCE** 1. Install l10n_fr_pdp and select the french company. 2. Go on a contact form, under invoicing, select 'by Approved Platform' for invoice sending. 3. Click on the eInvoice format selection, and notice the format 'France E-invoicing (UBL 2.1)' is not there. Note: with other invoice sending values, it shows up. **CAUSE** In the `_get_ubl_cii_formats_info()` override in `l10n_fr_pdp`, we declare the ubl_21_fr format as not being usable with the peppol invoice sending method. However, the Approved Platform invoice sending (used to send ubl_21_fr) *is* the peppol invoice sending method in disguise. (we reused the peppol invoice sending method because pdp and peppol are very similar). opw-6387796 Forward-Port-Of: odoo/odoo#276276
In Discuss, clicking a livechat chatbot member from the member list can lead to a traceback because the avatar card is opened with member.persona.userId, while chatbot operators can be partner-only records with no related user. This happens when the bot member is not filtered out as is_bot, notably in the chatbot script test flow where the channel has no livechat_channel_id. We cannot simply block on a missing member.persona.userId: the user relation may exist but not be fetched yet. In
Original PR description
In Discuss, clicking a livechat chatbot member from the member list can lead to a traceback because the avatar card is opened with member.persona.userId, while chatbot operators can be partner-only records with no related user. This happens when the bot member is not filtered out as is_bot, notably in the chatbot script test flow where the channel has no livechat_channel_id. We cannot simply block on a missing member.persona.userId: the user relation may exist but not be fetched yet. In the is commit we resolve the partner through mail.store.getPartner() before opening the avatar card, so valid users are fetched lazily and true partner-only records are ignored. task-4642940 Forward-Port-Of: odoo/odoo#275284