Friday, February 6, 2026
38 changes · saas-19.1
Enhancements to existing features
This update introduces the ability to temporarily hide products in the Point of Sale system, preventing them from being added to orders. Products marked as 'snoozed' appear grayed out but remain available for selection. This feature provides flexibility in managing product availability during busy periods.
Original PR description
The PR will add an extra availability section on the product info popup which shows whether a product is currently available. From that section the product can then be 'snoozed', which will make it unavailable for a specified period of time. (1, 2, 4 hours, or for the entire session). When the product is unavailable there's a countdown timer on the popup showing when the product will be available again. Products which are 'snoozed' still show up on the product screen, but grayed out. The effect is purely cosmetic, as they can still be added to new orders. Task-[5170696](https://www.odoo.com/odoo/project/1737/tasks/5170696) Previous discussion-[#232625](https://github.com/odoo/odoo/pull/232625) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This update resolves an issue where dynamic product snippets would cause horizontal scrolling when the content width was set to 'max'. The fix repositions the navigation buttons to ensure they remain within the visible area, improving the user experience on larger devices.
Original PR description
Steps to reproduce: 1. Drag and drop the dynamic products snippet. 2. Select it and change the content width to **max**. Issue: When the content width is set to **max**, an unnecessary horizontal scroll appears. Reason: The issue occurs because the `previous` and `next` navigation buttons were not properly positioned. Fix: For devices larger than "mobile", the `previous` and `next` buttons are re-positioned, horizontally inward by "**50%**" of their own width with the help of `transform` property. This keeps the controls within the visible area and prevents horizontal scrolling. task-5090468 Before: <img width="1915" height="966" alt="image" src="https://github.com/user-attachments/assets/0c20d0b6-32cc-477b-8403-55bb0d372d8d" /> After: <img width="1920" height="963" alt="image" src="https://github.com/user-attachments/assets/4194b0f1-f3ad-4818-aa6f-2fda4561d2c7" /> Forward-Port-Of: odoo/odoo#237876
Documentation and clarification updates
This pull request updates the Adhoc Corporate Legal Agreement (CLA) membership list. This ensures our development team adheres to Odoo's legal guidelines and licensing requirements. The change was made to formally add new contributors, reflecting recent onboarding processes.
Original PR description
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#247183
This update resolves a problem in Kiosk Mode where the 'Buy an RFID Device' link incorrectly directed users to a French Amazon site that didn't ship to the United States. The link has been corrected to use the US Amazon site and a compatible merchant, ensuring users can now successfully purchase the necessary device.
Original PR description
Steps to reproduce: ----------------------------------- 1. Install the Attendance module with demo data 2. Go to Kiosk Mode > click on the link to 'Buy an RFID Device' 3. On the opened Amazon page, change the delivery country to United States Observation: ----------------------------------- The Amazon product page becomes blank after switching the delivery country to the United States Issue: ----------------------------------- The link redirects to the French Amazon website (`amazon.fr`) with a merchant that does not ship RFID devices to the United States Solution: ----------------------------------- Update the link to use `amazon.com` instead of `amazon.fr`. Change the merchant ID to one with broader delivery availability, including the United States. opw-5479568 Forward-Port-Of: odoo/odoo#246041
This update optimizes how the system searches for a user's preferred project within timesheets. Previously, the search was performed unnecessarily every time a related record was accessed. This change ensures the preferred project is only identified when required, improving performance and reducing potential delays.
Original PR description
Before this commit, each time the default_get method is called for `account.analytic.line` model, the favorite project is computed even if we don't expect to search the default value for `project_id` field. This commit makes sure we will only compute the default project when it is really needed.
This update resolves an issue where the SE blackbox wasn't sending the correct POS ID. The fix ensures accurate data transmission, which is crucial for reliable reporting and integration with our cash management systems. This change improves the stability and accuracy of data sent to the SE blackbox.
Original PR description
When using a v1 CleanCash blackbox, the command being sent to the blackbox was mistakenly sending a POS ID of " ". It just so happened this worked correctly when testing with our blackbox because it had " " registered as a POS ID. The POS ID is now sent correctly. task-5077448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a bug where adding a second file to the Activity composer didn't work correctly. The fix ensures that subsequent file uploads are properly processed, preventing the selection from being lost and allowing users to add multiple attachments. This improves the usability of the Activity composer.
Original PR description
…omposer Problem: In the "Activity" tab of the composer, adding a second file does not work. The first file is added correctly, but subsequent uploads are ignored. Cause: The selection is lost during…
…omposer Problem: In the "Activity" tab of the composer, adding a second file does not work. The first file is added correctly, but subsequent uploads are ignored. Cause: The selection is lost during file selection because the component is re-rendered, which recreates the DOM nodes. This re-render only happens in `HtmlMailField` because it processes the value through `convert_inline`. Even when `lastValue` and `value` are logically the same in `useRecordObserver`, they differ in markup: - `lastValue` contains self-closing `v:image` and `v:fill` tags. - `value` contains open/closing versions of those tags because they are not excluded from the self-closing to open/closing conversion. This mismatch triggers a re-render, causing the selection to be lost and preventing the second file from being inserted. Solution: Exclude `v:image` and `v:fill` from the self-closing to open/closing tag conversion so that `lastValue` and `value` remain equivalent. This prevents the unnecessary re-render and preserves the selection. Steps to reproduce: - Click on "Activity" in the chatter to open the dialog. - Click in the "Log a note..." field. - Use the upload button to add a file. - Press Enter. - Use the upload button again to add another file. - Observe that the second file is not added. task-5490722 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245721
This update fixes an issue where loyalty programs were incorrectly displaying currency information in shops that don't support multiple currencies. The fix prevents loading programs with incompatible currencies, ensuring accurate pricing and a better user experience. This resolves a potential confusion point for customers.
Original PR description
Currently, the pos does not support multi-currencies. However, nothing was making sure the programs loaded in a shop were compatible in terms of currencies. Steps to reproduce: ------------------- * Create a coupon loyalty program, coupons * Change currency to euro * Create coupons * Copy obe of the code * Open USD Shop * Apply coupon, cancel order, apply coupon again > The popup does not show the correct currency Why the fix: ------------ As the pos is not ready for multi-currency we should not even load programs with different currencies. opw-5220834 Forward-Port-Of: odoo/odoo#238491
This update resolves an issue where the 'Create Page' button wasn't appearing when adding a new menu item. The change ensures that the system checks the menu URL again after edits, synchronizing the page existence status and providing the correct suggestion. This improves the user experience when building the website.
Original PR description
Since commit 45e15673a70cf770d8e343a0a3b805eccdbed0d1, the information about whether a page of a menu exists is fetched asynchronously. Thus, when the dialog to change the url is closed to save the change, the value whether the page exists may not be in sync with the url. This commit checks the url again after the edit dialog is closed to correctly suggest to create a page. Steps to reproduce: - Open website builder - Click on the header - Click on "Edit Menu" - Click "Add new menu" - Type a title for which there is no existing corresponding page and _quickly_ click "Continue" - Bug: The button to suggest to create a page does not appears task-5474734 Forward-Port-Of: odoo/odoo#242583
This update fixes an issue where vendor bill labels on payable lines were empty when a payment reference wasn't provided. Now, the payable line automatically displays the bill reference, and updating the payment reference correctly updates the label. This ensures more accurate and informative reporting on vendor payments.
Original PR description
Before PR: - On vendor bills and refunds, if the Payment Reference is empty, a placeholder saying `Use Bill Reference` is shown. But the Bill reference is still not written on the Payable line, making the label empty. - When Payment Reference is set, updating the Payment Reference does not update the payable line label. After PR: - The payable line label is now populated with the Bill Reference when the Payment Reference is empty. - Now, when Payment Reference is set, updating the Payment Reference updates the payable line label. - Modified the test cases which were failing due to an empty label. Related PR (Enterprise) : https://github.com/odoo/enterprise/pull/91535 Task : 4982864 Forward-Port-Of: odoo/odoo#247345 Forward-Port-Of: odoo/odoo#221491
This update allows users to reset Vendor Bills issued by ANAF (the Romanian tax authority) to a draft state, even if they are currently in an ‘EDI’ processing status. This change is necessary due to a recent update consolidating the e-invoice functionality into the broader ‘l10n_ro_edi’ module. It ensures proper handling of e-invoices and simplifies the process for users.
Original PR description
Adjusting the visibility check for "Reset to draft" button to allow Vendor Bills received from ANAF to be reset even when they have a EDI state. Will require to be shifted to `l10n_ro_edi` in 18.0+ as the efactura module is merged into it. task-5892651 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247266 Forward-Port-Of: odoo/odoo#246697
This update resolves a problem that occurred when renaming inherited custom fields in Odoo. To ensure correct operation, the system now removes the associated inherited fields from the database before renaming. This prevents data inconsistencies and ensures a smoother user experience.
Original PR description
When renaming a custom field that is inherited, first remove the generated inherited fields from the database. task-5172546 backport of #240603 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247344
This update resolves an issue where search requests using 'limit=False' were incorrectly interpreted as applying a limit of zero, resulting in empty search results. The change ensures that 'limit=False' is treated as 'no limit', maintaining the expected behavior for users. This ensures search results are accurate and consistent.
Original PR description
Some callers use `limit=False` to mean "no limit" (e.g. from RPC, where `None` is not available). Since `bool` is a subclass of `int`, `False` was treated as `0` and ended up applying `LIMIT 0`, returning an empty result set. This PR updates `_search` to treat `limit=False` as "no limit" while preserving the valid semantics of `limit=0`. Note: `limit=True` is left unchanged for backward compatibility and continues to behave as `LIMIT 1`. Fixes #228555 merge=merge -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/odoo#247304
This update fixes an issue where task titles and descriptions generated from sales orders were incorrectly formatted. Now, task titles accurately reflect the sales order line description, and descriptions include all relevant details, regardless of whether the sales order line had a single or multi-line description. This ensures consistent and accurate task information.
Original PR description
Steps to reproduce: - - Create a sales order with a service product that generates a task. - Add a multi-line description to the sales order line. - Confirm the order to generate the task. - View the generated task’s title, description. Issue: - - Task titles were generated in the format sales order name + first line of the product description, and the description contained only the remaining lines. Fix: - - If the sales order line has a single-line description, it is used as the task title. - If the sales order line has a multi-line description or no description, the product name is used as the task title, and the sales order line description is used as the task’s description. Commits 588c3be420a542d8594b26ecc200ca68e35d15fc, c3877b2acd74f1f798d0046b168418300f9e27ca, and 18edce4d859935bd1425144e4c835acabc5f68f4 previously attempted to fix this issue. task-4903208 Forward-Port-Of: odoo/odoo#217035
A bug in the custom color picker was causing the color slider to reset unexpectedly when selecting white. This fix prevents unnecessary UI updates, ensuring the color picker functions correctly and reliably for users. The change improves the overall user experience and prevents visual inconsistencies.
Original PR description
**Current behavior before PR:** In editor's custom gradient picker, if `#FFFFFF` is picked from the very top of picker area, the color slider is reset to color `red`. This happens because when moving picker pointer to the top of area, `selectedColor` prop is updated to `#FFFFFF`, which calls `onWillUpdateProps` callback. As result, `convertRgbToHsl` sets hue value 0 for `#FFFFFF`, setting color slider to red. **Desired behavior after PR is merged:** This commit ensures that in `onWillUpdateProps` callback, `setSelectedColor` should not get called if `newSelectedColor` is the same as `this.colorComponents.cssColor` to prevent updating UI twice while picking the color. task-5170041 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246988 Forward-Port-Of: odoo/odoo#236644
This update fixes an issue where POS order confirmation emails displayed order amounts without currency symbols or proper formatting. The change uses a standard Odoo formatting function to ensure emails consistently show amounts in the correct currency and locale for each user, improving clarity and professionalism.
Original PR description
**Problem:** POS self-order confirmation emails (delivery and takeout) display the order amount without the currency symbol and proper formatting. **Steps to reproduce:** 1. Create a POS self-order…
**Problem:** POS self-order confirmation emails (delivery and takeout) display the order amount without the currency symbol and proper formatting. **Steps to reproduce:** 1. Create a POS self-order with delivery or takeout 2. Preview or send the confirmation email 3. Observe the amount displays without currency symbol or formatting **Current behavior:** Email shows amount as a plain number (e.g., "2.0") without currency symbol or locale-specific formatting. **Expected behavior:** Email should display amount with currency symbol and proper formatting based on user's locale (e.g., "2,00€", "$2.00", etc.). **Cause of the issue:** The email templates used direct field output `t-out="object.amount_total"` which renders only the numeric value without any formatting. This bypasses Odoo's standard currency formatting that handles both the symbol and locale-specific decimal/thousand separators. **Fix:** Use the `format_amount()` helper function which properly formats monetary values with currency symbols and locale-appropriate separators. The function takes the amount and currency as parameters and returns the fully formatted string respecting the user's language settings. opw-5485801 Forward-Port-Of: odoo/odoo#244042
This update resolves an issue where duplicating a warehouse with a Point of Sale (POS) operation type resulted in only one instance being created. The fix ensures that both the original and duplicated warehouses correctly inherit and duplicate the POS operation type, improving data consistency and functionality.
Original PR description
## Short functional explanation of the error When duplicating a warehouse, if it has an PoS operation type, this operation type will not be duplicated. On the other hand, all other operation types…
## Short functional explanation of the error When duplicating a warehouse, if it has an PoS operation type, this operation type will not be duplicated. On the other hand, all other operation types will be duplicated. ## Reproduction Steps 1. Make sure PoS and inventory are well installed. 2. Go to inventory. 3. Click on configuration, then warehouse. 4. Select a warehouse, click on action, then duplicate. 5. Click on configuration, then on Operation Types. ### Expected behavior We should be able to see 2 instances of PoS operation type: one for the original company, and one for the copy. ### Unexpected behavior There's only one instance of PoS operation type, which is related to the original company. ## Origin of the issue PoS operation type is a model inherited from stock.warehouse, and no copy method was defined. Therefore, upon duplication, the copy method of the original stock.warehouse was called, leading to issues with the field created in the inherited version. __ opw-4991271 Forward-Port-Of: odoo/odoo#227635 Forward-Port-Of: odoo/odoo#222694
This update corrects an issue where the Product Configurator dialog's border radius was unintentionally changing due to button styling. The fix ensures a consistent and professional look across all industries, resolving a visual inconsistency that impacted customer experience. This change improves the overall design and usability of the product configurator.
Original PR description
`Description of the issue this PR addresses:` The Product Configurator dialog border radius was unintentionally affected by button styling. The dialog inherited its border radius from the…
`Description of the issue this PR addresses:`
The Product Configurator dialog border radius was unintentionally affected by button styling. The dialog inherited its border radius from the $btn-border-radius variable, which is intended only for buttons and is customized in the design template.
`Current behavior before PR:`
- The Product Configurator dialog uses --modal-border-radius: #{$btn-border-radius};.
- $btn-border-radius is customized to make buttons fully rounded.
- Due to this linkage, the dialog border radius changes unintentionally.
- The issue is reproducible across multiple industries such as electronic_store, outdoor_activities, and team_sports_club.
`Desired behavior after PR is merged:`
- The Product Configurator dialog no longer depends on $btn-border-radius.
- Dialog border radius remains consistent and independent of button styling.
- Button border radius customization does not affect modal dialogs.
- Styling remains consistent across all affected industries.
Task ID: 5913300This update fixes a visual issue in the Expenses app where the layout would become distorted when there were no expenses to process. The fix ensures a consistent and stable workspace for the 'Upload or Drop Your Receipt' helper, preventing misalignment and overlapping elements. This improves the overall user experience.
Original PR description
Steps to reproduce: 1. Open the Expenses app and navigate to 'Expenses to Process'. 2. Ensure no expenses are present so that the 'Upload or Drop Your Receipt' helper appears. 3. Remove filters. 4.…
Steps to reproduce: 1. Open the Expenses app and navigate to 'Expenses to Process'. 2. Ensure no expenses are present so that the 'Upload or Drop Your Receipt' helper appears. 3. Remove filters. 4. The layout becomes 'disturbed'—the upload overlay misaligns and overlaps the dashboard. Issue: The issue occurred because the SCSS selector was incorrectly targeting the combination of .hr_expense and .o_list_view. In the Odoo DOM structure, the hr_expense class is added to the Renderer via XML, while o_list_view is assigned to the main Controller. Because the selector never matched an actual element, the min-height: 100% rule remained inactive. Without a stable minimum height, the Renderer container collapses when empty. This prevents the 'Pink Overlay' from having a stable anchor point, leading to layout shifts and visual interference with the Search Panel and Dashboard headers. Solution: Update the SCSS selector to target &.o_list_renderer and &.o_kanban_renderer. This ensures the rule correctly matches the element carrying the hr_expense class. By forcing a min-height: 100% !important on the renderer itself, the container remains stable regardless of the data count. This provides a consistent workspace for the 'No Content' helper to render without disrupting the surrounding flexbox layout. opw-5452618 Forward-Port-Of: odoo/odoo#247366
This update corrects a technical issue where some track visitors were missing essential information, causing errors when users accessed event tracks. The fix adds checks to ensure valid visitor IDs are used, preventing these errors and improving the stability of the event tracking feature. This ensures a smoother experience for users browsing event tracks.
Original PR description
[1] added asserts preventing the use of falsy ids when browsing. To compute "wishlist_visitor_ids" we did not take into account that some "track visitors" don't have a visitor set. Leading to a traceback when opening some tracks. [1]: 4290724a4c8c57fba4f4d3d688d38f65dadcc38f task-5911184
This update fixes a recent issue where creating new projects from templates was blocked when project stages were enabled in the kanban view. The change ensures users can now seamlessly create projects from templates, regardless of whether project stages are active, improving workflow efficiency.
Original PR description
In a previous commit, the feature allowing to create a new project from project templates was mistakenly removed in kanban view, when project stages were enabled. This commit resolves the issue, so to still be able to create a project from templates with project stages enabled. task-5877215
This update resolves a discrepancy in how the 'Line Extension Amount' is calculated within the account_edi_ubl_cii module. The change ensures accurate untaxed and total amounts in invoices, addressing a potential inconsistency related to global tax rounding. This improves invoice accuracy and compliance.
Original PR description
…-10] According to [BR-CO-10], LineExtensionAmount should be: <quantity> * <price_unit_wo_tax> + charges - allowances It was implemented as: <quantity> * <price_unit_wo_tax> + charges - allowances + <delta_total_excluded> <delta_total_excluded> is needed because it's the additional delta distributed by the global rounding of taxes accross the lines. If you don't add it, you will change the untaxed and total amount of your document. Instead, this commit adds 2 new values in the base_lines's tax_details: gross_total_excluded & discount_amount being the rounded versions of raw_gross_total_excluded & raw_discount but taking care of maintaining a global consistency regarding the global rounding. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247423 Forward-Port-Of: odoo/odoo#246382
This update fixes a technical issue that prevented the live chat composer from correctly displaying its open state. The change updates a selector used in testing, ensuring the live chat functionality works as expected for users. This resolves a reported error and improves the overall user experience.
Original PR description
Purpose of this commit, To update the selector for asserting the presence of the livechat chat window in open state. runbot error - https://runbot.odoo.com/odoo/error/232912
This update fixes a minor issue where the channel name wasn't displayed in invitation dialogs when inviting members to Discuss channels. Now, the channel name is correctly shown, improving the clarity and usability of the invitation process. This ensures users have the necessary context when extending discussions.
Original PR description
Before this PR, when a user opened any Discuss channel and invited people from the member list, the channel name was missing in the invitation dialog. This commit fixes the issue by correctly displaying the thread name in the invitation dialog. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where tests within the Sale Stock module were previously disabled. The team has re-enabled these tests, ensuring the continued stability and reliability of the Sale Stock functionality. This change improves the quality and trustworthiness of the Odoo system.
Original PR description
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#246522
This update resolves an issue where incorrect data related to vendor refunds was being imported through the account_edi_ubl_cii module. The fix prevents this import, ensuring accurate financial reporting and compliance. This change improves data integrity and avoids potential errors in accounting processes.
Original PR description
opw-5870516 opw-5898302 opw-5917394 opw-5892671 Forward-Port-Of: odoo/odoo#247619
This update resolves a problem where time off requests weren't being correctly processed, specifically when reporting to the next month. The issue stemmed from a rounding error that created a tiny, incorrect work entry. This fix ensures accurate time off calculations and reporting, preventing potential payroll discrepancies.
Original PR description
STEP TO REPRODUCE: ------------------ 1- Set to an employee a schedule of 7h36 hours per day 2- Create a payslip for him on february and pay it 3- Create a time off from 28th debruary to 4th of march 4- Approve it and click on the button "Report to Next Month" You will have an issue but you should be able to do it REASON: ------- A rounding issue caused the creation of work entry of 1*10^-15 hours
This update prevents the daily automatic execution of a reporting cron job, which was causing unnecessary database activity. By changing the cron interval to 9999 months, the reporting process now runs only when triggered, improving system stability and performance. This resolves a potential issue impacting Odoo's responsiveness.
Original PR description
The cron interval is updated from 1 day to 9999 months to effectively Disable automatic execution. The workflow is fully real-time and trigger-based, and running this cron Daily would unnecessarily wake up registries and databases. task-5885482 Forward-Port-Of: odoo/enterprise#106264
This update resolves an issue where products with a zero price were being sent to UrbanPiper during menu synchronization, causing problems for their system. The change now excludes these zero-price products from the sync process, ensuring smoother integration with UrbanPiper and preventing potential errors.
Original PR description
Before this commit: --- - During menu sync, charge products with a price of zero were sent to UrbanPiper which caused issues on the UrbanPiper side. After this commit: --- - Exclude charge products with a zero price from the menu sync. task-5867272 Forward-Port-Of: odoo/enterprise#106491 Forward-Port-Of: odoo/enterprise#105861
This update resolves a bug where time off requests weren't being correctly processed, leading to inaccurate payroll calculations. Specifically, a rounding error was creating a tiny work entry, causing a reporting issue when 'Reporting to Next Month' was used. The fix ensures accurate time off deferral and payroll processing.
Original PR description
STEP TO REPRODUCE: ------------------ 1- Set to an employee a schedule of 7h36 hours per day 2- Create a payslip for him on february and pay it 3- Create a time off from 28th debruary to 4th of march 4- Approve it and click on the button "Report to Next Month" You will have an issue but you should be able to do it REASON: ------- A rounding issue caused the creation of work entry of 1*10^-15 hours Forward-Port-Of: odoo/enterprise#106473
This update fixes a problem that prevented the 'hr_expense_stripe' module from installing correctly in certain countries where Stripe payment processing isn't supported. The fix removes a redundant check, allowing the module to function properly in locations without Stripe integration. This ensures a smoother installation experience for all users.
Original PR description
[FIX] hr_expense_stripe: error when installing loca not supported Step to reproduce the bug: - install 'hr_expense_stripe' - try to install a localization where Stripe is not available (e. g. Romania) - The error raise This is due to an @api.constrains that can be removed no-task Forward-Port-Of: odoo/enterprise#106351
This update resolves an issue where the POS ID wasn't correctly transmitted to the blackbox, impacting the generation of receipts. A secondary change restricts blackbox device selection within the POS configuration, enhancing data security and accuracy. This ensures proper receipt generation and improved data integrity.
Original PR description
When using a v1 CleanCash blackbox, the command being sent to the blackbox was mistakenly sending a POS ID of " ". It just so happened this worked correctly when testing with our blackbox because it had " " registered as a POS ID. The POS ID is now sent correctly. Another small fix was made to only allow selecting blackbox devices in the Fiscal Data Module field in the POS config settings. task-5077448 Forward-Port-Of: odoo/enterprise#106431
This update fixes a minor issue where the system repeatedly asked users to select an employee when adding goals to an appraisal. The change ensures the system correctly identifies the employee from the appraisal, streamlining the goal creation process and improving user efficiency. This prevents unnecessary steps and reduces potential user frustration.
Original PR description
When adding goals from an employee appraisal, Appraisal of an employee > Goals > Open Library > Select Goals > Continue On the next screen, you need to select the employee, but you come from an employee appraisal! The employee was already known but the flow still asked to re-select an employee again. - The root cause was the employee context was passed as a list while goal creation expects a single employee. - This fix adapts the context so goals are directly created for the current appraisal employee. task-[5420664](https://www.odoo.com/odoo/project/1251/tasks/5420664) Forward-Port-Of: odoo/enterprise#102751
This update resolves a problem where test cases for Indian GST reports were failing due to a recent change in how payment references are handled. The test cases have been updated to correctly reflect the new label format, ensuring accurate reporting of Indian GST data. This change was prompted by a previous community fix.
Original PR description
Before: - Test cases in Indian GST reports were failing because they expected payable line labels like `installment #1`, but after the community fix (Task: 4982864), payable lines are now populated with the bill reference when Payment Reference is empty, resulting in labels like `TEST/0001 installment #1`. After: - Modified test cases to expect the new label format that includes the bill reference. Related PR (Community) : https://github.com/odoo/odoo/pull/221491 Task: 4982864 Forward-Port-Of: odoo/enterprise#106573 Forward-Port-Of: odoo/enterprise#91535
This update fixes a potential issue where the system wasn't correctly processing weight readings from the scale, particularly when using a 'read_once' action. The change ensures that all weight readings, regardless of the action used, are properly recognized and handled, improving the reliability of scale data collection. This ensures accurate inventory tracking.
Original PR description
This commit adjusts the callback when a new weight is received from the scale to also handle the case where it is the response to the `read_once` action. In this case, the `status` key is `success`. backport of: odoo/enterprise#105324 Forward-Port-Of: odoo/enterprise#106691
This update resolves an issue where changes made to spreadsheets were lost after deleting archived revisions. Now, when you delete all archived revisions and reload the spreadsheet, your latest edits are preserved, ensuring data integrity and a smoother workflow.
Original PR description
Steps to reproduce - create a spreadsheet - do a few changes - leave the spreadsheet (to snapshot) - reopen the spreadsheet - do a few more changes - from another tab, go to Settings/Technical/Revisions - delete all archived revisions - reload the spreadsheet => the last changes are lost and new changes are no longer saved. Forward-Port-Of: odoo/enterprise#99357
This update fixes a minor issue where payment links were sometimes displayed even when the subscription was expired and related products had been removed. Now, the 'Pay Now' link only appears if the advance payment section is visible, ensuring a cleaner and more accurate user experience for subscription renewals.
Original PR description
When the subscription is expired and has to be paid, only use an anchor for `Pay Now` if the advance payment section is displayed (it could be hidden for ex. if any of the product has been archived) Forward-Port-Of: odoo/enterprise#105879 Forward-Port-Of: odoo/enterprise#105480
This update resolves a technical issue that caused a SQL error when creating invoices with non-deductible tax values in Studio. The fix ensures the system handles unsaved invoice lines correctly, preventing the error and improving data integrity. This change primarily impacts the accounting module.
Original PR description
**Steps to reproduce:** * Install **account_asset** and **l10n_be**. * Enable **developer mode**. * Using **Studio**, add the field **non_deductible_tax_value** to invoice lines. * Create a new invoice. * Select a partner and add a product with **21% VAT** applied. * Do not save the invoice before adding the line. **Observed behavior:** * A **SQL syntax error** occurs: `WHERE tdq.base_line_id IN ()`. * The error is triggered when accessing the non-deductible tax value on unsaved records. **Cause:** * `_compute_non_deductible_tax_value()` executes SQL query with `tuple(self.ids)`. * For unsaved records, `self.ids` is empty, creating invalid SQL `IN ()` syntax. * This path is only reached for **non-deductible taxes**. **Fix:** * Skip the SQL query when no record IDs are available. * Return a default value for unsaved records. opw-5896716 Forward-Port-Of: odoo/enterprise#106655 Forward-Port-Of: odoo/enterprise#106470