Wednesday, December 13, 2023
4 changes · 17.0
Enhancements to existing features
This update adds support for the Bank of Guatemala's official exchange rates as a currency rate provider in Odoo. Users in Guatemala can now automatically fetch daily exchange rates directly from the Bank of Guatemala's webservice. Additionally, the currency rate provider list has been reorganized with country codes and alphabetical sorting for better usability.
Original PR description
In Guatemala the practice is to use the exchange rates provided by the Bank of Guatemala. They offer a webservice to fetch the daily rates that we are adding as a Currency Rate Provider in this commit. Further we are cleaning up the Current Rate Provider list by adding the country code in front of the label and sorting alphabetically. [task-3581837](https://www.odoo.com/web#id=3581837&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#52540 Forward-Port-Of: odoo/enterprise#50686
This update improves how the Austrian financial reports calculate values by switching to a more efficient formula approach. Instead of using redundant domain formulas, the system now uses aggregation formulas, which allows the reporting engine to work more effectively and produce cleaner, more reliable financial reports.
Original PR description
The aim of this commit is changing 2 lines where we are using domain formula instead of aggregation formula. The idea is that we don't want to have "redundant" domains and we want to use the power of report engine by using the right formula, in that case, the aggregation one. task-id: 3627640 Forward-Port-Of: odoo/enterprise#52202
When a closed subscription order is reopened (such as when a customer makes a payment to reactivate), the system now automatically clears the expiration date. This prevents the order from being automatically closed again on the same day it's reopened. Sales teams can manually adjust the expiration date if needed for specific situations.
Original PR description
Before this commit, when a churned order was reopened by portal payment, the end_date was left untouched. The expiration cron could close it the same day than the reopening. This commit remove the end date. We need to remove it and notify because we can't track all the possibilities: * order reaches the end date, auto close, customer pay to reopen it: --> we want to remove the end_date * 2 years order is closed by customer after a few months, it was a mistake. We want to reopen it but the end date should be preserved. It is not possible to distinguish easily these 2 cases and the others. As we want to keep the flow simple, we decide to let the salesperson decide. opw-ticket 3614318 Forward-Port-Of: odoo/enterprise#52523 Forward-Port-Of: odoo/enterprise#51732
This update optimizes how the system retrieves and displays project tasks, particularly when viewing projects with many completed tasks. By improving how the database searches for open tasks, the system now performs up to 10 times faster when loading project views with thousands of tasks, resulting in a noticeably snappier user experience.
Original PR description
## Description Indexes on a Selection field are never used in a `NOT IN` where clause, as PostgreSQL doesn't have the complementary values (in DB a Selection field is just a VarChar) to make use of an index on the field. The ORM currently doesn't invert `not in <selection>` -> `in <complement of selection>`. ## Benchmark Positive impact in the project modules all around, specially for long running projects where the proportion of "done" tasks are >90% of the project's task. On a populated project with 10k tasks, 200 of those are open, there were around 10x improvement on the requests linked to rendering the kanban view of the project. More elaborate benchmarks are available in the referenced task. ## Reference task-3576802 ## Related PR: https://github.com/odoo/odoo/pull/146120 Forward-Port-Of: odoo/enterprise#52689