Daily updates from Odoo
Thursday, March 5, 2026
38 changes
7 changes
Enhancements to existing features
This update refines how stock push rules are triggered within Odoo. Previously, rules were based on the move and destination location. Now, rules are determined by the individual move lines and their destination locations, leading to more accurate and efficient stock transfers. This change enhances the reliability of automated stock management.
Original PR description
This PR changes how push rules work. Instead of making push rules work on the move and the move destination location, they now work on the move_lines and the move_lines destination location. Task-5212472
This update expands the 'Unpaid' filter in the vendor bill section to now display draft bills alongside posted bills. This allows users to see all outstanding bills, regardless of their status, improving visibility and streamlining payment management. A technical update ensures journal entries are correctly filtered, maintaining data accuracy.
Original PR description
In this commit: - Updated the `Unpaid` filter to show draft bills in addition to posted bills. The filter now includes all non-cancelled bills with payment status `Not Paid` or `Partially Paid`. - Backported the logic from 18.0 to ensure journal entries are filtered out by checking that type is not equal to `journal_entry`. task-5900283 Forward-Port-Of: odoo/odoo#251208 Forward-Port-Of: odoo/odoo#247179
This update enhances the HR payroll user interface by adding a placeholder to the 'struct_id' field. This improves usability by guiding users to select the correct pay category, making the system easier to navigate and reducing potential errors. The change is a simple UI improvement.
Original PR description
- The 'struct_id' field lacked a placeholder, making the UI less intuitive for users. - Added 'placeholder="Choose a pay category"' to improve the user experience. Task: 5960838
This update ensures invoices sent to French, German, or Belgian customers comply with the latest regulations for Factur-X and ZUGFeRD formats. It also adapts invoice formats for B2B and B2G transactions in Germany, using ZUGFeRD for business-to-business and XRechnung for business-to-government invoices, improving clarity and accuracy.
Original PR description
Updating the FacturX format (France)/ ZUGFeRD format (Germany) to respect the new norms: Factur-X 1.07.3 EXTENDED and ZUGFeRD 2.3.3 EXTENDED. Add the differentiation between these two formats in the customer interface, even if they point to the same value in the code. It clarifies things for the customer, things are called by their name. Also, in Germany, for B2B invoices (peppol EAS = 9930), use ZUGFeRD, but for B2G invoices (peppol EAS = 0204), use XRechnung. Adaptation of the default values in the partner form according to this statement. For French and German companies that are sending invoices to French, German or Belgian customers, changed the default format of invoice sent to be compliant to PDF/A-3 norms. task-5266286 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#252018 Forward-Port-Of: odoo/odoo#237091
This update speeds up testing for the Stock Barcode module by optimizing the initial setup process. Specifically, the creation of a company, which was a significant bottleneck, has been moved to a setup class. While fully moving all setup to the setup class initially caused test failures, this change represents a key improvement in test execution time.
Original PR description
TestBarcodeClientAction [setup is quite slow](https://runbot229.odoo.com/runbot/static/build/102958171-master/tests/profile/profile_2.html#localProfilePath=1), especially because it creates a company. In addition in all classes extending this one, we spend at least 6 minutes on this line. (when testing sale_timesheet -> !stock_barcode_mrp_subcontracting) This commit proposes to move at least the company creation in a setupclass. It would be great to move all the setup in the setupclass but the tests are failling when doing so and could be achieved by a member of the stock_barcode owner team. Tests based on this setup should be a few minutes faster with this change. Forward-Port-Of: odoo/enterprise#109509
This update enhances the Point of Sale (POS) system by adding a class name to the ticket screen, allowing for easier customization and future improvements. This change, stemming from a previous enterprise-level update, streamlines the development process and provides a more flexible foundation for future POS enhancements. It's part of a larger effort to improve the POS experience.
Original PR description
See odoo/enterprise#94390 Forward-Port-Of: odoo/odoo#226447
This update adjusts the salary scale parameters used in the Odoo Enterprise's Belgian payroll module. Specifically, the starting salary values for 2026 have been updated to reflect current Belgian tax regulations. This ensures accurate payroll calculations for our Belgian clients.
Original PR description
. Update cp200_salary_scale_first_year values for 01/01/2026 . Update cp200_salary_scale values for 01/01/2026 task-5485636 Forward-Port-Of: odoo/enterprise#107473
9 changes
Enhancements to existing features
This update expands the 'Unpaid' filter in the vendor bill section to now display draft bills alongside posted bills. This allows users to see all outstanding bills, regardless of their payment status, improving visibility and streamlining payment management. A technical update ensures journal entries are correctly filtered, maintaining data accuracy.
Original PR description
In this commit: - Updated the `Unpaid` filter to show draft bills in addition to posted bills. The filter now includes all non-cancelled bills with payment status `Not Paid` or `Partially Paid`. - Backported the logic from 18.0 to ensure journal entries are filtered out by checking that type is not equal to `journal_entry`. task-5900283 Forward-Port-Of: odoo/odoo#251208 Forward-Port-Of: odoo/odoo#247179
This update enables cashiers to record multiple payments for a single order in Point of Sale. Previously, users were limited to one cash payment line, causing issues when multiple people paid at different times. This change improves the user experience and accurately reflects payments made in a group setting.
Original PR description
Before this commit: ============ - The user is not able to process multiple cash payment lines. An error pop-up appears saying `There is already a cash payment line.` After this commit: ============ - The user can process multiple cash payment lines. Use Case: ----------- - If a group of people goes to a restaurant and one person leaves earlier, he decides to pay $10 at the cashier and leave. When the others pay later, the cashier will see that $10 has already been paid and can add another cash payment line for the remaining amount. Task-5969853 Forward-Port-Of: odoo/odoo#250639
This update speeds up testing for the Stock Barcode module by moving company creation steps to a setup class. This significantly reduces test execution time, particularly when running tests for related modules like Sale Timesheet. The change addresses a performance bottleneck identified during testing.
Original PR description
TestBarcodeClientAction [setup is quite slow](https://runbot229.odoo.com/runbot/static/build/102958171-master/tests/profile/profile_2.html#localProfilePath=1), especially because it creates a company. In addition in all classes extending this one, we spend at least 6 minutes on this line. (when testing sale_timesheet -> !stock_barcode_mrp_subcontracting) This commit proposes to move at least the company creation in a setupclass. It would be great to move all the setup in the setupclass but the tests are failling when doing so and could be achieved by a member of the stock_barcode owner team. Tests based on this setup should be a few minutes faster with this change. Forward-Port-Of: odoo/enterprise#109509
This update addresses changes required by the new format for Spanish tax reports (l10n_es_reports). Specifically, a new field for petrol has been added, and the arrangement of certain Casillas has been adjusted to align with the updated reporting requirements. This ensures compliance with Spanish tax regulations.
Original PR description
Forward-Port-Of: odoo/enterprise#109260
This update adjusts the Romanian tax reporting (l10n_ro_saft) to align with recent changes in the core Enterprise version (CE). The update removes outdated tax codes and adds new ones, ensuring accurate reporting for Romanian businesses. This ensures compliance with current tax regulations.
Original PR description
Some taxes were no longer needed in CE, so they needed to be removed task-5411745 Forward-Port-Of: odoo/enterprise#109507 Forward-Port-Of: odoo/enterprise#106127
This update adjusts the salary scale parameters used in the Odoo Enterprise’s Belgian payroll module (l10n_be_hr_payroll). Specifically, the base salary figures for the first year of employment and overall salary scale values have been updated to reflect the latest regulations as of January 1st, 2026. This ensures accurate payroll calculations for Belgian employees.
Original PR description
. Update cp200_salary_scale_first_year values for 01/01/2026 . Update cp200_salary_scale values for 01/01/2026 task-5485636 Forward-Port-Of: odoo/enterprise#107473
This update enhances the point-of-sale (POS) system by allowing for easier customization of the ticket screen. The changes enable developers to add specific styling classes to the ticket screen, providing greater flexibility for tailoring the user interface. This improves the system's adaptability to different business needs and branding requirements.
Original PR description
See odoo/enterprise#94390 Forward-Port-Of: odoo/odoo#226447
This update enhances the poll experience by displaying the poll's end datetime when you hover over the 'Remaining Time' text. This allows users to set reminders and proactively manage participation, ensuring timely responses and maximizing poll engagement.
Original PR description
This commit adds showing of datetime when the poll will end when mouse-hovering on the Remaining time text of the poll. This is useful to put a reminder for later just before the poll ends, let's say to see if involvement is fine or we need to push pressure for people to vote. <img width="555" height="255" alt="Screenshot 2026-03-04 at 12 55 44" src="https://github.com/user-attachments/assets/19ef91a1-ea52-475a-86e1-acc16e18fe98" />
This update refines the payroll schedule wizard for Belgian companies, restricting its use to only employees within Belgium. It removes a redundant field and improves the user interface with added spacing, resulting in a cleaner and more intuitive experience for HR staff managing Belgian employee schedules.
Original PR description
- Show the “Working Schedule Change” wizard only for employees belonging to Belgian companies. - Remove the “Post Change Contract Creation” field from the working schedule change wizard. - Add extra right padding to the warning alert in the time-off section for improved UI spacing. task-5367812 Forward-Port-Of: odoo/enterprise#101013
2 changes
Enhancements to existing features
This update addresses a significant change in the format required for Spanish VAT reporting (Mod303). Specifically, a new field for 'petrol' has been added, and the arrangement of various data elements ('casillas') has been adjusted to comply with updated tax regulations. This ensures accurate and compliant VAT reporting for Spanish businesses.
Original PR description
The format for 2026 changed quite significantly. There is an extra field for the petrol, which we basically do not touch and a lot of casillas that changed places. opw-5990405 Forward-Port-Of: odoo/enterprise#109503
This update adjusts the salary scale parameters used in Odoo's Belgian payroll (l10n_be_hr_payroll) to reflect changes in Belgian tax regulations as of January 1, 2026. These updated values ensure accurate payroll calculations and compliance with local legislation.
Original PR description
. Update cp200_salary_scale_first_year values for 01/01/2026 . Update cp200_salary_scale values for 01/01/2026 task-5485636 Forward-Port-Of: odoo/enterprise#107473
3 changes
Enhancements to existing features
This update simplifies how Odoo creates stock packages during the 'Put in Pack' process. By moving the creation logic into a separate method, it makes customizations easier for users needing to adjust package creation rules. This improves flexibility and maintainability of the stock module.
Original PR description
Move the logic that creates a new 'stock.quant.package' into a dedicated method `stock.picking::_get_put_in_pack_package`. This allows cleaner overrides when custom logic is needed for package creation during the "Put in Pack" process. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249050 Forward-Port-Of: odoo/odoo#247952
This update addresses a significant change in the format required for Spanish VAT reporting, specifically for the 2026 tax year. The update includes a new field for 'petrol' and adjustments to the arrangement of various data elements (casillas). This ensures continued compliance with Spanish tax regulations.
Original PR description
The format for 2026 changed quite significantly. There is an extra field for the petrol, which we basically do not touch and a lot of casillas that changed places. opw-5990405 Forward-Port-Of: odoo/enterprise#109503
This update adjusts the salary scale parameters used in the Odoo Enterprise's Belgian payroll module (l10n_be_hr_payroll). Specifically, the values for January 1st, 2026, have been updated to reflect current salary regulations in Belgium, ensuring accurate payroll calculations. This change maintains compliance with local tax and social security requirements.
Original PR description
. Update cp200_salary_scale_first_year values for 01/01/2026 . Update cp200_salary_scale values for 01/01/2026 task-5485636 Forward-Port-Of: odoo/enterprise#107473
1 change
Enhancements to existing features
This update addresses a significant change in the format required for Spanish tax reports, specifically for the year 2026. The update includes a new field for 'petrol' and adjustments to the arrangement of various data elements ('casillas'). This ensures continued compliance with Spanish tax regulations.
Original PR description
The format for 2026 changed quite significantly. There is an extra field for the petrol, which we basically do not touch and a lot of casillas that changed places. opw-5990405 Forward-Port-Of: odoo/enterprise#109503
9 changes
Enhancements to existing features
This update enhances the system's ability to track employee payroll issues. By storing these issues within the employee records, we can now display and highlight them in version views, providing better visibility into payroll discrepancies. This improves payroll management and reporting.
Original PR description
Storing employee payroll issues in order to be used for displaying the employee issues in the version views and highlighting them Task: 5955152
This update simplifies the process for Italian businesses filing withholding tax returns. The default periodicity has been changed to monthly, addressing a previous difficulty in configuring this setting. This ensures compliance with Italian regulations and improves the user experience.
Original PR description
In Italy, withholding tax return periodicity is monthly. but it's hard to discover/configure. Default periodicity should be monthly. task-5985704 Forward-Port-Of: odoo/enterprise#109420 Forward-Port-Of: odoo/enterprise#109185
This update speeds up testing for the Stock Barcode module by moving company setup steps to a dedicated setup class. This reduces test execution time, particularly when testing related modules like Sale Timesheet, improving overall development efficiency. The change addresses a slow test setup process that was impacting development timelines.
Original PR description
TestBarcodeClientAction [setup is quite slow](https://runbot229.odoo.com/runbot/static/build/102958171-master/tests/profile/profile_2.html#localProfilePath=1), especially because it creates a company. In addition in all classes extending this one, we spend at least 6 minutes on this line. (when testing sale_timesheet -> !stock_barcode_mrp_subcontracting) This commit proposes to move at least the company creation in a setupclass. It would be great to move all the setup in the setupclass but the tests are failling when doing so and could be achieved by a member of the stock_barcode owner team. Tests based on this setup should be a few minutes faster with this change. Forward-Port-Of: odoo/enterprise#109509
This update simplifies the user interface by standardizing the term 'Audit Report' to 'Annual Report'. Previously, the use of both terms created confusion for users. This change improves clarity and user experience within the Enterprise module.
Original PR description
The user interface currently uses both the terms "Audit Report" and "Annual Report", which can be confusing for users. To eliminate this confusion, "Audit Report" will be renamed to "Annual Report". Task-5902500
This update enhances the way invoice activity summaries are generated during test runs. Specifically, the summary now automatically reflects the activity type, improving test accuracy and consistency. The changes also optimize database queries to reduce load, particularly during initial data access.
Original PR description
- When a recurring document request is created summary will be the name of the activity_type_id as per the new implementation here in this testcase. Added the default summary to the activity_type_id so that it will be taken in to account. - Cleaned the occurences of _onchange_activity_type_id as now we are using the stored/computed fields. - Increased query count as the field is stored computed, which will add an extra query to get field value when not present in cache for the first time when accessing them. Here, note field seems missing from cache, so it is being fetched from the database when `message_activity_done` template tries access it. Task-5269655
This update ensures Odoo correctly handles student salaries in Belgium, aligning with minimum wage regulations. The system now checks if student employees (designated as 'STU') are paid below the legal minimum, providing a warning to administrators. This improves accuracy and compliance for Belgian payroll reporting.
Original PR description
**Description:** In Belgium there a minimum salary amount for student. We should extend the existing warning (or create a new one) on employee and in the dashboard to warn if an employee with dimona category [STU] has a wage under the minimum. **Implementation** . Update _compute_l10n_be_is_below_scale() in hr_version and salary_offer . Add Corresponding tests . Add cp_200_salary_scale_student_A parameter values . Add cp_200_salary_scale_student_B parameter values . Add cp_200_salary_scale_student_C parameter values . Add cp_200_salary_scale_student_D parameter values task-5485636
This update simplifies the payslip list view by removing redundant buttons and improving the user experience. The 'Compute' button now appears only when a payslip is in draft status, and the multi-selection behavior prioritizes actions based on the payslip's state, making it easier for users to manage payroll data. The tour has also been updated to reflect the new button functionality.
Original PR description
-* hr_payroll_account - Remove Confirm button from payslip list view since it duplicates Validate. - Remove Compute and Confirm buttons from the Action menu. - Show Compute button only when payslip is in draft state. - Improve multi-selection behavior in list view: when multiple states are selected, apply buttons by state priority: draft > validated > paid. - Update the tour to click the Validate button instead of Confirm. task-5456180
This update simplifies TDS calculations within Odoo's HR payroll system, aligning with new tax regulations effective April 1, 2025. A new 'Tax Declaration' button has been added to employee records, providing a clear view of current FY TDS details and facilitating PDF reporting. This ensures accurate and compliant TDS reporting for employees.
Original PR description
This PR updates the TDS flow: - Removed the old TDS wizard and version-based monthly TDS computation - Added new tax regime parameter values effective from April 1, 2025 - Improved TDS calculation on payslips by computing monthly TDS directly from payslip logic - Introduced a Tax Declaration button on the employee form to review and print current FY TDS details Task-5025645
This update enhances the kitchen display by now showing the lot or serial number of tracked products during the preparation process. This improves accuracy and traceability for inventory management, particularly important for products requiring specific tracking like pharmaceuticals or high-value items. It aligns with best practices for order fulfillment and reduces potential errors.
Original PR description
In this commit: - We will display the lot/serial number of the tracked product on the preparation card in the kitchen display. Related PRs: - Community: https://github.com/odoo/odoo/pull/247503 Task-5491350
4 changes
Enhancements to existing features
This update adjusts the Romanian tax reporting within the Enterprise module to align with recent changes in the Core Enterprise (CE) version. The update removes outdated tax codes and adds new ones, ensuring accurate reporting for Romanian businesses. This ensures compliance and improved financial data accuracy.
Original PR description
Some taxes were no longer needed in CE, so they needed to be removed task-5411745 Forward-Port-Of: odoo/enterprise#109368 Forward-Port-Of: odoo/enterprise#106127
This update streamlines the process of setting up tests for key Odoo modules, specifically related to payroll and timesheet management. By centralizing test setup, the team has improved the efficiency and reliability of our automated testing, leading to faster identification and resolution of potential issues.
Original PR description
Forward-Port-Of: odoo/enterprise#109476 Forward-Port-Of: odoo/enterprise#108739
This update adjusts the salary scale parameters used in the Odoo Enterprise's Belgian payroll module. Specifically, the values for the first year of the salary scale (cp200_salary_scale_first_year) and the overall salary scale (cp200_salary_scale) have been updated to reflect the new minimum wage effective January 1st, 2026. This ensures accurate payroll calculations for Belgian employees.
Original PR description
. Update cp200_salary_scale_first_year values for 01/01/2026 . Update cp200_salary_scale values for 01/01/2026 task-5485636 Forward-Port-Of: odoo/enterprise#107473
This update enhances logging for the Codabox integration within the Odoo Enterprise system. Specifically, it improves the tracking of transactions related to Codabox, providing the support team with more detailed information to quickly diagnose and resolve any potential issues. This will reduce troubleshooting time and improve the overall reliability of the integration.
Original PR description
This commit will improve the logs of _l10n_be_codabox_fetch_coda_transactions to help the support team to debug possible problem. task-5436868 Forward-Port-Of: odoo/enterprise#108213 Forward-Port-Of: odoo/enterprise#107779
2 changes
Enhancements to existing features
This update addresses a significant change in the format required for Spanish VAT reports, specifically for the 2026 tax year. The update includes a new field for petrol and adjustments to the report structure, ensuring compliance with updated tax regulations. This change impacts the accuracy of reported VAT data.
Original PR description
The format for 2026 changed quite significantly. There is an extra field for the petrol, which we basically do not touch and a lot of casillas that changed places. opw-5990405 Forward-Port-Of: odoo/enterprise#109503
This update enhances the account_edi_ubl_cii module by completely separating the BIS3 export process. It deprecates several older functions related to BIS3 UBL generation, streamlining the process and improving efficiency. This change ensures consistent and accurate UBL export for BIS3 invoices.
Original PR description
Deprecate: _ubl_add_base_line_ubl_values_item _ubl_get_line_item_node _ubl_add_base_line_ubl_values_price _ubl_add_values_payable_amount_tax_withholding _ubl_add_values_payable_rounding_amount _ubl_add_values_allowance_charge_early_payment _ubl_add_values_tax_currency_code_company_currency_if_foreign_currency _ubl_add_values_tax_currency_code_company_currency _ubl_add_values_tax_currency_code_empty _ubl_add_values_tax_currency_code --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Enhancements to existing features
This update enhances Odoo's ability to handle taxes in UBL and CII EDI formats by introducing an 'allowance/charge' mechanism. Previously, tax handling was limited, now businesses can accurately represent complex fiscal scenarios like discounts and charges. Comprehensive testing ensures correct export and import of invoices with these new tax configurations.
Original PR description
This **PR** introduces support for the Allowance/Charge mechanism in UBL and CII EDI formats. Previously, allowance and charge handling was static and implicit: fixed taxes were always exported as…
This **PR** introduces support for the Allowance/Charge mechanism in UBL and CII EDI formats. Previously, allowance and charge handling was static and implicit: fixed taxes were always exported as charges with code AEO, while line discounts were exported as allowances with code 95, which did not allow correct modeling of many real-world fiscal scenarios. A new configuration is added on the tax form to explicitly define whether a tax is treated as a regular tax or as an allowance/charge. When marked as an allowance/charge, the corresponding code and reason can be defined. The sign of the amount determines the semantic: negative values are treated as allowances, while positive values are treated as charges. When applied on invoices, such taxes are exported as AllowanceCharge elements in UBL and CII for EDI purposes. Support is also added for importing invoices containing such allowance/charge entries. Additionally, test cases are added to validate correct behavior across export and import flows, including scenarios combining standard taxes with allowance/charge entries. **task**-5424216