Daily updates from Odoo
Thursday, March 19, 2026
36 changes · master
New functionality added to Odoo
This update adds the necessary reports (2033-A) to support the creation of the French 'liasse fiscale' – a key tax filing requirement. The changes include XML files defining the simplified balance sheet report format. This ensures compliance with French tax regulations.
Original PR description
In order to create the liasse fiscale we need to create the rpeorts 2033-A simplified balance sheet task-5417361
This update adds comprehensive data for Joint Committees within Odoo Enterprise, addressing a previous issue where incorrect combinations of Joint Committee and Employer Category could lead to errors. The changes ensure accurate data encoding and provide a clearer system for managing these important employee details. This improves data integrity and reduces potential user errors.
Original PR description
In order to avoid encoding mistakes, we need to warn user if he encoded a wrong combination of Joint Committee and Employer Category (L10N Be Employer Category). So we need to have all the Joint Committee data encoded into out system - Add all the missing committee - update the committee display name Task: 6018469
This update introduces a voicemail button within the Odoo softphone interface. When a VoIP provider is configured with a voicemail code, a button appears on the keypad, allowing users to easily access voicemail. This improves the user experience by providing a direct dialing option for voicemail services.
Original PR description
This commit allows the configuration of a voicemail code for VoIP providers. When a provider has a voicemail code configured, a voicemail icon is displayed on the "1" key. A long press on this key will dial the voicemail code. Task-[5977620](https://www.odoo.com/odoo/5778/tasks/5977620)
This update allows users to create Documents records directly from files uploaded through employee forms. Previously, this feature was blocked for attachments with a specific field setting. This change improves the process of managing employee files within the Documents system, streamlining document creation and storage.
Original PR description
POC for comparison with #103818. task-5454615
Enhancements to existing features
This update enhances the appearance and functionality of pivot and list views within Odoo's spreadsheet feature. It also resolves an issue with border styling, ensuring a consistent and polished user experience. This change improves the overall usability of the spreadsheet tool.
Original PR description
## Task Description This PR aims to improve the pivot/list design when inserted into a spreadsheet. This also fix the command used to set the pivot/list border according to the new SET_ZONE_BORDERS command from o-spreadsheet ## Related Task/PRs: - https://github.com/odoo/odoo/pull/121118
This update enhances the account reports debug popover by allowing users to view the specific code associated with each line item. This provides more detailed information for troubleshooting and understanding report data, improving accuracy and efficiency.
Original PR description
Would be nice to be able to get the codes of lines in the debug popover. No task ID
This update optimizes how Odoo handles file uploads, reducing memory usage and improving performance. Previously, Odoo loaded entire files into memory, which was inefficient for larger files like videos. This change introduces a more memory-friendly method for saving files to the file store, ensuring smoother operation.
Original PR description
File upload to Odoo always loads the entire file in memory (sometimes even in base64!) in order to save it as attachment. Most controllers use the default upload limit of 120MiB (web.max_file_upload_size), requests bigger than this limit are rejected. In most cases, using 120MiB of memory is fine, the limit is much smaller than the typical available memory of a production server. 120MiB is more than enough for documents and images, but too small for videos or uncompressed audio. We never intended that our file-store would store bigger files as Odoo is not a content-delivery system. Still, the ``--x-sendfile`` option makes for an easy/cheap alternative to cloud storage, and there are situations (not limited to HTTP upload) where we want to load bigger files in the filestore. This new utility offers a memory-efficient way to save a file inside the filestore, it basically is like `create`-single, but with a file object given instead of `raw` bytes.
This update streamlines the timesheet assistant across Helpdesk, Sale, and Project modules, making it easier for users to record time. Key changes include simplified labels, improved suggestions, and a more intuitive user interface, while also enhancing the underlying data storage for better efficiency and accuracy.
Original PR description
[IMP] {helpdesk,sale,project}_timesheet_{,enterprise,forecast}: timesheet assistant generic improvements
In this Commit,
- Assistant Form > "Billable" boolean hidden for users without Sales access rights
- Assistant Form > Labels updated:
- "Project Name" → "Project"
- "Task Name" → "Task"
- "Time Spent" → "Time"
- "Save Changes" → "Save"
- Assistant Form UI Improved by applying same changes done in master,
REF: https://github.com/odoo/enterprise/pull/104347
- Assistant Form > create and edit option removed for projects
- Suggestions logic reviewed for better results
- Correct time calculation for chronological grouping
- Unmatched project display issues resolved in both suggestions and local config
- Local Config List view aligned with Odoo UI views
- Local Config Storage limited to project/task/ticket IDs instead of `display_name`
and `id`
task-5902077
Forward-Port-Of: odoo/enterprise#110708
Forward-Port-Of: odoo/enterprise#108360Resolved issues and error corrections
This update fixes a technical issue preventing users from correctly selecting suggestions within the Timesheets app. The problem stemmed from an unnecessary addition of '.this' to template variables, causing errors when accessing data. This change removes the '.this' element, ensuring the Timesheets app functions smoothly.
Original PR description
[FIX] {helpdesk,sale}_timesheet_{,enterprise}: remove .this with t-slot-scope
Steps to reproduce:
- Timesheets app > Assistant > select a suggestion => TypeError: Cannot read properties of undefined (reading 'record')
Source:
The following commit: https://github.com/odoo/enterprise/commit/426dce738f2513fb47af7a927599c0a77e6bdf66 added `.this` to template variables that are targeting the component, but `data` variable defined by the t-slot-scope directive should not be precedded by `.this`
Fix:
Remove `.this`This update fixes a technical issue preventing users from checking in/out through the systray attendance menu. The problem stemmed from a migration script incorrectly referencing data, leading to an error. The fix removes a problematic reference to ensure correct data access.
Original PR description
steps to reproduce: - install `hr_attendance` and `helpdesk_timesheet` - try to check-in/out through systray attendance menu - notice there is a traceback cause: - the OWL 3 migration script (here: https://github.com/odoo/enterprise/pull/109943) added `this.` to `data` which is not component-scoped variable; and hence will result into `undefined` then `record` cannot be read from `undefined` fix: - remove `this.` to avoid trying to access `data` from the component. [task#6040452](https://www.odoo.com/odoo/project.task/6040452)
This update resolves a technical issue preventing the automatic download of employee data (EMPF) from the Hong Kong payroll module. The fix ensures the download functionality continues to operate correctly, avoiding errors and maintaining accurate payroll processing. This change is a critical fix to ensure seamless operations.
Original PR description
The downloading logic was not properly updated following https://github.com/odoo/odoo/commit/41fe2ebdb9cc37341362d7af829c087a5f72f9f1 . This causes the button to fail downloading with an errors 500, so we need to update it to ensure the feature keeps working. Task 6046824
This update ensures users can now see the PIN associated with virtual expense cards, which are increasingly used through digital wallets. Previously, this PIN was only visible for physical cards, causing potential transaction blocks for users. This change improves the user experience and ensures seamless payments.
Original PR description
Before this commit: - Currently, we show the PIN code for physical expense cards only, not for virtual cards. - In some case transactions are made via virtual cards (through digital wallets) also requires a PIN. The users will be blocked because they currently can't access this information. After this commit: - Now we show the PIN code for both physical and virtual cards. task-5926462 Forward-Port-Of: odoo/enterprise#107231
This update resolves an issue where users on Firefox couldn't hear incoming calls through their softphones. The fix ensures that incoming call tracks are processed immediately, regardless of the session's establishment status, restoring full functionality. This impacts Odoo Enterprise versions 19.1 and 19.2.
Original PR description
Steps to reproduce the bug: - Install voip and open the Odoo backend on Firefox - Setup your voip settings - Call your softphone number, thanks to your smartphone - Once the softphone opens with the…
Steps to reproduce the bug: - Install voip and open the Odoo backend on Firefox - Setup your voip settings - Call your softphone number, thanks to your smartphone - Once the softphone opens with the call, answer => The caller can hear you but you cannot hear the caller. This happens since [1]. Before that commit, we had something like "when the session is established, listen to tracks being added to the call and also set up the audio". After that commit, this became "when the session is established *or is establishing*, listen to tracks being added to the call... *but don't set up the audio otherwise*". The problem is that on Firefox, the timing is such as the tracks of incoming calls are being added just before the session is establishing (or established), meaning we listen to tracks being added too late. Note that commit [1] was further diluted afterwards by commits like [2] (doing stuff with the audio before establishing) and [3] (which simply removed the "established" part, relying on "establishing" being done). Later on, commit [4] prepared some other work by moving and improving things around and it actually fixed this issue here by chance. What did the trick is listening to tracks being added from the start: as soon as SIP.js notifies that the remote stream exists. This commit fixes the issue in impacted versions (19.1 and 19.2) by backporting the relevant part: listening to tracks being added as soon as possible and not once establishing/established. A test was added. [1]: https://github.com/odoo/enterprise/commit/d24d7f3406ca47e7ac529d69957b0ad481d553bf [2]: https://github.com/odoo/enterprise/commit/71d78810ae7f6c9169912276da18e04ad4f7bef0 [3]: https://github.com/odoo/enterprise/commit/942f32316ab02d8c739fe7fdd5ec2bdde472a68e [4]: https://github.com/odoo/enterprise/commit/33fc327c1c74ee874d546a98879dbbf468809850 task-5902700 Forward-Port-Of: odoo/enterprise#111025 Forward-Port-Of: odoo/enterprise#110833
This update adds a crucial test to ensure the correct formatting of payment data within the Odoo Enterprise system. A previous oversight during a software update caused a reliance on a now-missing field, and this fix prevents potential errors in payment processing. This ensures data integrity and reliable payment functionality.
Original PR description
This commit safeguards the `_prepare_payment_data` method. Reason: We were using a field that no longer exists due to an oversight during a FW and having no tests to catch it. Fix here https://github.com/odoo/enterprise/pull/110266 No task ID Forward-Port-Of: odoo/enterprise#110338
This update optimizes the Point of Sale system to use less memory, particularly when handling large product catalogs. The changes result in a significant reduction in memory consumption across browsers (Chrome, Safari, Firefox) when loading a large number of products, leading to a smoother and more responsive user experience.
Original PR description
This commit reduces memory consumption in the POS, especially when loading a large number of products. Reactivity usage has been optimized, particularly for product data. Additional optimizations were implemented to handle large product sets more efficiently. Metrics 5,000 products • Chrome: 440 MB → 75 MB • Safari / Firefox: 1 GB → 250 MB 20,000 products • Chrome: 1.5 GB → 135 MB • Safari / Firefox: 4 GB → 300 MB Community PR: https://github.com/odoo/odoo/pull/249542 Forward-Port-Of: odoo/enterprise#110223 Forward-Port-Of: odoo/enterprise#107978
This update resolves a problem preventing invoices generated with the l10n_gt_edi module from being correctly sent to the tax agency. The issue stemmed from incorrect encoding of data transmitted as XML, which was restricted. This fix ensures invoices are successfully submitted, improving compliance and preventing potential delays in tax reporting.
Original PR description
With l10n_gt_edi and the credentials: - Create an invoice and try to send it to the tax agency. You will get the following traceback: Only base64 data is allowed (after 41fe2eb) opw-6043140
This update corrects a bug preventing the system from accurately checking if invoices meet EC Sales List requirements for intra-EU customers. The fix ensures that warnings are triggered correctly when invoices with 'Intra-Community' fiscal positions are issued, improving compliance and reporting accuracy. This impacts how sales data is reported for European customers.
Original PR description
The EC Sales List return check "Only intra-EU customers" is reviewed when an invoice that match the condition for the warning same_country is present. To Reproduce: - Create a company in Belgium - Create a customer in Belgium with "Intra-Community" as a Fiscal Position - Create an invoice with this customer (in the previous month of the current month, for example February if the current date is in March - Open the Tax Returns - Open the EC Sales List Return - The Only intra-EU customers check is reviewed when it should show an anomaly. Forward-Port-Of: odoo/enterprise#107137
This update resolves an error that occurred when users attempted to modify the employee associated with a salary simulation. The fix ensures the system correctly handles versioning of salary data, preventing a runtime error. This improves the stability and usability of the salary simulation feature.
Original PR description
Currently, an error occurs when user tries to change simulation employee in salary simulation. Steps to replicate: - Install `hr_contract_salary_payroll` with demo. - Open any employee (e.g.- Abigail…
Currently, an error occurs when user tries to change simulation employee in salary simulation.
Steps to replicate:
- Install `hr_contract_salary_payroll` with demo.
- Open any employee (e.g.- Abigail Peterson).
- Click `Simulation` > Change `Yearly Employer Cost` to `Gross Per Month`.
- Try to change the Employee, error will occur.
Error:
```
File '/home/odoo/odoo19/enterprise/hr_contract_salary_payroll/models/hr_contract_salary_offer.py', line 157, in _compute_offer_values_from_template
version = offer._get_version()
^^^^^^^^^^^^^^^^^^^^
File '/home/odoo/odoo19/enterprise/hr_contract_salary/utils/hr_version.py', line 39, in hr_version_context_wrapper
raise RuntimeError(
RuntimeError: Method '_get_version' must be called within a savepoint context. Use `hr_version_context(...)` context manager before calling this method.
```
Cause:
- The method `_get_version()` has the decorator `@requires_hr_version_context()` which makes the method to be callable within a savepoint context for `hr.version` [1] i.e. it can only be called within a `hr_version_context()` block.
- As here the method was not called under the `hr_version_context()`it raises an error from [here].
Solution:
- Used the `hr_version_context()`block instead of savepoint (similar to [this]).
[this]: https://github.com/odoo/enterprise/pull/108005/changes#diff-97aeb940d5058abc95cb617e5a2015320c37e8d50a15cffc2c08eac1839ac16dL98-R100
[here]: https://github.com/odoo/enterprise/blob/626598abe4fdbc8391a428928e197e7735cbb298/hr_contract_salary/utils/hr_version.py#L39-L42
[1]: https://github.com/odoo/enterprise/blob/626598abe4fdbc8391a428928e197e7735cbb298/hr_contract_salary/utils/hr_version.py#L14-L17
sentry-7335824597
Forward-Port-Of: odoo/enterprise#111090This update fixes an issue where cancelled vendor bills were incorrectly included in the Sweden accounting SIE export. The change ensures that cancelled transactions are properly excluded, aligning the export with the general ledger's accounting records. This prevents inaccurate reporting and maintains data integrity.
Original PR description
Steps to reproduce: - Install l10n_se (Sweden - Accounting). - Create a Vendor Bill with a line using Account 4000 (Cost of goods) for any amount (e.g., 10,000 SEK). - Confirm/Post the bill. - Cancel the bill. - Go to Accounting > Reporting > SIE Export and generate the export for the current year. - Open the downloaded .se file and locate the #RES line for Account 4000. Expected: The balance should be 0.00 (cancelled entries must be ignored, matching the GL). Actual: The cancelled amount (10,000) is incorrectly summed into the exported balance. opw-5901999 Forward-Port-Of: odoo/enterprise#110612 Forward-Port-Of: odoo/enterprise#108767
This update corrects a bug that was causing incorrect decimal values to be generated in Intrastat XML reports for French companies. The issue stemmed from how the system processed invoice data, specifically when dealing with weight values. This fix ensures accurate reporting for cross-border trade data.
Original PR description
Steps to reproduce: - Select a French company and activate intrastat - Create an invoice with a 100% discount to a european partner and provide intrastat values such as intrastat code, product commodity code, ... and most importantly a weight with a decimal amount. - Create at least one other invoice to a european partner that has a date earlier than the first one (but on the same month) - Go to intrastat report and export the XML (DEBWEB2) and select EMEBI and then Departures. -> Issue: The line that got processed after the one with a 0 value is not properly post-process regarding the integer conversion because we used to iterate on a list that was modified at the same time. opw-5973832 Forward-Port-Of: odoo/enterprise#110971
This update resolves an issue where the Documents Activity view became unusable after exiting Studio, preventing users from filtering or adding new activities. The fix ensures the view correctly loads necessary data, restoring full functionality and preventing frustrating user experiences.
Original PR description
Problem: When returning to the Documents Activity view after closing Studio, the view becomes unusable with an error that `folderId` is `undefined`. Users are forced to refresh the page or switch…
Problem: When returning to the Documents Activity view after closing Studio, the view becomes unusable with an error that `folderId` is `undefined`. Users are forced to refresh the page or switch views to fix it. Specifically: - Filters can no longer be selected. - Adding new activities throws UI errors (even if technically successful). Cause: The `getSelectedFolder` method returned undefined because the `searchPanel` logic was skipped. The Activity view does not display the `searchPanel`, so the model failed to run `_fetchSections` which retrieves the data used by `getSelectedFolder`. Under normal circumstances, the view relies on data already loaded by the Kanban or List views, but that data is unavailable here. Solution: - Force the search model to load the data explicitly, ensuring the view initializes correctly regardless of the `searchPanel` visibility. We kept the dependency upon `_fetchSections` rather than removing it, as it is required by the `search_model` to maintain other features like `breadcrumbs`. - Add a test to verify the fix and prevent regression. Co-authored-by: Pierre-Yves Dufays <pydu@odoo.com> Co-authored-by: Charlier Florian <flch@odoo.com> Forward-Port-Of: odoo/enterprise#110471
This update resolves an issue where the Odoo payroll system would generate errors if only the core payroll module was installed. The fix ensures that salary rules correctly utilize a key field, preventing these errors and improving stability. This change primarily impacts Mexican payroll functionality.
Original PR description
The `l10n_mx_min_wage_zone` field is used in `l10n_mx_hr_payroll`, but it was originally defined in `l10n_mx_hr_payroll_account_edi`. This causes errors when a user only installs the `l10n_mx_hr_payroll` module, as the field is missing. Fix salary rules in `l10n_mx_hr_payroll` to use the `zsmg` value and avoid tracebacks when the EDI module is missing. In `l10n_mx_hr_payroll_account_edi`, override these rules to use the `l10n_mx_min_wage_zone` field instead. Related commit: https://github.com/odoo/enterprise/commit/11bb6db4884083b3f48582b749c01ae75a09cf66 target: saas-19.2 task-6047772 Forward-Port-Of: odoo/enterprise#110985
This update corrects a technical issue that was preventing the VSME/CSRD report from generating correctly. The fix involved updating a reference to the correct employee type within the Odoo system, ensuring accurate reporting data. This resolves a potential error and improves report reliability.
Original PR description
Before this PR, there was a typo related to employee types after a recent change (https://github.com/odoo/enterprise/pull/103118) , which was 'your_module.employee_type_employee'. We change it to 'hr.contract_type_employee' to avoid a traceback when printing the VSME/CSRD report.
This update addresses a potential issue in testing where the system's transaction state wasn't properly managed after operations. The changes ensure that transactions are reliably handled, preventing unexpected behavior and improving test stability. This primarily impacts the accounting and payroll modules.
Original PR description
https://github.com/odoo/odoo/pull/253929
This update resolves a bug where subscriptions were incorrectly reopening after a credit note payment. The fix prevents the system from reopening subscriptions when a credit note payment (specifically 'out_refund' invoices) is processed, ensuring subscriptions remain in the correct churned state. This improves subscription management accuracy.
Original PR description
Steps to reproduce: ------------------------------ 1. Install Subscription module 2. Create a new subscription and confirm it 3. Create an invoice from the subscription. * Register a payment and…
Steps to reproduce: ------------------------------ 1. Install Subscription module 2. Create a new subscription and confirm it 3. Create an invoice from the subscription. * Register a payment and ensure the invoice is in the Paid state. 4. Go back to the subscription and close it with any reason 5. Open the related invoice. * Create and Confirm Credit Note. * Register a payment for the credit note. 6. Go back to subscription Observation: ------------------------------ The subscription is automatically set back to `In Progress` even though it was previously churned. Issue: ------------------------------ The method `_reopen_paid_churned_subscription` reopens churned subscriptions when an invoice is set to `in_payment` or `paid`. There was no check to exclude refund moves (`move_type = 'out_refund'`), causing the subscription to be reopened when a credit note is paid. Solution: ------------------------------ Add a condition to exclude refund invoices from the reopening logic opw-5947999 Forward-Port-Of: odoo/enterprise#108487
This update fixes an issue where bank statement reconciliation in foreign currency journals incorrectly used invoice currency instead of payment currency. When reconciling batch payments, the system now accurately converts amounts to the payment's original currency, ensuring correct bank statement balances. This improves the reliability of financial reporting.
Original PR description
When reconciling a batch payment in a foreign currency journal where payments do not have outstanding accounts, the resulting bank statement lines could use the wrong currency for balance conversion. Steps to reproduce: - Create a journal in a foreign currency (e.g., CHF) - Create two invoices in company currency (e.g., EUR) - Pay both invoices using the foreign journal - Create a batch payment for these payments. - Reconcile a bank statement line against this batch payment. Issue: Reconciliation make use of the payments amount in the wrong currency. Analysis: During the reconciliation of a batch payment, the system creates new amls from the payment values. However, the currency of the computed amount should be the source payment currency, and not the invoice line currency. opw-5887218 Forward-Port-Of: odoo/enterprise#110381 Forward-Port-Of: odoo/enterprise#108745
This update resolves an issue where GS1 barcode filtering would fail due to incorrect date interpretation. The fix prevents errors when a barcode starts with a date identifier, ensuring that products can be correctly filtered by barcode scans. This improves the reliability of internal transfer processes.
Original PR description
Steps to reproduce: - Activate the GS1 nomenclature - Create a product "P1" with the barcode: 15099590225865 - Create an internal transfer with one unit of P1 - Go to Barcode > Operations > Internal…
Steps to reproduce: - Activate the GS1 nomenclature - Create a product "P1" with the barcode: 15099590225865 - Create an internal transfer with one unit of P1 - Go to Barcode > Operations > Internal Transfers - Scan the barcode: 15099590225865 to filter transfers by this product barcode Problem: An validation error is raised: A ValidationError is raised: "A GS1 barcode nomenclature pattern was matched. However, the barcode failed to be converted to a valid date." Explanation: GS1 barcodes must follow a strict nomenclature based on well-defined rules. For example, a GS1 product barcode should start with the Application Identifier 01 followed by 14 digits. The GS1 parser processes the barcode rule by rule and applies the first matching rule. In this case, the barcode 15099590483921 is interpreted as a date because it starts with "15", which corresponds to a GS1 Application Identifier for a date. As a result, the parser attempts to convert the first six digits into a date and raises a ValidationError. Solution: Catch the ValidationError raised during GS1 date parsing in filter_on_barcode and explicitly reset parsed_results to False, allowing the normal filter on product resolution logic to continue. This prevents GS1 parsing errors from blocking valid barcodes and ensures that product is correctly filtered opw-5929064 Forward-Port-Of: odoo/enterprise#110679 Forward-Port-Of: odoo/enterprise#110636
This update resolves an issue where users couldn't successfully create events using the Quick Create feature within the Gantt view for Dental Care appointments. The fix ensures that the Quick Create functionality now works as expected, streamlining the process of scheduling appointments. This improves usability for our dental care clients.
Original PR description
Steps to reproduce: - Go to Appointments - Dental Care -> Gantt - Quick Create an event => bug task-6037337
This update fixes a technical issue that previously caused errors during payslip calculations for the Joint Committee 302 (CP302). The fix ensures that the system handles missing data gracefully, preventing tracebacks and ensuring accurate payroll processing, particularly when calculating termination fees.
Original PR description
When computing a monthly payslip for the Joint Commiteee 302, a salary rule was trying to get a rule parameter name generated dynamically from the cp code. The salary rule was expecting the function to not raise in case of error, which was not the case. I made it so that the function could be asked to not raise in case of error to match the expected behavior. The same error appeares when generating termination fees under the CP302 task-6041052
This update adds validation for employee identification IDs within salary configuration settings. Previously, this caused errors when contracts were created, leading to delays. The change ensures data integrity and prevents errors during the contract signing process, streamlining workflow.
Original PR description
Previously, the `identification_id` field could be saved in the salary configuration version model without any validation. However, when the contract is signed by the employer, an employee record is created from this version record. At that moment, a validation error occurs because the `identification_id` field is validated on the employee model in the Belgian localization. To prevent this late validation error, validation for `identification_id` has been added in the salary configuration. I added custom validation`_fieldValidators` but validating fields separately caused duplicate notifications when the field was empty (one from the required field check and another from the localization validator). The validation logic was therefore integrated so both checks work together without producing duplicate errors, while still preserving the required field highlighting. Task Id: 6025668
This update ensures all data files used within Odoo Enterprise are encoded as ‘bytes’ instead of ‘base64’. This resolves potential compatibility issues and improves data handling across various modules, leading to more reliable data processing and reduced errors. It’s a standard best practice for data storage and transmission.
Original PR description
https://github.com/odoo/odoo/pull/254394
This update optimizes the storage of data related to account returns by removing unnecessary default values. Previously, fields were set to 'new' by default, consuming database space without providing actual information. Now, fields will only be populated with a state when a real return is recorded, leading to more efficient data usage.
Original PR description
Before the change the workflow fields have by default 'new' value which is not an actual state, thus it is taking space in the database without providing actual value. Removing the default new value and leaving only the actual states that exist in the workflow is the motivation of this change. After the change: the fields will be non set by default until they get an actual state. task: 5432425
This update fixes an issue where subscription products weren't displaying prices with tax, even when the website setting was enabled. The change ensures that prices accurately reflect tax-inclusive amounts by correctly considering company IDs when calculating taxes. This improves the accuracy of subscription pricing for customers.
Original PR description
subscriptions Despite enabling the website setting to display tax-inclusive prices, subscription products show prices without tax when a recurring pricelist is configured. In `_get_sales_prices`, the product’s company ID is compared to the website’s company, but products visible to all have a false company ID, and products assigned to a parent company retain the parent’s company ID. As a result, when the product’s company ID does not match the website’s company ID, no taxes are applied.Instead, _filter_taxes_by_company should be used to determine whether the company can access the product’s tax_id. opw-5222411 Forward-Port-Of: odoo/enterprise#102102 Forward-Port-Of: odoo/enterprise#100662
This update fixes an error in the calculation of the mobility budget, ensuring accurate yearly cost projections. The previous calculation incorrectly treated a value as a percentage, leading to inaccurate results. This change improves the reliability of the HR contract salary configuration.
Original PR description
Forward-Port-Of: odoo/enterprise#111042 Forward-Port-Of: odoo/enterprise#110827
Features or functions removed from Odoo
This update removes an older VoIP component ('t-esc') that is being phased out in the upcoming Owl 3 release. This change ensures compatibility with newer features and improves the overall stability of the enterprise platform. It’s a routine maintenance update.
Original PR description
`t-esc` is going to be removed in Owl 3
Code cleanup and technical improvements
This update prepares Odoo for the upcoming OWL3 release by adding the '.this' syntax to template variables. This is necessary because OWL3 requires developers to use '.this' to correctly target component variables within templates, ensuring compatibility and functionality after the upgrade.
Original PR description
In preparation for OWL3, where template variables will need to use .this to target component variables, we add .this to template variables that are targetting the component. Script PR: odoo#247965 task: OWL3 prep - add this. to template variables https://github.com/odoo/odoo/pull/253294