Daily updates from Odoo
Friday, March 6, 2026
32 changes · master
Resolved issues and error corrections
This update resolves an issue where buttons in the Master Production Schedule (MPS) view remained visible even when no MPS records were present, creating a confusing user experience. The fix ensures these buttons are hidden when no records exist and refreshes the view after deleting all records, directing users to the next available MPS record.
Original PR description
Before this commit: ==================== In the Master Production Schedule (MPS) view, the `Order` and `Duration` buttons remain visible even when there are no MPS records. It leads to a confusing…
Before this commit: ==================== In the Master Production Schedule (MPS) view, the `Order` and `Duration` buttons remain visible even when there are no MPS records. It leads to a confusing user experience, as actions are shown while no records are available to act upon. Steps to Reproduce: ==================== 1. Install `mrp` module. 2. Go to Settings → Enable `MPS` option. 3. Navigate to MPS → Delete all MPS records → the `Order` and `Duration` buttons are still visible. Additionally, when MPS records span multiple pages and the user deletes all records from current page, the view is not refreshed to redirect the user to another page that still contains records. Cause of the issue: ==================== - The visibility of the `Order` and `Duration` buttons was not tied to the presence of MPS records. The logic did not check whether any MPS records existed, so both remains visible even when no MPS records were present. After this commit: ==================== This commit ensures that `Order` and `Duration` buttons are hidden when there are no MPS records. Additionally, the view is refreshed after deleting all records from a page, ensuring the user is redirected to a page with remaining MPS records. TaskID-5356994
This update fixes an issue where multi-employee payslips were defaulting to the language of the first employee. The change ensures that each employee's payslip is printed in their correct, selected language, improving accuracy and user experience. This resolves a previous bug related to date formatting and caching.
Original PR description
Steps to detect the bug: - Install payroll - Create more than one employee with different payslip languages - Add a contract for the employees - Payroll -> Payslip -> Pay run - Create a new payroll for more than one employee - Select all the employees in the pay run - Click 'print' button - Dates for the employees that are not the first one are in the language of the first employee This commit will allow the user to create multiemployee payslips maintaining the correct selected payslip language for each one of them. The issue was caused by a cache dictionary that used only the date and date format as a key, failing to include the user language. This led the system to reuse the first translated date for all subsequent employees. opw-5865260 Forward-Port-Of: odoo/enterprise#107269 Forward-Port-Of: odoo/enterprise#106575
This update corrects an issue where internal users receiving ‘Signed Document’ emails were incorrectly directed to the public portal instead of the document preview. The change now ensures internal users are automatically redirected to the correct internal preview, while the portal experience remains unchanged for public users. This improves the user experience for internal teams.
Original PR description
Internal users opening the “Signed Document” email link were redirected to the portal instead of the document preview. Now they are redirected to the internal preview, while public users remain unchanged. task-5486043 Forward-Port-Of: odoo/enterprise#109425 Forward-Port-Of: odoo/enterprise#107079
This update resolves a crash issue that occurred when viewing pay runs on mobile devices with a smaller screen size. The fix ensures the system correctly identifies the scrollable container, preventing errors and improving the stability of the payroll module. This update maintains the existing Kanban layout while addressing a critical functionality problem.
Original PR description
**Steps to Reproduce:** 1. Open Payroll->Payslips->Pay Runs 2. Click on a Pay Run in Mobile View (Width < 600px). 3. Return to the previous view using the breadcrumb. 4. The system crashes with…
**Steps to Reproduce:** 1. Open Payroll->Payslips->Pay Runs 2. Click on a Pay Run in Mobile View (Width < 600px). 3. Return to the previous view using the breadcrumb. 4. The system crashes with Traceback: TypeError: Cannot set properties of null (setting 'scrollLeft') **Bug Cause:** The custom 'hr_payroll.PayrunKanbanRenderer' template overrode the 'class' attribute of the root div. By setting it only to 'o_payrun_kanban', the standard 'o_renderer' class was removed. The Kanban controller's scroll restoration logic (introduced in recent lazy-loading updates) relies on the '.o_renderer' selector to find the scrollable container. When missing, querySelector returns null, leading to a traceback. **Solution:** Updated the XML template to explicitly include 'o_renderer' in the class list. This restores the functional hook required by the JavaScript controller for scroll restoration while maintaining the custom 'o_payrun_kanban' layout. Task: 5971861 Forward-Port-Of: odoo/enterprise#108847
This update resolves a test failure related to holiday attestations in the Belgian payroll module. Adding a 'freeze_time' setting to the test ensures it accurately reflects the payroll calculations, preventing disruptions to payroll processing. This fix improves the reliability of the holiday attestations feature.
Original PR description
Addind freeze_time to Fix holiday attest test that failed on the runbot Forward-Port-Of: odoo/enterprise#109519 Forward-Port-Of: odoo/enterprise#107490
This update corrects a bug that prevented the billable timesheet KPI from accurately filtering timesheets. The fix now uses a more reliable method – checking for a linked Service Order Line – to determine billable status. This ensures accurate reporting and improves the usability of timesheet data.
Original PR description
Due to a previous [commit](https://github.com/odoo/odoo/commit/8e8b273), the "Billable" and "Non-Billable" were incorrect for timesheets. This lead the billable timesheet KPI button not to filter the timesheets anymore. This is fixed by filtering based on whether the analytic line has an SOL associated to it, which is more robust to changes in the `billable_type` field, and improves clarity. Further, remove unnecessary service patch introduced in odoo/enterprise#108035. See odoo/odoo#250149 task-5956027 Forward-Port-Of: odoo/enterprise#108347
This update resolves a bug that caused a RecursionError when producing large quantities of products with serial tracking. The issue stemmed from excessive recordset access during order splitting, leading to performance problems. This change ensures stable production processes for high-volume operations.
Original PR description
**Issue** When producing a large number of serial-tracked products, a RecursionError can occur. **Steps to reproduce** - Create three products tracked by serial number (ensure MTO and Manufacture…
**Issue** When producing a large number of serial-tracked products, a RecursionError can occur. **Steps to reproduce** - Create three products tracked by serial number (ensure MTO and Manufacture routes are enabled). - Create a BoM for product A containing product B. - Create a BoM for product B containing product C. - Create a BoM for product C containing another product. - Create a manufacturing order of 100 units for product A and confirm it. - Go to the MO C and split into 100 mo - Go to the MO B and split into 100 mo -> RecursionError: maximum recursion depth exceeded. **Cause** While splitting, this method is called: https://github.com/odoo/odoo/blob/cda011dc8590773f6c3a26f4ae9d5242a3147024/addons/mrp/models/mrp_production.py#L2031 which ultimately calls: https://github.com/odoo/odoo/blob/cda011dc8590773f6c3a26f4ae9d5242a3147024/addons/stock/models/stock_move.py#L658-L661 This retriggers `_compute_packaging_uom_id` for all moves in `move_orig_ids` or `move_dest_ids`, and accessing the full recordsets causes recursive recomputation leading to a RecursionError. opw-5265424 Forward-Port-Of: odoo/enterprise#106999
This update fixes an issue where the depreciation amounts for assets with analytic distribution weren't being calculated correctly in the depreciation schedule report. Now, when the analytic filter is enabled, the depreciation amounts are accurately distributed across each asset's analytic account, ensuring more precise financial reporting.
Original PR description
Previously, when the analytic filter is enabled in the depreciation schedule, the total depreciation amount was shown in each respective depreciation column, and the analytic distribution was not taken into account. This commit fixes the depreciation amount for assets with analytic distribution in the depreciation schedule report. When the analytic filter is enabled, the amounts are computed correctly under each analytic's depreciation column. task-5959962 Forward-Port-Of: odoo/enterprise#108484
A recent update caused a disruption in SEPA direct debit payments, preventing customers from completing transactions. This fix addresses a missing data element within the payment provider object, resolving the error and restoring functionality. The change was introduced following another update and is now corrected.
Original PR description
Issue: --- The SEPA direct debit is broken. Steps to reproduce: --- 1- Enable SEPA direct debit in payment providers. 2- Add something to cart and try paying using SEPA direct debit. You get the error: `payment.provider object has no attribute company.` Cause: --- This is introduced after #250326. opw-5993720 Forward-Port-Of: odoo/enterprise#109672
This update resolves an issue where US payroll reports were incorrectly appearing in Odoo databases set up for India. The fix ensures that the necessary US payroll module is automatically installed when the base HR payroll module is installed, preventing this unexpected report visibility. This ensures consistent and accurate reporting across all Odoo environments.
Original PR description
**Version:** saas-19.1 **Steps to reproduce:** - Create a new database with India as country. - Install l10n_in_hr_payroll. - US company based reports are visible. **Issue:** Reports specific to us payroll localisation are visible for base hr_payroll module **Cause:** The l10n_us module was missing as the auto_install dependency. **Solution:** Added l10n_us as the auto_install dependency in the manifest file. **task-5948747** Forward-Port-Of: odoo/enterprise#108435
This update corrects a bug where the hours displayed for shifts spanning across multiple days were incorrectly truncated. The issue stemmed from outdated logic related to grid snapping. Removing this logic ensures accurate hour display for shifts, regardless of their duration, now that the Gantt chart no longer truncates pill names.
Original PR description
### Issue: The pill name contains the hours when it spans over the next day for less than 3 hours but not if more than 3 hours. ### Steps to reproduce: - Go to Planning app - Create a shift for an…
### Issue: The pill name contains the hours when it spans over the next day for less than 3 hours but not if more than 3 hours. ### Steps to reproduce: - Go to Planning app - Create a shift for an employee from 3pm to 2am (over two days) - The hours of the shift are displayed - Modify the shift end to 3am - The hours of the shift aren't displayed ### Cause: Before the refactor adapting the gantt view to OWL, when a shift spanned over two days less than three hours, then the gantt view truncated the pill to display it in only one day. (see [`_snapToGrid()`](https://github.com/odoo/enterprise/blame/a16b2ef569903c0ae5803c169dbd68acd0141fe1/web_gantt/static/src/js/gantt_row.js#L1044-L1072)) The same logic was done for the computation of the pill's name in [this commit](https://github.com/odoo/enterprise/commit/98a86cbacf484646f486e4648788cfa53cc9648c). But as the pills are no longer truncated since 17.0, the computation of pill names is faulty. ### Solution: We remove the checks of the 3-hour margin. This also makes the variable `spanMoreThanOneDay` useless, so we delete it. opw-5881532 Forward-Port-Of: odoo/enterprise#109548 Forward-Port-Of: odoo/enterprise#107233
This update resolves a rare crash in the Gantt chart view that occurred when users interacted with search filters. The fix prevents the chart from losing track of task pills during search operations, ensuring a more stable user experience. This improves the reliability of the Gantt chart for managing projects.
Original PR description
This commit fixes a traceback in the Gantt view caused by a race condition during search operations. If a user clicks a search dropdown item located directly above a task pill, and that search filters out the underlying pill, a `pointerenter` event can fire on the pill just as the dropdown closes. Because the search amy already be applied, the renderer could lose track of the pill, causing the handler to crash when trying to access it. This commit adds a safety check to the event handler to exit early if the hovered pill is no longer found in the renderer. Forward-Port-Of: odoo/enterprise#109545
This update clarifies how Helpdesk articles are searched when a non-root article is selected as the main article. Previously, searching didn't include child articles, but now it only searches the selected article. Additionally, a minor issue with the dropdown functionality has been addressed to prevent empty dropdowns.
Original PR description
*: website_helpdesk_knowledge **Steps to reproduce:** - Install Helpdesk/Knowledge/Website apps - Go to Knowledge - Set up a Knowledge workspace root article with some child articles to it - Go to…
*: website_helpdesk_knowledge
**Steps to reproduce:**
- Install Helpdesk/Knowledge/Website apps
- Go to Knowledge
- Set up a Knowledge workspace root article with some child articles to it
- Go to Helpdesk > Configuration > Helpdesk Teams
- Open a Helpdesk team, and go to its Help Center config
- Check Knowledge and set a non-root article as main Article
- Go to Website > Help
First issue (non-root main article):
- Type a word which is present in both the article and one of its child articles
- Only the given article match the word
- If you use the root article it will match in any descendant
Second issue (in every case):
- Type a word in the search bar
- Wait for the dropdown to appear
- Click elsewhere, dropdown is properly hidden
- Try to change the search > Traceback
**Issue:**
The domain used to find the articles to match the search uses the current id as the `root_article_id`:
`['|', ('id', '=', team_article.id), ('root_article_id', '=', team_article.id)],` which was previously working in every case as it was not possible to set a non-root article in the team setting.
This was later changed to allow any article as the default website page. As a result, when a non-root article is selected, the search domain only applies to that specific article and no longer includes its descendants.
The other issue is related to the added boostrap attribute `data-bs-toggle="dropdown"` which is not properly reset when the dropdown is removed, and triggers the creation of an empty dropdown.
**Fix:**
Doesn't seem easy to fix to allow the search on all the descendants of the given article as we can't use the article `root_article_id` and filter out the unwanted results in a clean way (and it doesn't seem doable with a direct domain). Instead clarify the situation in the help of the article.
Also manually reset the attribute for `_onFocusOut`.
related: https://github.com/odoo/enterprise/commit/ed971d4d02624f8b864ab6c37c6e7db8ba3dfe11
opw-5258607
Forward-Port-Of: odoo/enterprise#109612
Forward-Port-Of: odoo/enterprise#107438This update resolves a tour test failure caused by a delay in order synchronization. The fix adds a pause in the tour to ensure the order is fully processed before initiating refunds, preventing a constraint error related to negative order amounts.
Original PR description
In this commit: =============== - Fix the tour `test_mx_pos_invoice_order_and_refund` failing with **WARNING**: `The amount of the order must be positive for a sale and negative for a refund`. caused by an order sync issue with the backend. Cause: ====== - The tour started the refund immediately after validating the order, while the original order was still syncing with the backend. - Because of this, the constraint `_l10n_mx_edi_constrains_amount_total` was triggered since the order had `amount_total < 0` but `refunded_order_id` was not set yet. Fix: ==== - Add a waiting step in the tour to make sure the order is fully synced before starting the refund flow. Task: 5993576 Error: 237980 Forward-Port-Of: odoo/enterprise#109362
This update fixes an issue where the VoIP keypad wasn't correctly updating during calls. Now, when users type digits on the keypad, the system accurately reflects those presses in the softphone, ensuring a seamless call experience. This improves the reliability and usability of the VoIP feature.
Original PR description
When typing digits in the VoIP PiP keypad during an in-progress call, only DTMF was sent and the in-call keypad model was not updated. This change syncs PiP keypad presses with the softphone. task-5979774
This update corrects a problem with how leave periods are calculated, specifically addressing potential inconsistencies caused by different time zones. By using a new date field, the system now accurately reflects leave schedules regardless of where the data is accessed, ensuring accurate payroll processing for employees in Switzerland.
Original PR description
This commit fixes the leaves work interruption constraint by replacing `date_from` and `date_to` with `request_date_from` and `request_date_to`, thereby resolving any inconsistencies that may arise from time zone differences. task-5966780 Forward-Port-Of: odoo/enterprise#109736 Forward-Port-Of: odoo/enterprise#108541
This update resolves a technical issue preventing tax report tests from running correctly within the `l10n_vn` module. The change involves updating a tax label to ensure all tests pass, improving the reliability of tax reporting functionality. This ensures accurate tax calculations and reporting.
Original PR description
Updates in the `l10n_vn` module revised a tax label. We update it here to pass otherwise failing tests. task-[5904297](https://www.odoo.com/odoo/all-tasks/5904297) odoo-[251906](https://github.com/odoo/odoo/pull/251906) Forward-Port-Of: odoo/enterprise#109478
This update resolves intermittent test failures in the l10n_ph_reports_asset module related to how depreciation calculations handle leap years. The fix ensures accurate reporting by stabilizing the test suite against this specific drift, preventing potential reporting discrepancies.
Original PR description
The test suite fails intermittently due to leap years affecting daily -computed depreciation runbot-[241145](https://runbot.odoo.com/odoo/runbot.build.error/241145) Forward-Port-Of: odoo/enterprise#109482
This update adjusts the minimum and maximum amounts for employee mobility budgets each year, aligning them with current economic conditions. This ensures that mobility budgets remain relevant and appropriate for employee relocation needs. The change is a routine maintenance update to the accounting module.
Original PR description
Each year the minimum and maximum amount of mobility budget is indexed, here are the new values. Forward-Port-Of: odoo/enterprise#109641
This update corrects a technical error that prevented users from properly selecting a cashier when opening the Point of Sale (POS) system. The issue stemmed from a variable name change that caused a system error. The fix restores the original variable name, ensuring smooth cashier selection functionality.
Original PR description
Since this commit: https://github.com/odoo/enterprise/commit/52e2f216528bcb0e67844ac2164f647fee4a2a95 The clockState variable was renamed without modifying the other references. This causes a traceback when trying to select a cashier while opening the POS. This has now been fixed by restoring the previous variable name. Forward-Port-Of: odoo/enterprise#108750 Forward-Port-Of: odoo/enterprise#108665
This update corrects a persistent warning appearing on payslips after deleting a duplicate. The fix involves canceling the payslip before deletion to ensure accurate duplicate checks, preventing unnecessary warnings and improving payroll processing reliability. This ensures employees receive correct pay information.
Original PR description
### Steps to reproduce: - Create two payslips for the same employee for the same period. - Delete one of them; the duplicate warning still appears on the other payslip. ### Fix: - Before deleting a payslip, first cancel it so the current payslip can be skipped while checking for duplicate payslips. - Then trigger recompute _compute_issues for duplicates payslips task: 5427473 Forward-Port-Of: odoo/enterprise#109372 Forward-Port-Of: odoo/enterprise#104124
This update allows managers to automatically initiate appraisal campaigns for all their team members, even if they don't select individuals manually. This simplifies the process for managers and ensures all appraisals are scheduled. The change includes new tests to verify the functionality.
Original PR description
. Allow the Leader to launch an appraisal campaign for all their employees by default when no specific employees are selected in the list. task-5347755 Forward-Port-Of: odoo/enterprise#100214
This update resolves a bug that prevented users from creating new resources within appointment bookings. The issue stemmed from an incorrect timezone setting being automatically populated, triggering a validation error. The fix ensures a default timezone is applied, preventing the error and improving the resource creation process.
Original PR description
Steps to reproduce =============== 1. Open appointment of resource type 2. Create a new resource from resource tags. 3. Give the resource a name and save. ----> ValidationError will be shown. Issue…
Steps to reproduce =============== 1. Open appointment of resource type 2. Create a new resource from resource tags. 3. Give the resource a name and save. ----> ValidationError will be shown. Issue ===== When creating the new resource from the appointment form view, the value for the `tz` of the `appointment.resource` is `False`. Also, `tz` field is inherited from `resource.mixin` and is a related field as `resource_id.tz`. Therefore, when creating the `appointment.resource` with `tz` as `False` writes the related `resource.resource`'s `tz` field. As `tz` field is required field for the `resource.resource` table, the `ValidationError` is raised. Solution ======= After this commit, we give the default value to the timezone with fallback to current user's timezone or UTC which matches to the default value of `resource.resource`'s timezone field but with a side-effect of overwriting resource's timezone if somehow `default_resource_id` is provided. We also fix in parallel by making the timezone field `readonly` when invisible to avoid "saving" the `False` value for the tz. Task-5712786 Forward-Port-Of: odoo/enterprise#107662
This update resolves an issue where users were seeing duplicate labels for widget properties within the Odoo Studio. The fix involves a technical workaround to prevent the duplication of content rendered by the OWL2 framework, ensuring a cleaner and more consistent user experience. This addresses a known bug and improves the stability of the Studio interface.
Original PR description
steps: - Install Project and Studio - Open studio, add a decimal field - Click on it - There are two "Minimum Digits" instead of "Digits" & "Minimum Digits" Add dummy `t-set` nodes before `t-esc` directives in property sub-templates to prevent label content from being rendered twice. This is a known OWL bug (https://github.com/odoo/owl/issues/1610) where `t-esc` inside a named slot gets duplicated. Since the issue lies in the OWL2 framework itself, a `<t t-set="__dummy"/>` is used as a workaround to break the duplication pattern in owl2. opw-5974611 Forward-Port-Of: odoo/enterprise#109694
This update corrects a display issue where a download button remained visible for employee payslips when the 'Manually' payment mode was selected within the India Payroll localization. The fix ensures the button is hidden correctly, preventing confusion and unnecessary actions for users. This improves the user experience for employees using the India payroll system.
Original PR description
Problem ------------------ When the user selects the "Manually" payment mode in the employee payslip, there is nothing to download but the download button is still visible. Affects all companies but only when the India Payroll localization is enabled. Objective -------------------- The Payslip Payment Wizard for the India payroll localization changed the conditions to hide the download button, so when the localization is enabled, all views are overwritten and the button becomes visible for all companies when "Manually" payment mode is selected. Solution ---------------------- Add the manual payment mode to the list of conditions to hide the download button in the l10n_in_hr_payroll localization. Task: 5975685 Forward-Port-Of: odoo/enterprise#108868
This update prevents Instagram posts from failing due to delays in media processing. By using a scheduled cron job to retry publication, the system now handles temporary processing delays gracefully, ensuring posts are successfully published without impacting server performance.
Original PR description
With the current behavior the Instagram API sometimes requires time to process media containers, the media_id is not yet ready on Instagram side, leading to failed posts. To avoid this, we now use an asynchronous flow: If the media container is not immediately 'FINISHED', we store the container ID in `instagram_post_id` (prefixed with `containerIDs-`), set the state to 'posting', and trigger the scheduled cron to retry in 1 minute. The `_cron_publish_scheduled` method has been updated to detect these pending posts and resume the publication attempt so workers remain free while Instagram processes the media. opw-5081325 Co-authored-by: @ushyme Forward-Port-Of: odoo/enterprise#100313
This update resolves an issue where rapidly clicking the 'Back' button during barcode internal transfer creation resulted in duplicated quantities being added to the transfer. The fix prevents multiple 'save' calls, ensuring accurate quantity tracking.
Original PR description
**Steps to reproduce:** * Install `stock` module. * Go to the > Settings*, enable *Packages* and *Storage Locations*(warehouse). * Create a storable product and set *Tracking Inventory* to **By…
**Steps to reproduce:** * Install `stock` module. * Go to the > Settings*, enable *Packages* and *Storage Locations*(warehouse). * Create a storable product and set *Tracking Inventory* to **By Quantity** and set some *barcode* * Update the on-hand quantity for the product and assign it to one packages. * Open *Barcode > Operations > Internal Transfer* and create a new transfer. * Click the *gear icon* in the top-right corner to open the barcode scanning flow. * manually enter the created product barcode and apply it. * Click the **Back** button multiple times in quick succession. * Go to the backend and open the created internal transfer. **Observed behavior:** * The internal transfer is created with *double quantities* compared to what was added in the barcode interface. **Cause:** * When clicking the *Back* button, the following flow is triggered: `exit()` → `beforeQuit()` → `save()`. https://github.com/odoo/enterprise/blob/07ede9bda567d94da27da79b945e2189fa5aca6e/stock_barcode/static/src/components/main.js#L406-L414 https://github.com/odoo/enterprise/blob/07ede9bda567d94da27da79b945e2189fa5aca6e/stock_barcode/static/src/models/barcode_model.js#L473-L475 https://github.com/odoo/enterprise/blob/07ede9bda567d94da27da79b945e2189fa5aca6e/stock_barcode/static/src/models/barcode_picking_model.js#L828-L832 https://github.com/odoo/enterprise/blob/07ede9bda567d94da27da79b945e2189fa5aca6e/stock_barcode/static/src/models/barcode_model.js#L477-L483 * If the button is clicked multiple times rapidly, `exit()` is called again before the previous `save()` RPC completes. * This results in multiple `save()` calls being executed, causing duplicated quantities on the picking. reference - https://github.com/odoo/enterprise/pull/103999/changes/b791239c154deb6a25f85d65ebc72e3ac53b6c74 **Fix:** * Prevent rapidly clicking the Back button multiple times does not multiply quantities. --- opw-5375899 Forward-Port-Of: odoo/enterprise#109128 Forward-Port-Of: odoo/enterprise#103130
A recent update to the Avatax integration for expense processing caused crashes when posting expense entries. This fix addresses a key error related to how the system handles 'in_receipt' move types, ensuring expenses with Avatax now process correctly. The change improves the reliability of expense reporting.
Original PR description
Currently, the expenses flow with Avatax integration crashes when posting the expense entry. Steps to reproduce: - Have an employee with an address in the US. - Enable 'Detect Automatically' in the Avalara fiscal position. - Create an expense for the employee, paid by Employee. - Submit > Post Journal entry > Post Expense. Action will be blocked by a traceback reporting error `KeyError: 'in_receipt'` Analysis: After [1] expense journal entries are now 'in_receipt'. The dictionary in account_avatax does not take into account this move type. This provides a fallback to 'Any' for any other move types [1] https://github.com/odoo/odoo/commit/f835ac0c8adb49d04bed746fd624b8976cc32991 opw-5872768 Forward-Port-Of: odoo/enterprise#109381
This update fixes a display issue within the Work Order Kanban view, ensuring accurate status updates and preventing incorrect data from appearing. It also excludes subcontracted productions from the Kanban view, providing a cleaner and more focused view for users. This improves the overall usability and accuracy of work order management.
Original PR description
A few UI Fixes. Fix date_finished when setting a workorder 'in progress'. Exclude subcontracted productions from Kanban view. task: 5945452 Forward-Port-Of: odoo/enterprise#108299
This update fixes an issue where negative values were appearing in the tax report XML for carried over tax lines. The change ensures that only positive amounts are included in the XML, improving report accuracy and preventing potential errors in tax calculations. This resolves a previous bug reported by internal teams.
Original PR description
When generating the xml for tax report, negative values should not be present in the xml for carried over lines (81, 82, 83, 86, 87, and 88) Steps: - Create a RBILL for today - 1 month, add an invoice line with tax using one of the following tags: -81, -82, -83, -86, -87 or -88 in its base refund repartition line - Open the tax report on the month of the RBILL - Generate the xml, either by the dedicated button, or by creating and posting the closing entry -> there is line(s) for negative amounts opw-5955323 opw-5428395 Forward-Port-Of: odoo/enterprise#109568 Forward-Port-Of: odoo/enterprise#108916
This update resolves an issue where commission reports were incorrectly calculating amounts due to how large numbers (bigints) were handled between Python and the JavaScript framework. By ensuring the full ID is always used, the system now accurately reflects commission amounts, preventing data conflicts and ensuring reliable reporting.
Original PR description
In commission report, we need unique ids for achievements and commissions. We avoid using row_number because it becomes really slow when the amount of records increases. That's why we need reliable unique ids, build from the account move line/sale order line/sale order log, user_id, commission rules. As it represents a lot of information stored inside a unique integer, bigint are necessary. It works great in python because int() can be used to handle bigint but JavaScript is not great with that. It will cast the value sent by the ORM silently and as a result, when the ORM is called back by the JS framework, it will pass a truncated id that either conflict with another record or may not exists (ids are generated using recipe). This commit ensure that the full id is always accessible and is used to browse records when the framework js contact methods. task-5973128 Forward-Port-Of: odoo/enterprise#109646 Forward-Port-Of: odoo/enterprise#108751
This update fixes an issue where the softphone displayed an incorrect format for keypad keys. The system now correctly handles key data, ensuring a cleaner and more accurate display of keys in the softphone interface. This improves the user experience and visual consistency.
Original PR description
Since [1] ([IMP] voip: fine-tune the PiP window), `keypadKeys` now returns objects (`{ key, letters, icon? }`) instead of plain strings.
`onClickKeypadKey` was still handling the payload like a string in part of the flow, which caused `[object Object]` displayed in the main softphone.
[1]: https://github.com/odoo/enterprise/commit/71ad3b98f25a4eb215d4aece9f1c4cb2f5ddcc76