Wednesday, July 2, 2025
4 changes · saas-18.3
Enhancements to existing features
This update adds the foundation for automated startup tests across several Point of Sale add-ons. It helps Odoo validate these modules more reliably during development, reducing the risk of future regressions without changing day-to-day user workflows.
Original PR description
*: pos_appointment, pos_iot, pos_restaurant_appointment, pos_tyro, pos_urban_piper, pos_urban_piper_enhancements Add a base for running boot tests in PoS. All models available in the PoS have been added via the `models.ServerModel` tool so that they are available in the `MockServer` In this way, we can simulate the generation of the model definitions required for the related model, JS classes and data service. We can now instantiate the related models and call all the methods specific to each model.
Deferred revenue and expense reports now support start and end dates directly on journal entries, making it easier to track the correct reporting periods. The update also avoids showing an unnecessary “No entry to generate” message when reviewing generated entries, reducing confusion for accounting users.
Original PR description
This is a backport of [PR #83441](https://github.com/odoo/enterprise/pull/83441), which was originally merged into 18.4. This version targets 18.3 to ensure the fix is available in the correct release.
The bank reconciliation widget no longer shows a redundant link when the related journal entry is the bank entry itself. This reduces clutter and helps accounting users focus on the items that actually need review.
Original PR description
Before this PR: Link to the bank journal entry was shown in bank reco widget. After this PR: If the journal entry linked is the bank itself, then it will not be shown in bank reco widget. task-4872789
Starshipit shipping labels no longer block the delivery flow when the final shipping cost is not immediately available. Odoo now temporarily uses a zero cost, then automatically retrieves and applies the real cost later to both the delivery and the related sales order.
Original PR description
**Description of the issue/feature this PR addresses:** This PR enhances the Starshipit integration to reliably handle scenarios where the exact shipping cost is not immediately available from…
**Description of the issue/feature this PR addresses:** This PR enhances the Starshipit integration to reliably handle scenarios where the exact shipping cost is not immediately available from Starshipit after label creation. Cost is fetched via a cron job and correctly applied to both the stock.picking's carrier_price and, crucially, the corresponding Sales Order delivery line. First commit removes the 3-tries loop, and was already reviewed on this [PR](https://github.com/odoo/enterprise/pull/85088). **Current behavior before PR:** When confirming a picking with a Starshipit Delivery method, the exact Shipping cost was not instantly available. The previous code had 3 attempts to retrieve it, before stopping the process, asking the user to try at a later time. **Desired behavior after PR is merged:** The price fetching becomes non-blocking. If Starshipit did not return an immediate `total_shipping_price`, a temporary price of 0.0 will be used. A Cron job will then run on all pickings with a 0.0 carrier price in order to fetch the exact price from Starshipit, and update the SO delivery lines. opw-4748113 When merging on `master`, further improvement might be to introduce a `starshipit_pending_price` boolean field instead of running the CRON job on all 0.0 carrier price pickings. With the new view `view_picking_form_inherit_stock` being introduced, runbot tests fail when migrating to saas-18.1. (Because view is not yet present in the saas-18.1 codebase) **How to test?** - On a runbot DB, install the `delivery_starshipit` module - Configure the DB to interact with the connector - Place a Sales Order with a delivery method configured to use Starshipit. - Confirm the Delivery. The shipping price, if not available, will be temporarily set to 0.0. - Run the Cron Job manually. You can check and activate the Cron by navigating to Settings > Technical > Automation > Scheduled Actions. - Check that the SO has been updated with the actual shipping price from Starshipit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#89184 Forward-Port-Of: odoo/enterprise#86383