Daily updates from Odoo
Thursday, December 4, 2025
27 changes · 18.0
New functionality added to Odoo
This update adds support for the ICE (Identifiant Commun de l'Entreprise), a mandatory identification number for Moroccan businesses. It ensures that invoices issued to Moroccan companies include this number, complying with local regulations. This change impacts invoicing processes for transactions within Morocco.
Original PR description
Reason: The ICE (Identifiant Commun de l'Entreprise) is an identification number assigned to businesses and legal entities for various administrative and legal purposes in Morocco. If the partner has one, it must be indicated on the invoice. The ICE number is supposed to be put on all the invoices made to Moroccan companies, whatever the country of the company issuing those invoices. We hence add that directly into the account module. task-4879950 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#238580 Forward-Port-Of: odoo/odoo#237068
Enhancements to existing features
This update allows users to include multiple attachments when sending invoices through the Peppol system. These attachments are now embedded within the XML document format, streamlining the process for exchanging supporting documentation. This enhancement improves the efficiency and compliance of Peppol transactions.
Original PR description
[IMP] account: multiple embed files peppol This commit allows user to send multiple attachments through peppol. The attachments will be embedded into the xml under the `AdditionalDocumentReference` tags task-5103539
This update ensures greater clarity and accuracy in Odoo's queries by consistently using fully qualified column names (e.g., `account_move.balance`). This prevents ambiguity when joining tables and avoids potential issues with custom modules, ultimately strengthening data reliability.
Original PR description
Use fully qualified column names when constructing a query, more specifically, include the table that the column is originating from. The rule of thumb is that we always include the table name alongside the column name. In this particular case, the query will do a `JOIN` on `account_move` and there may be ambiguousness as to whether to take the `balance` column from `account_move` or `account_move_line`. The former column used to exist in the past and was likely kept for data retention purposes. Hence, there are still databases in 17.0 where `account_move.balance` exists. Another reason to include the table name is to prevent confusion with columns coming from custom modules. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237181
This update enhances the handling of Chilean electronic invoices by ensuring document folio numbers align with available CAF files. A key change requires a valid owner document (subject_serial_number) for certificates, improving data integrity and compliance with SII regulations. This update focuses on stability and accuracy of Chilean electronic invoice generation.
Original PR description
This pull request introduces improvements to the handling of Chilean electronic document sequences, enforces stricter validation for certificate data, and modernizes string formatting throughout the…
This pull request introduces improvements to the handling of Chilean electronic document sequences, enforces stricter validation for certificate data, and modernizes string formatting throughout the codebase. The most significant changes focus on ensuring that document folio numbers are correctly managed in accordance with available CAFs, making the certificate model more robust, and updating code style for clarity and consistency. This improvement is mostly made because CAFs have expiration dates and fixed folio numbers. If the expiration date is reached but the folios were not fully consumed, the system will try to generate a document with following number in the sequence but an error will be raised because that number belongs to an expired CAF, althought the user had already uploaded a new CAF. To fix this, whenever the system looks for the highest number to set to a document, it previously check if that number is between the folio numbers of a valid CAF file. ### Chilean electronic document sequence management * Added `_get_last_sequence` method to `account_move.py` to ensure that the folio number used for Chilean electronic documents (DTE) is valid and corresponds to an available CAF. If no CAF is available for the current folio, the sequence is reset using the document type's prefix and starting number. ### Certificate model validation * Made `subject_serial_number` a required field in the `Certificate` model, enforcing that every certificate has a valid owner document and improving data integrity. We made this change to prevent the field being empty after loading the certificate in Odoo, since it is required by the SII to validate invoices.
This update improves the calculation of EPF (Employee Provident Fund) taxes in the My HR Payroll module. It now correctly accounts for rounding to ensure accurate tax amounts are deducted, aligning with the latest legislation. This change enhances payroll accuracy and compliance.
Original PR description
Previous behavior did not account for the rounding of the amount of tax to the next ringgit. Also the employee's rate has been updated in accordance to the legislation. task-5286179
This update clarifies the labeling of a field used when making salary adjustments within the HR payroll module. The change ensures users understand exactly where this input is accessible, leading to a more intuitive and efficient adjustment process. This improves usability and reduces potential errors.
Original PR description
This change ensures the label accurately reflects where the field is accessible and providing better clarity for users when working with salary adjustments. Task: 5375187
This update enhances user privacy by making it easier for customers to review and update their cookie consent choices. Previously, users could only access the Cookie Policy through a popup, but now a permanent link is available in the website footer, allowing for ongoing control.
Original PR description
This improvement enhances user control over cookie preferences by making the Cookie Policy page (/cookie-policy) more accessible and allowing users to modify their consent at any time. **Issue:** -…
This improvement enhances user control over cookie preferences by making the Cookie Policy page (/cookie-policy) more accessible and allowing users to modify their consent at any time. **Issue:** - Previously, the only way to access the Cookie Policy page was through the link in the cookie consent popup. However, once users accepted cookies, the popup was no longer displayed, making it impossible to navigate to the policy page later. - Additionally, the Cookie Policy page had a button to reopen the cookie consent popup, but it was only visible if cookies were not accepted. Once cookies were accepted, the button was hidden, preventing users from changing their preferences. **Improvements:** - Added a permanent link to the Cookie Policy page in the copyright footer, ensuring it remains accessible at all times. - The cookie consent toggle button now remains visible even after a user has accepted cookies, allowing them to update their preferences at any time. task-[4502416](https://www.odoo.com/odoo/project/974/tasks/4502416) Forward-Port-Of: odoo/odoo#203409
Resolved issues and error corrections
This update fixes a bug that prevented users from creating multiple rental orders with the same serial number. The issue stemmed from an incorrect assumption about stock movements, leading to errors. The fix ensures accurate availability calculations and allows for proper management of rental orders with multiple associated serial numbers.
Original PR description
Steps to reproduce: 1. Go to Rental module > Configuration > Enable Rental Transfer 2. Create a product and Update quantity by assigning "By Unique Serial Number" 3. Create a rental order 4. Unhide…
Steps to reproduce: 1. Go to Rental module > Configuration > Enable Rental Transfer 2. Create a product and Update quantity by assigning "By Unique Serial Number" 3. Create a rental order 4. Unhide the "Reserved Lot" field, select the lot created earlier, and confirm 5. Open the Delivery(Stat button), assign lots to both deliveries 6. Create a second rental order (same or different user), assign the same lot, confirm, and process delivery 7. Create a third rental order, enter the same reserved lot → traceback occurs Issue: - Traceback with error `ValueError: Expected singleton: stock.move(88, 90)`. Cause: - The compute method `_compute_available_reserved_lots` accessed `move_id.date_deadline` directly, assuming a singleton. When multiple stock moves existed for the same lot, it triggered a singleton error. - When the same lot is linked to more than one delivery, the system crashed when checking available reserved lot. Solution: - Handled multiple stock.move.line records per lot by iterating over them instead of assuming a singleton. - Replaced direct access to move_id.date_deadline with an any() check to safely evaluate deadlines. - This prevents singleton errors when the same lot is linked to multiple deliveries and ensures correct availability calculation. opw-4963263 Forward-Port-Of: odoo/enterprise#94299
This update fixes an issue where failed quality checks didn't correctly move stock items to designated failure locations. The fix now triggers a wizard allowing users to confirm the failure and select the correct location, ensuring accurate tracking of quality issues within the stock management system. This improves data integrity and streamlines the process of handling defective products.
Original PR description
## Issue: When you use the Smart button `Quality Checks` on a `stock.move` to validate QC, marking a test as Fail doesn't move the `stock.move` to the failing location even if the QC is now failed…
## Issue: When you use the Smart button `Quality Checks` on a `stock.move` to validate QC, marking a test as Fail doesn't move the `stock.move` to the failing location even if the QC is now failed This affects all quantity-based checks (Measure or Pass/Fail) ## Cause: The `do_fail()` method marks the check as failed but does not call `_move_line_to_failure_location()`, so the move line stays in the original location ## Fix: Trigger the failure wizard when failing a QC via the buttons This allows the user to confirm the failure and select the appropriate failing location if multiple are configured ## Steps to reproduce: - Enable Storage Locations in Settings - Create a Product and a Quality Point (Product: Quality, Operations: Receipt, Control per: Quantity, Type: Measure, Tolerance: 0.0 to 1.0, Failure Locations: WH/Failure) - Create a New Receipt for the Product and Mark as Todo - Open 'Quality Checks' via the Smart button, select the QC, enter a measure value above the tolerance (e.g., 2.0), and click Measure. - The QC should be marked as failed - Before the fix, the details of the line in the Receipt doesn't change to the failing location You can also do the same flow with a QP of type Pass/Fail and the Fail button opw-4920391
This update corrects a bug in the vehicle availability calculations for the Belgian payroll and fleet module. It now accurately excludes vehicles flagged for change (plan_to_change_car or plan_to_change_bike) with a 'False' status, ensuring they are not incorrectly listed as available. This improves the accuracy of vehicle availability reporting.
Original PR description
Refine _get_available_vehicles_domain to consider only vehicles with plan_to_change_car or plan_to_change_bike set to True as available. This ensures vehicles planned for change but marked False are treated as unavailable. Related task: 4963484. Forward-Port-Of: odoo/enterprise#101014 Forward-Port-Of: odoo/enterprise#90812
This update fixes a bug that prevented homeworking locations from appearing in the month view calendar. The change ensures that locations are correctly displayed and interactable, mirroring the functionality in week and day views, improving the user experience for scheduling remote work. It also addresses an issue with grouped icons for similar locations.
Original PR description
Description of the issue/feature this PR addresses: After a refactor, the month view no longer displayed homeworking locations as in previous versions. This PR fixes the issue and adapts the…
Description of the issue/feature this PR addresses: After a refactor, the month view no longer displayed homeworking locations as in previous versions. This PR fixes the issue and adapts the component using the updated version of the FullCalendar library. Also fixes a small issue of when different locations with same icons are grouped together when they shouldn't Current behavior before PR: All days in the calendar month view displayed the 'Set location' button, regardless of whether a location record existed for the day or not. Locations of a different type sharing the same icon (Office, Building 1...): <img width="262" height="135" alt="before" src="https://github.com/user-attachments/assets/51745152-5f90-4917-9627-07aa0959eb3d" /> Desired behavior after PR is merged: Locations are shown in the month view, and can be interacted with in the same way as in the week/day views, both for single and multicalendar: <img width="1230" height="504" alt="multicalendar" src="https://github.com/user-attachments/assets/34108f57-2c25-400e-9fbe-106e2233c677" /> <img width="1232" height="382" alt="singlecalendar" src="https://github.com/user-attachments/assets/f4a0cf32-636f-49ce-a4cc-e53a9ac45643" /> Locations of a different type sharing the same icon: <img width="256" height="132" alt="after" src="https://github.com/user-attachments/assets/643dd304-aeeb-48ec-abef-755e3eb5fdf0" /> --- Task ID: 5215931
This update fixes an issue where debit notes in the Uruguayan localization were incorrectly assigned as e-invoices. The fix ensures debit notes automatically use the correct document type (113) instead of 111, streamlining invoice processing for Uruguayan businesses. This improves data accuracy and compliance.
Original PR description
**Steps to reproduce:** * Install and activate the **Uruguayan Localization** for the company. * Create a contact located in Uruguay. * Create an invoice for this customer and set **Document Type =…
**Steps to reproduce:** * Install and activate the **Uruguayan Localization** for the company. * Create a contact located in Uruguay. * Create an invoice for this customer and set **Document Type = 111 (e-Invoice)**. * From the invoice's gear icon, create a **Debit Note**. **Observed behavior:** * The debit note is automatically assigned **Document Type 111 (e-Invoice)**, even though it should use **113 (e-Invoice Debit Note)**. * Attempting to change the document type manually only shows 113 as an option, confirming the debit note should not have been set to 111. **Cause:** * `_compute_l10n_latam_document_type()` applies a rule that assigns Document Type **111** to all Uruguay electronic invoices with RUT identification. * This logic does **not** check whether the move is a **debit note** (`m.debit_origin_id`), and therefore incorrectly overrides the expected debit note document type. * The override prevents the correct selection (internal_type == *debit_note*) from being applied. **Fix:** * Add a condition in the automatic e-Invoice assignment logic. * Debit notes now bypass the e-Invoice assignment and fall through to the parent method, which correctly assigns **Document Type 113**. opw-5154599
This update resolves an error that occurred when creating time off allocations with hourly schedules, specifically when all attendance entries had start and end dates. The fix prevents a division-by-zero error, ensuring time off allocations are created correctly. This addresses a technical issue related to how the system calculates hours for time off.
Original PR description
_ ## Short functional explanation of the error When creating a time off allocation with a time off type expressed in hours, and having start/end dates for every attendance in the corresponding…
_ ## Short functional explanation of the error When creating a time off allocation with a time off type expressed in hours, and having start/end dates for every attendance in the corresponding calendar, an error is raised. ## Reproduction Steps 1. Go to Employees and click on the Configuration tab > Working Schedules. 2. Click on a schedule and click on the button next to Work Entry Type to show the Starting date. 3. Set a starting date for each entry. 4. Go to Time Off. Click on the Configuration tab > Time Off Types. 5. Click on a time off and next to the Take Time Off in, select Hours. 6. Click on the Management tab > Allocations. Click on New. 7. Select an employee that has the schedule you updated earlier. ## Expected behavior The allocation is created. ## Unexpected Behavior A traceback occurs: ``` ZeroDivisionError: float division by zero ``` ## Origin of the issue When setting a start or/and an end date to an attendance, this attendance won't be taken into account for global attendances anymore. This leads to an erroneous computation of hours_per_day, leading to a few issues; one of them is related to time off allocation: When setting a time off with a time off type expressed in hours, if every single attendance in the calendar has a start/end date, there will be no global attendance hours left, leading to a division by 0: https://github.com/odoo/odoo/blob/8097b674a23858ed7692a0b30ca74419b8f890f7/addons/hr_holidays/models/hr_leave_allocation.py#L262 After discussion, we decided that this fix would only fix a symptom, and not the problem itself. _ opw-5340056 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where switching between image and icon types in the HTML editor didn't correctly remove outdated class names. Previously, images could retain invalid classes like 'w-100' when switched to an icon. This fix ensures that the HTML editor consistently removes irrelevant classes, improving the editor's functionality and preventing potential display issues.
Original PR description
Before this commit, switching the media type would not properly remove the classes of the element. For example, images can have the class "w-100" while icons cannot. If an image had the class "w-100", switching to an icon would keep the class "w-100", even though this class isn't valid for icons. This commit fixes the code to properly remove all invalid classes.
This update resolves a problem where the tax upgrade script incorrectly translated strings, leading to errors. The fix ensures consistent translation across different language environments, preventing disruptions during upgrades. This improves the stability and reliability of the tax processing functionality.
Original PR description
The script triggers a recompute of tax.repartition_lines_str, a tracked field that contains translated strings[^2]. If the local script is running in a different language as the rest of the upgrade,…
The script triggers a recompute of tax.repartition_lines_str, a tracked field that contains translated strings[^2]. If the local script is running in a different language as the rest of the upgrade, those strings will be translated in different languages and will trigger an error[^1] when they cannot be accessed in the dict. This can also fail during a local upgrade, not necesarily during an upgrade in the platform.
```
File "/home/odoo/src/odoo/19.0/addons/account/models/account_tax.py", line 477, in _message_log
self._message_log_repartition_lines(tracked_value_id[2]['old_value_char'], tracked_value_id[2]['new_value_char'])
File "/home/odoo/src/odoo/19.0/addons/account/models/account_tax.py", line 423, in _message_log_repartition_lines
diff_keys = [key for key in old_value if old_value[key] != new_value[key]]
File "/home/odoo/src/odoo/19.0/addons/account/models/account_tax.py", line 423, in <listcomp>
diff_keys = [key for key in old_value if old_value[key] != new_value[key]]
KeyError: 'Akun'
```
[^1]:https://github.com/odoo/odoo/blob/bf83a4efefedae61e06a6b29ad82e647fd673ce2/addons/account/models/account_tax.py#L423
[^2]:https://github.com/odoo/odoo/blob/bf83a4efefedae61e06a6b29ad82e647fd673ce2/addons/account/models/account_tax.py#L393-L397
Forward-Port-Of: odoo/odoo#238368This update fixes an issue where zero margins and spacing settings in reports weren't being applied correctly when using wkhtmltopdf. Now, users can accurately set margins and spacing to zero, ensuring reports are generated with the desired layout. This improves report customization options.
Original PR description
When constructing the wkhtmltopdf command arguments, the system retrieves values from the `specific_paperformat_args` dictionary using get and checks whether the returned value is falsy. Because 0 is a falsy value in Python, margin and header spacing values explicitly set to 0 are mistakenly ignored. As a result, the system incorrectly falls back to the default paperformat values instead of honoring the overrides provided in `specific_paperformat_args`. This commit updates the conditional checks so that values from `specific_paperformat_args` correctly override the paperformat defaults even when the override is 0. This allows users to intentionally remove all margins and spacing defined on the report. Task-5079740 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237284
This update resolves an issue where adding a product with duplicate attribute values to a sales order would cause a system error. The fix ensures correct handling of product variants with multiple attribute selections, preventing crashes and improving order creation stability. This impacts users creating and managing sales orders.
Original PR description
## Versions 18.0 to saas-18.3 Fixed by 7b56a6afda919f3c09d08eb1256416e0a2b4b1d9 introducing a new logic with…
## Versions
18.0 to saas-18.3
Fixed by 7b56a6afda919f3c09d08eb1256416e0a2b4b1d9 introducing a new logic with https://github.com/odoo/odoo/blob/26f9cab34a8cd594192d9e2a844494196b9ca5b6/addons/sale/controllers/product_configurator.py#L329
## Issue
Duplicating an attribute on a product leads to a traceback when adding the product to a SO.
## Steps to reproduce
*Ensure variants are activated in the settings*
- Create a new test product:
- Attributes & Variants (on 2 distinct lines):
- "Brand": 1;
- "Brand": 2 & 3.
- Create a new SO:
- Add the test product.
## Cause
The product has 2 attribute lines referring to the same attribute. As both attribute lines point to the same attribute, `ptals.attribute_id.read()` returns only one value for two ptals. The `zip()` call therefore drops the extra ptal, producing an incomplete mapping. When the configurator later tries to access this missing ptal entry, it crashes https://github.com/odoo/odoo/blob/369ca1e5a154235e80b9ea6af7b3f10442c0939f/addons/sale/controllers/product_configurator.py#L321.
opw-5373672This update fixes an issue where Express Checkout with Stripe wasn't automatically applying the correct tax based on the customer's address. Now, the system correctly identifies and applies the fiscal position, eliminating the need for a page reload to see accurate pricing and taxes for users utilizing this payment method. This ensures consistent and accurate tax calculations for eCommerce transactions.
Original PR description
## Issue: When a fiscal position should apply based on the address provided during Express Checkout, it was not applied automatically The correct fiscal position only appeared after reloading the checkout page This issue affects public users using the eCommerce with Stripe Express Checkout ## Cause: The fiscal position was correctly determined during the `availableCarriers` computation, but it was not propagated to the payment request itself As a result, prices and taxes were only updated after a full page reload ## Steps to reproduce: - Configure Stripe with Express Checkout (e.g., Google Pay) - Create a fiscal position with automatic detection (Country = US, Tax mapping: 15% → 0%) - Create a product using the 15% tax - Go to the website shop and add the product to the cart - Use Express Checkout with a US address - Observe that the fiscal position is not applied unless the page is reloaded opw-5018238 Forward-Port-Of: odoo/odoo#236832
This update prevents the creation of duplicate reversal and deferral entries when generating deferred entries from invoices. The change corrects an issue caused by a recent update to how month calculations are handled, ensuring journal entries are cleaner and more accurate. This improves the overall stability and clarity of financial reporting.
Original PR description
When generating deferred entries from invoice lines, certain scenarios led to the creation of both a reversal and a deferral for the same amounts. These entries would effectively cancel each other out, creating unnecessary noise in the journal entries. This issue primarily occurred when the start date, end date, and accounting date all fell within the same calendar month. The problem was exacerbated by the introduction of the `full_months` computation method in https://github.com/odoo/enterprise/commit/5dca9c0c2691cba2335e110ad63a2dcc8bbf6d57. To correctly handle this method and prevent the erroneous paired entries, the end date must now be adjusted by subtracting one month when calculating the deferral period. opw-5000337 Forward-Port-Of: odoo/enterprise#100507
This update resolves an issue where website forms incorrectly displayed a 'null' placeholder when a field's type was changed. The fix ensures placeholders are empty, providing a cleaner and more user-friendly experience for website form users. This improves the overall quality and consistency of the website.
Original PR description
Steps to reproduce: 1. Add a form on the website. 2. Add a new field of type *selection*. 3. Change the field type from *selection* to *text*. → The placeholder is incorrectly set to the literal string `null` instead of being empty. This commit ensures the placeholder is not assigned the `null` string when changing field types. task-5383835
This update fixes a potential issue where reports could be printed multiple times, leading to unnecessary activity. The change ensures that websocket actions aren't duplicated by also checking for longpolling calls, streamlining the process and improving efficiency. This prevents wasted resources and ensures accurate reporting.
Original PR description
In order to prevent duplicate IoT actions, we now ensure that websocket actions have not already been called through longpolling. odoo/enterprise#100161 Forward-Port-Of: odoo/odoo#236917
This update fixes a potential issue where IoT reports could be printed multiple times. The change ensures that websocket actions are not duplicated by longpolling, streamlining report generation and avoiding unnecessary output. This improves efficiency and reduces potential errors.
Original PR description
In order to prevent duplicate IoT actions, we now ensure that websocket actions have not already been called through longpolling. odoo/odoo#236917 Forward-Port-Of: odoo/enterprise#100161
This update ensures the NIF (tax identification number) is now included in the BOE export for model 347 reports, as required by Spanish tax regulations. The system now correctly extracts the VAT number (without the 'ES' prefix) and relies on user-provided NIF data for accurate reporting. Users are responsible for providing a valid NIF number.
Original PR description
[FIX] l10n_es_reports: include NIF in boe export for model 347 The NIF must be included in the BOE export for modelo 347 https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_300_399/archivos/347.pdf pages 3 & 12. Before this commit, we read the vat but if it doesn't start with 'ES' we return an empty string because we based on TIN. Now we'll read the vat (without 'ES' if it starts with it). The user is responsible to fill a correct number in the vat field of the company. opw-5207241 Forward-Port-Of: odoo/enterprise#100489
This update resolves an issue where a custom override in the l10n_dk_nemhandel module was causing compatibility problems with other Odoo localizations. The change now ensures that the Danish-specific logic is applied only for Danish partners, maintaining the standard Peppol flow for other regions. This prevents disruptions to the core Peppol integration.
Original PR description
Before: - The l10n_dk_nemhandel override of _check_document_type_support replaced the generic Peppol logic and did not accept process_type, causing errors when other localizations relied on the base method. After: - Aligned the method and applied the DK-specific logic only for Danish partners, falling back to the generic Peppol behavior otherwise. Impact: - Prevents unintended overrides towards standard Peppol flow.
This update ensures that bills received through the PEPPOL network are automatically posted to the accounting system, even when auto-post functionality is enabled for the partner. Previously, these bills remained in a draft state, requiring manual processing. This change streamlines the accounting workflow for PEPPOL transactions.
Original PR description
Currently, even if a partner has auto-post bills enabled, the incoming bills stay in the draft state. This change addresses that issue. Task-5373302 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where the keyboard unexpectedly opened on mobile date/datetime fields, causing a poor user experience. The change now prevents the keyboard from appearing and hides the cursor, resulting in a smoother and more intuitive date selection on mobile devices.
Original PR description
Before this commit:
- The cursor was shown inside the date/datetime input field on mobile,
which triggered the keyboard unnecessarily and degraded the user
experience.
Steps to reproduce:
1. Add a form snippet.
2. Add a Date/Datetime field.
3. Click on the Date field.
- The virtual keyboard appears and the datepicker popover may be
clipped or partially hidden.
After this commit:
- The virtual keyboard is now prevented from opening on date/datetime
inputs, and the text cursor within these fields is also hidden.
task-[4745714](https://www.odoo.com/odoo/project/974/tasks/4745714)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#212053Features or functions removed from Odoo
This update removes outdated services automatically added when connecting to the Peppol network. These services (used primarily by Belgian users) were no longer relevant due to changes in Peppol standards and restrictions on user registration from Australia, New Zealand, and Singapore. This simplifies the system and reduces potential confusion.
Original PR description
When creating a new connection to the Peppol network, we add multiple services by default. This commit remove from the default (they can still be manually enabled): - the ANZ BIS3 Invoice &…
When creating a new connection to the Peppol network, we add multiple services by default. This commit remove from the default (they can still be manually enabled): - the ANZ BIS3 Invoice & CreditNote that is deprecated in favor of the PINT version, - the SG BIS3 Invoice & CreditNote that will also be deprecated soon by its PINT version. Note that anyway for the moment we don't allow to register user from AU/NZ/SG on Peppol, so we were in any case registering those services for all participants, and none of them were relevant for those two local formats ... In the future we would like to handle the received services(formats) on IAP directly to handle change better. https://github.com/odoo/odoo/blob/0af9d32e305c1f1afb51e126c1e6747879e78225/addons/account/models/company.py#L35-L50 I checked on our AP, and only 8-10 invoices were sent with these formats, between Belgians... so it is most likely errors. Let's reduce the confusion. <img width="1283" height="65" alt="image" src="https://github.com/user-attachments/assets/208bbd7e-f836-4bc9-a594-795313b06be9" /> Source: https://docs.peppol.eu/edelivery/codelists/v9.4/Peppol%20Code%20Lists%20-%20Document%20types%20v9.4.json