Thursday, March 13, 2025
12 changes
2 changes
New functionality added to Odoo
The Planning calendar now supports creating and deleting multiple schedule entries at once, especially in the month view. This helps teams manage larger planning changes faster and with fewer repetitive actions.
Original PR description
task-4510549
Enhancements to existing features
Field Service users can now see the add stage button directly in the Kanban view when working with a single Field Service project. This makes it easier to create new workflow stages from task and planning views without leaving the current screen.
Original PR description
Before this commit: The add stage button is not visible in the Kanban view of FSM, making it difficult for users to add new stages. This commit makes the add stage button visible in the FSM kanban view when a single FSM project exists, allowing users to add new stages directly from the kanban view. In the 'My Tasks' menu, it is visible when grouped by stage. Affected menus: - My Tasks: Tasks, Map - All Tasks: All Tasks, To Schedule, To Invoice - Planning: By User, By Project, By Worksheet Template, By Location task-4573727
10 changes
Enhancements to existing features
Belgian accounting now supports partial VAT deduction, such as reclaiming only part of VAT on EU purchases like fuel or electricity. This helps businesses record VAT more accurately and stay aligned with Belgian tax requirements.
Original PR description
- Implemented support for partial VAT deduction (e.g., 35% reclaimable VAT on EU acquisitions like fuel or electricity). task-4575302
The Estonia reporting module now supports the new 13% VAT rate that applies from January 1, 2025. This helps Estonian businesses keep tax reporting and VAT XML exports aligned with upcoming legal requirements.
Original PR description
This adds 13% tax logic to Estonia Localization and VAT tax report. 13% is valid from 01.01.2025 Also in vat xml t-out is used for values true and false as otherwise these are translated during rendering.
Resolved issues and error corrections
The signup reminder process now sends pending emails without repeatedly processing the same users. This prevents duplicate or endless reminder emails when there are more than 100 unregistered users, improving reliability for customer communications.
Original PR description
When we have more than 100 users, we send e-mails in an endless loop because we always process the same records. After this change, we send all e-mails in one call. Backport of odoo/odoo#199091 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where split or wave-based delivery transfers from the same sales order could receive different scheduled dates. After the change, copied transfers keep the intended sales order delivery date, helping warehouse teams plan shipments accurately.
Original PR description
- Activate wave transfers and group by product or any other, easy to see it by product. - Create a sales order with two different products in the sales order lines - Changed the delivery date in the other info tab. - When confirming the sales order, two transfers will be created, each will have one product. Current behavior: - One picking will respect the scheduled date and the other one will have it for today. Expected: - Both picking have the sale order schedule date. It happens because the picking copy miss some data opw-4571808 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents call events from being handled before the related call session is ready. It reduces the risk of intermittent audio or video issues caused by timing differences between network and server updates.
Original PR description
Before this commit, we could get events for a RtcSession that is not yet available. This can happen when network information (SFU/p2p) races Odoo server information (bus). As RtcSessions' source of truth is the Odoo server, information obtained from the call network are only acknowledged if we have the record from Odoo. This commit fixes this issue by awaiting sessions for which events are obtained. Fetching should not be necessary as: - if the event is for a session that exists, the client will eventually obtain it (from the bus message that is sent when a new is created, or by the `rtc_service.ping()` which periodically fetches sessions). - if the event is for a session that does not exist, fetching does not make sense.
Inventory users with standard access can once again view and edit serial numbers without running into an access error. The change removes valuation details from the serial number form where those users do not have permission, preventing unnecessary disruption to daily inventory work.
Original PR description
steps to reproduce the bug: - install inventory and invoicing app - change the user access right of the inventory app to `User` - access any of the serial number you have in any of the apps having it Problem: Error is raised because no access right for the `stock.valuation.layer` model to the user group. new attribute `stock_valuation_layer_ids` was added to the `stock.lot`model on the stock_account module, and hence no access right for that model for the user group so now anyone with user access to inventory app won't be able to access the serial numbers or edit them opw-4466042 opw-4551745 Description of the issue/feature this PR addresses: Current behavior before PR: users with `user access right to inventory app` can't access the serial numbers Desired behavior after PR is merged: users with `user access right to inventory app` can access the serial numbers --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where notes added to trial balance accounts could disappear when account hierarchy and subtotals were enabled. This helps finance users reliably save and review annotations while working with grouped account reports.
Original PR description
Steps to reproduce: - open the trial balance with a company having some account groups (like BE company) - activate the hierarchy and subtotals filter - create an annotation for an account - press outside the popover to save the annotation - open the annotation popover -> The annotation is no longer visible Other similar issue - create an annotation (with again hierarchy activated) - directly create another one -> The popover disappear and no annotations are visible Cause of the issue: When grouping per hierarchy, the line ids contains some unnecessary components for these grouping per account groups, which need to be filtered out with the helper function already created to handle this case. opw-4546653
Mexican electronic invoices can now be printed even when the customer has no language set. The amount written in words uses the customer language when available, or the current user language otherwise, avoiding errors caused by an unavailable Spanish fallback.
Original PR description
When printing an invoice in the l10n_mx_edi module, a traceback occurs if the client's language is empty. This happens because the system previously defaulted to es_ES, which may not be activated. Steps to Reproduce: 1. Install the l10n_mx_edi module and switch to a Mexican company. 2. Enable multiple languages in the system. 3. Create an invoice and leave the customer's language empty (no language set). 4. Print the invoice. 5. Issue: A traceback occurs due to the missing es_ES language. Now, there is no fallback to es_ES when the client's language is empty. The amount-to-text conversion strictly relies on `self.partner_id.lang. If no language is set, the conversion translates to the user's language. opw-4572245
Barcode inventory adjustments now ignore customer, vendor, and other non-internal locations when choosing a default product location. This helps prevent stock corrections from being recorded in the wrong place unless a user explicitly scans that external location first.
Original PR description
Steps to Reproduce: 1. Create a storable product with inventory tracking and assign a barcode. 2. Create an internal transfer from “Partners/Customers” to “Virtual Locations/Inventory Adjustment”. 3.…
Steps to Reproduce: 1. Create a storable product with inventory tracking and assign a barcode. 2. Create an internal transfer from “Partners/Customers” to “Virtual Locations/Inventory Adjustment”. 3. This will generate two quants, one in Customers and another in Inventory Adjustment. 4. Navigate to Barcode > Inventory Adjustment and scan the product’s barcode. Issue: The scan triggers an inventory adjustment for the “Customer” location instead of the correct stock location. Technical Explanation: • The system fetches all quants related to the product, including those in Vendor, Customer, and Inventory Adjustment locations. • These locations have IDs lower than the stock location (e.g., Customers = 5, Stock = 8). • The front-end caches this data (dbIdCache) and calls _defaultLocation() to determine the location. • Since the cache is ordered by ID, the first location (Customers, ID 5) is incorrectly selected instead of the stock location (8). • As a result, the inventory adjustment is applied to the wrong location. Proposed Fix: • Filter the results to include only internal locations when fetching quants. • This prevents non-internal locations (Vendor, Customers, Inventory Adjustment) from being selected by default. • If a user needs to adjust inventory for an external location, they must first scan the location barcode before scanning the product. Task-4596699
Corrects how discounted invoice amounts are rounded for Mexican electronic invoicing so totals match the sum of line discounts. This prevents valid invoices with certain discount combinations from being rejected during CFDI validation.
Original PR description
Steps to reproduce: - Create an invoice with the following lines: 1. Price Unit 3163.79 | Qty 1 | Discount 25% | Tax 16% 2. Price Unit 2992.41 | Qty 1 | Discount 25% | Tax 16% 3. Price Unit 3025.86 | Qty 1 | Discount 25% | Tax 16% - Confirm, Send to validation Issue: Validation will fail with error ``` Message : Error de validaciones adicionales [Error #CFDI40111] El TipoDeComprobante no es I,E o N, y un concepto incluye el campo descuento. Folio: 1. Serie: INV/2025/. El valor del atributo Descuento (2295.51) no coincide con la suma de los importes (790.947500 + 748.090000 + 756.465000 = 2295.50) ``` This occurs because when correcting the discount rounding we round the biggest discount amount so the amounts might not add up correctly anymore opw-4596741