Friday, July 18, 2025
7 changes · saas-18.3
Enhancements to existing features
Tax period locks now also cover closing moves and tax returns, preventing them from being reset while the period is locked. Users must manually adjust the lock date before resetting a locked return, improving consistency and control over finalized tax periods.
Original PR description
Before the closing move was not included in the tax lock date and could be reset while being locked. Now we also lock the closing move. Same for the return, we lock the return if the period is locked. Before, when we wanted to reset the return, it would automatically revert the lock date. Now user should do it manually otherwise he will not be able to reset the return. task-4818752
Tax return entries on the accounting dashboard, such as monthly VAT returns, can now be clicked directly. This opens a filtered Tax Return view grouped by month, making it easier for users to review the relevant return details quickly.
Original PR description
This commit improves the accounting dashboard by making the tax return entries (e.g., VAT Apr, VAT May) clickable. Clicking on a return now opens Tax Return view filter by return type and the grouped by month for better clarity and consistency. > Task-4912633
The automatic process that matches bank statement lines has been made more resilient. If one statement line causes an issue, the process can continue with the remaining lines and report progress, reducing the risk of repeated failures disrupting accounting operations.
Original PR description
This commit aims at refactoring the following cron _cron_try_auto_reconcile_statement_lines The refactoring has 2 main purposes: 1. Start using progress notification API (to mitigate the cron being disabled after 5 failures) 2. Skip a record that caused an exception while in a cron (otherwise it would keep crashing on the same statement line) task-4900818
Resolved issues and error corrections
Subscriptions that include both recurring and one-time products now correctly generate invoices for advance payments covering the next billing period. This prevents missed second-period invoices and helps keep subscription billing accurate.
Original PR description
Steps to Reproduce: 1. create a subscription with a recurring & non-recurring product(select monthly cleaning quatation) 2. Pay for the first period. 3. Now, try to pay the advance payment for the second period. The invoice is not generated for the second duration Issue: - The invoice is not generated for the second period. Cause: - The _get_partial_payment_subscription_transaction method incorrectly compares the sum of authorized, uninvoiced transactions with the total order amount. Solution: - Update the _get_partial_payment_subscription_transaction method to compare the sum of authorized, uninvoiced transaction amounts with the next billing period’s total instead of the full order total task-4780971 Forward-Port-Of: odoo/enterprise#85114
When users download an electronic invoice XML from the send and print flow, the related file is now correctly added to Documents even if it is not emailed. This keeps accounting document records complete for Peppol e-invoicing workflows.
Original PR description
Event with the document integration correctly setup, e-invoice xml generated in the send&print wizard will not create an associated document unless the attachment is actually sent via mail Steps to reproduce: - Have a EU Company setup - Enable and configure Peppol Electronic Invoicing - Enable documents integration with accounting - Create an invoice to a Peppol enabled customer, confirm - Open send&print wizard, enable only 'Download' and 'BIS Billing 3.0' Issue: Document related to the xml attachment is not created. This will work as expected when the message is sent to the customer It occurs because, in case of xml attachment, we don't create an associated document until some attachment have been registered on the move, effectively delaying document creation until the mail attachments are created opw-4720588 Forward-Port-Of: odoo/enterprise#89977 Forward-Port-Of: odoo/enterprise#88746
Deferred accounting entries are now created even when the covered period is shorter than one month, such as only a few days within the same month. This helps ensure revenue or costs are allocated accurately for short invoice periods and avoids skipped deferrals.
Original PR description
Previously, `_get_deferred_periods` would return an empty list when the deferral period was contained within a single month and matched the invoice date's month, even if the period spanned multiple days. This caused deferred entries to be skipped for valid short deferral spans (e.g. June 25 to June 30). This fix removes the condition that filters out single-month deferral periods, ensuring that deferred entries are always generated when a valid start and end date are present. This change supports accurate pro-rata allocation even for invoice periods shorter than one month, aligning the accounting behavior with expected financial standards. task-4910854 Forward-Port-Of: odoo/enterprise#89114
Field service orders that include kit products now correctly validate their related delivery when the task is marked done. This prevents delivered quantities from staying at zero and keeps sales and delivery records aligned for kit-based work.
Original PR description
**Problem:** when the product in the sale order linked to a field service task is a kit and the task is marked as done, the delivery is not validate (as it would for a non kit product) **Steps to…
**Problem:** when the product in the sale order linked to a field service task is a kit and the task is marked as done, the delivery is not validate (as it would for a non kit product) **Steps to reproduce:** - Create a product and set up a Kit-type Bill of Materials for it (with at least two components) - Create a service-type product. - Set the Invoicing Policy to Prepaid/Fixed - set the "create on order" field to Task - assign the Project to Field Service. - Create a Sales Order using the service product. - Confirm the Sales Order. - In the linked task, click on the Products smart button - add the kit-type product from step 1. - Mark the task as done. **Current behavior:** On the sale order, the delivered quantity for the kit product is 0. If you click on the delivery smart button, you'll see that the picking is not validated yet **Expected behavior:** the picking should be validated **Cause of the issue:** https://github.com/odoo/enterprise/blob/d8dc0cabd83a29d0522cb5fd25c6956968d4408b/industry_fsm_stock/models/project_task.py#L23 the orer_line is considered as an exception because the order_line product_uom_qty is smaller than total_qty (the sum of the move_ids' product_uom_qty) But this is normal in the case of a kit opw-4848444 Forward-Port-Of: odoo/enterprise#89616 Forward-Port-Of: odoo/enterprise#88363