Daily updates from Odoo
Sunday, July 27, 2025
6 changes · saas-18.3
Resolved issues and error corrections
Imported sales orders in Point of Sale now keep the tax position set on the original sales order, even when it differs from the customer's default tax setup. This helps ensure the right taxes are applied at checkout and reduces billing corrections.
Original PR description
When a sales order is imported into the PoS, the tax position does not match if the sales order has a different tax position than the one assigned to the partner. This commit ensures that the tax position will always be the one assigned to the sales order and not that of the partner. taskId: 4963118 Forward-Port-Of: odoo/odoo#220522 Forward-Port-Of: odoo/odoo#219869
Point of Sale now checks whether an order has already been sent for preparation before printing, and synchronizes the order status after printing. This prevents multiple devices from printing the same preparation ticket, reducing confusion and duplicate work in restaurants or shops.
Original PR description
Before this change, when a device sent an order in preparation via the ticket printer, this could result in the same order being printed by multiple devices, as the order was not synchronized after it was sent. The error is a bit tricky, because if the user had installed a preparation screen, the order was sent to the preparation screen via syncAllOrders. In this case, the order was correctly synchronized and the other devices were informed of the changes. This commit adds two things. - We check the server before sending the order to preparation to make sure it has not already been sent. - Even when the user does not have a preparation display, the order will be synchronized after being sent to a printer. Forward-Port-Of: odoo/odoo#220706 Forward-Port-Of: odoo/odoo#220535
Very small negative amounts that round to zero now display as positive zero, such as "0.00" instead of "-0.00". This avoids confusing or misleading values in documents, tax calculations, and user-facing number displays.
Original PR description
float_repr(-0.00000001, 2)
formatFloat(-0.00000001, { digits: [16, 2] })
Before: "-0.00"
After: "0.00"
opw-4685953
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#219913This fix makes Odoo's internal test time-freezing tool behave predictably instead of switching state unexpectedly when called without details. It reduces the risk of confusing or unreliable automated tests, helping developers catch issues more consistently before release.
Original PR description
The freezeTime utility function had a very strange behaviour: if it is called without an argument, it would toggle the current value. This means that if i read a test that calls freezeTime, i actually do not know if the time is frozen after that function call. This could be a problem in many subtle situations. For example, if a test is using freezeTime, and then later, someone add a `beforeEach(freezeTime)` in that suite without removing the existing freezeTime, then weirdly, the test would no longer be "protected". This commit simplifies the behaviour of freezeTime to make sure we know what we are doing in all cases. 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 Forward-Port-Of: odoo/odoo#220536
This fix prevents the same point-of-sale preparation order from being printed by multiple devices. The system now checks whether an order was already sent and synchronizes the order status after printing, reducing duplicate work and confusion for staff.
Original PR description
*: pos_urban_piper_enhancements Before this change, when a device sent an order in preparation via the ticket printer, this could result in the same order being printed by multiple devices, as the order was not synchronized after it was sent. The error is a bit tricky, because if the user had installed a preparation screen, the order was sent to the preparation screen via syncAllOrders. In this case, the order was correctly synchronized and the other devices were informed of the changes. This commit adds two things. - We check the server before sending the order to preparation to make sure it has not already been sent. - Even when the user does not have a preparation display, the order will be synchronized after being sent to a printer. Forward-Port-Of: odoo/enterprise#91090 Forward-Port-Of: odoo/enterprise#91006
Very small negative amounts in Luxembourg reporting are now shown as zero when rounded to two decimals. This prevents confusing values like "-0.00" from appearing in report output and improves clarity for users reviewing financial figures.
Original PR description
float_repr(-0.00000001, 2)
formatFloat(-0.00000001, { digits: [16, 2] })
Before: "-0.00"
After: "0.00"
opw-4685953
Forward-Port-Of: odoo/enterprise#90992