Tuesday, March 25, 2025
37 changes · saas-18.2
Resolved issues and error corrections
Website popups now display with their intended animation when they appear on a page. This restores expected visual behavior for visitors and helps popup content feel polished and noticeable.
Original PR description
When a popup snippet appears on a page, it should appear with an animation. That behavior is broken since the introduction of interactions in [b9b3a605]. [b9b3a605]: https://github.com/odoo/odoo/commit/b9b3a605e0f4c5da3a258c980107d6162da7f44f
Interviewers can now open applicant records without hitting an access error when the applicant is linked to a talent pool. The talent pool shortcut is hidden for interviewer-only users because they do not have permission to view those related records.
Original PR description
**Steps to reproduce**
1. Recruitment > All applications > Chose applicant
2. Add the applicant to a talent pool ("Add to Pool")
3. Also add as an interviewer on the applicant a user with the "Recruitment / Interviewer" group.
4. Now log in with that user and try to view the applicant. `Access Error: doesn't hae read access to Applicant (hr.applicant)
**Cause**
In `_compute_talent_pool_count`, error since the `hr.talent.pool` model is only accessible to users with at least "Officer" rights. https://github.com/odoo/odoo/blob/66856ad6a4dae3289593b55451e6c668a221fb8e/addons/hr_recruitment/models/hr_applicant.py#L166
**Solution**
Hide the smart button if users are only "Interviewers". Since the interviewer is not copied on the new `hr.applicant` record created for the talent pool, they do not have access by default to the records accessible through the smart button anyway.
opw-4658919A test is now skipped when only Invoicing Enterprise is installed without the full Accounting module. This prevents false automated test failures in setups where the general ledger feature is not available to users.
Original PR description
The modified test fails when only the Invoicing Enterprise module is installed, without the Accounting module. This failure occurs because the outstanding account's code is already in use by another account. This test is irrelevant when only Invoicing Enterprise is installed, as the general ledger is accessible only with the Accounting module. Therefore, we skip this test if the Accounting module is not installed. runbot-error: 134665
The expense workflow buttons now consistently follow the same access permissions. This prevents users from seeing or using actions they should not have access to after recent version updates.
Original PR description
During the forward ports of d038a3a (62712bf) we failed to propagate the changes to the other buttons created. This commit makes sure all buttons have the same access rights
Miscellaneous changes
In this commit: ========== Will now automatically assign a lot/serial number to the order line, if there is only one available option to choose from. Task: 4654071 Forward-Port-Of: odoo/odoo#203100 Forward-Port-Of: odoo/odoo#202444
Original PR description
In this commit: ========== Will now automatically assign a lot/serial number to the order line, if there is only one available option to choose from. Task: 4654071 Forward-Port-Of: odoo/odoo#203100 Forward-Port-Of: odoo/odoo#202444
## Description: Previously, when switching dashboards multiple times and reloading the page, the wrong dashboard was loaded. This issue occurred because the `addSpreadsheetActionLazyLoader` function was missing the correct `dashboards` path, which is defined in the XML client action. To resolve this, the correct `dashboards` path has been added to the `addSpreadsheetActionLazyLoader` function. Task: 4636576 --- I confirm I have signed the CLA and read the PR guidelines at w
Original PR description
## Description: Previously, when switching dashboards multiple times and reloading the page, the wrong dashboard was loaded. This issue occurred because the `addSpreadsheetActionLazyLoader` function was missing the correct `dashboards` path, which is defined in the XML client action. To resolve this, the correct `dashboards` path has been added to the `addSpreadsheetActionLazyLoader` function. Task: 4636576 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202840
Versions -------- - saas-18.1+ Steps ----- 1. Go to /shop; 2. add product to cart; 3. go to checkout; 4. try to edit the page with the website editor. Issue ----- Traceback: `TypeError: super.destroy is not a function` Cause ----- `super.destroy` is not a function. Solution -------- Use `this._super.apply` instead of a direct call to `super`. opw-4668627 opw-4669346 opw-4670159 Forward-Port-Of: odoo/odoo#203224
Original PR description
Versions -------- - saas-18.1+ Steps ----- 1. Go to /shop; 2. add product to cart; 3. go to checkout; 4. try to edit the page with the website editor. Issue ----- Traceback: `TypeError: super.destroy is not a function` Cause ----- `super.destroy` is not a function. Solution -------- Use `this._super.apply` instead of a direct call to `super`. opw-4668627 opw-4669346 opw-4670159 Forward-Port-Of: odoo/odoo#203224
- In POS, open a register and add Product A with a price of 100. Proceed with the payment using a card. - Close the register, increase the cash count by 20, and reduce the card count to 80. In the session report, the difference in the card payment is not displayed correctly. It shows the expected amount as 100 and the counted amount as 100, whereas it should be expected at 100 and counted at 80. Commit https://github.com/odoo/odoo/commit/01b87f1230beac0568f4e3b1b76e547909506892#diff-143
Original PR description
- In POS, open a register and add Product A with a price of 100. Proceed with the payment using a card. - Close the register, increase the cash count by 20, and reduce the card count to 80. In the…
- In POS, open a register and add Product A with a price of 100. Proceed with the payment using a card. - Close the register, increase the cash count by 20, and reduce the card count to 80. In the session report, the difference in the card payment is not displayed correctly. It shows the expected amount as 100 and the counted amount as 100, whereas it should be expected at 100 and counted at 80. Commit https://github.com/odoo/odoo/commit/01b87f1230beac0568f4e3b1b76e547909506892#diff-143d17de807d23650088a8c12f0a5b5cc2246b1b51e0bb7634e85247b6e535ea made journal entry optional for payments and removed the `synchronize_from_moves` method from `account_payment`. This mean that there is no longer a synchronization between account_payment and its potential journal entries. The source (here pos_session) is now responsible for creating and linking the moves to the payment. The amount field of account_payment, which is used to construct the session report and created in `_create_combine_account_payment` was not updated with the new balance created in `_apply_diff_on_account_payment_move`. opw-4494656 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201792 Forward-Port-Of: odoo/odoo#196253
Loyalty history for gift cards was not working properly. The history was not being updated when a gift card was used in a POS order. Steps to reproduce: ------------------- * Create some gift cards * Use one in the PoS to make an order > Observation: The history is not updated accordingly Why the fix: ------------ Instead of relying only on `coupon_updates` we check that card id provided exist before creating the history record. opw-4546985-1 Forward-Port-Of: odoo/odoo#200693
Original PR description
Loyalty history for gift cards was not working properly. The history was not being updated when a gift card was used in a POS order. Steps to reproduce: ------------------- * Create some gift cards * Use one in the PoS to make an order > Observation: The history is not updated accordingly Why the fix: ------------ Instead of relying only on `coupon_updates` we check that card id provided exist before creating the history record. opw-4546985-1 Forward-Port-Of: odoo/odoo#200693
Since [1] the widget displayed on a server action form view when it is set up as "Update a o2m field on a record" was not displaying the fields in the proper way. Before: the value field was a text field expecting the user to input the record id by hand. After: the value field is now a many2one selector. [1]: https://github.com/odoo/odoo/commit/0a744accc2aaa965d5353e854317895d822ad954 Forward-Port-Of: odoo/odoo#203156 Forward-Port-Of: odoo/odoo#202930
Original PR description
Since [1] the widget displayed on a server action form view when it is set up as "Update a o2m field on a record" was not displaying the fields in the proper way. Before: the value field was a text field expecting the user to input the record id by hand. After: the value field is now a many2one selector. [1]: https://github.com/odoo/odoo/commit/0a744accc2aaa965d5353e854317895d822ad954 Forward-Port-Of: odoo/odoo#203156 Forward-Port-Of: odoo/odoo#202930
Forward-Port-Of: odoo/odoo#203104 Forward-Port-Of: odoo/odoo#203055
Original PR description
Forward-Port-Of: odoo/odoo#203104 Forward-Port-Of: odoo/odoo#203055
Before this commit, there was a bug that could be reproduced this way: - Add a whitespace at the end of the class attribute of the footer main snippet (e.g. by using the HTML editor) - Enter edit mode - Click on the footer - Discard the editor => Bug: a popup shows up saying you are about to lose changes... while you did not make any. This commit fixes that specific issue, also extending the test that was introduced at [1], although as advertised many "no changes" flow are still marki
Original PR description
Before this commit, there was a bug that could be reproduced this way: - Add a whitespace at the end of the class attribute of the footer main snippet (e.g. by using the HTML editor) - Enter edit mode - Click on the footer - Discard the editor => Bug: a popup shows up saying you are about to lose changes... while you did not make any. This commit fixes that specific issue, also extending the test that was introduced at [1], although as advertised many "no changes" flow are still marking the page as dirty (e.g. just hovering any editor panel option). Note that there seems to be a deeper issue (although with no real breaking consequences) with the code surrounding this (see inline code comments), hopefully we won't have to care about this once the new HTML editor lands in master. [1]: https://github.com/odoo/odoo/commit/8e1bce010be2df8bd7144364fcbbe509d0441695 Forward-Port-Of: odoo/odoo#202039
**Current behavior:** When a user opens a POS with any special product - such as a tip product - assigned to a different company, no products are displayed in the POS interface. **Expected behavior:** The user should receive an error message indicating that the assigned special product is reserved for another company. If the default special product is associated with a different company, products should still be listed in the POS. **Steps to reproduce:** 1. Create a POS for a company C<
Original PR description
**Current behavior:** When a user opens a POS with any special product - such as a tip product - assigned to a different company, no products are displayed in the POS interface. **Expected…
**Current behavior:** When a user opens a POS with any special product - such as a tip product - assigned to a different company, no products are displayed in the POS interface. **Expected behavior:** The user should receive an error message indicating that the assigned special product is reserved for another company. If the default special product is associated with a different company, products should still be listed in the POS. **Steps to reproduce:** 1. Create a POS for a company C<sub>**1**</sub>. 2. Create a Tip product, reserved for company C<sub>**2**</sub>. 3. Set the Tip product for the POS of company C<sub>**1**</sub>. 4. Open the POS for company C<sub>**1**</sub>. 5. No products are listed in the POS. **Cause of the issue:** The `get_special_products()` method returns the default tip product without verifying the company assignment, leading to incorrect behavior. Additional inheriting models add more products to this method, still without checking the company assignment. **Fix:** - Modified the `_get_limited_products_loading` function to filter the special products according to the session company. - Modified the `_get_default_tip_product` function to bypass the company check if the default tip product is assigned to a different company. opw-4396020 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#194451 Forward-Port-Of: odoo/odoo#190700
## Pull Request HOOT (PRHOOT) 29 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Enterprise: https://github.com/odoo/enterprise/pull/81834 --- I confirm I have s
Original PR description
## Pull Request HOOT (PRHOOT) 29 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Enterprise: https://github.com/odoo/enterprise/pull/81834 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202976 Forward-Port-Of: odoo/odoo#199461
The system automatically fill the Bank Account info on invoices, however this does not work as expected when the move type is changed after creation Steps to reproduce: - Create an invoice, set partner with bank account defined - Switch to credit note - Check 'Other info' tab Issue: Bank Partner will be left blank, but it should be the partner bank account opw-4640629 Forward-Port-Of: odoo/odoo#202609 Forward-Port-Of: odoo/odoo#202369
Original PR description
The system automatically fill the Bank Account info on invoices, however this does not work as expected when the move type is changed after creation Steps to reproduce: - Create an invoice, set partner with bank account defined - Switch to credit note - Check 'Other info' tab Issue: Bank Partner will be left blank, but it should be the partner bank account opw-4640629 Forward-Port-Of: odoo/odoo#202609 Forward-Port-Of: odoo/odoo#202369
**Problem**: When copying text from the editor that contains `nbsp`, pasting it into a code editor results in invalid characters, causing issues like compilation errors. **Solution**: Replace `nbsp` with normal spaces when copying text. **Steps to Reproduce**: 1. Add text: `"a b"` (with double spaces). 2. Copy the text. 3. Paste it into a **code editor**. - **Issue**: The invisible `nbsp` causes compilation errors. **opw-4645678** --- I confirm I have signed the CLA and re
Original PR description
**Problem**: When copying text from the editor that contains `nbsp`, pasting it into a code editor results in invalid characters, causing issues like compilation errors. **Solution**: Replace `nbsp` with normal spaces when copying text. **Steps to Reproduce**: 1. Add text: `"a b"` (with double spaces). 2. Copy the text. 3. Paste it into a **code editor**. - **Issue**: The invisible `nbsp` causes compilation errors. **opw-4645678** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202904
Before this commit, the IoT box used an X11 server with the LightDM desktop environment and Openbox window manager. There were many issues in this setup, particulary involving display hotplugging. After this commit, the IoT box now uses Wayland with the LabWC compositor. This results in several improvements: - Display hotplugging now works in all situations, on all models of Raspberry Pi. - A bug where Chromium couldn't start is now avoided in this new setup. - The 'dummy display' is no
Original PR description
Before this commit, the IoT box used an X11 server with the LightDM desktop environment and Openbox window manager. There were many issues in this setup, particulary involving display hotplugging. After this commit, the IoT box now uses Wayland with the LabWC compositor. This results in several improvements: - Display hotplugging now works in all situations, on all models of Raspberry Pi. - A bug where Chromium couldn't start is now avoided in this new setup. - The 'dummy display' is no longer necessary. LabWC will start with no displays connected without issue. - When no displays are plugged in, the browser is no longer running needlessly. - The `sync_touchscreen.sh` script is no longer needed, as LabWC can map to touchscreens. - A Odoo logo desktop background is set to avoid just having a blank screen whilst Odoo is starting. task-4657986 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202722
Steps to reproduce the bug: - Create a storable product “P1”: - Can be rented: True - tracked by quantity - BoM: - type: kit - component: C1 - Create a rental order with one unit of P1 - confirm it - Click on pickup: - validate the wizard Problem: A user error is triggered: "You should update the components' quantity instead of directly updating the quantity of the kit product." This happens because the system attempts to update the available
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- Can be rented: True
- tracked by quantity
- BoM:
- type: kit
- component: C1
- Create a rental order with one unit of P1
- confirm it
- Click on pickup:
- validate the wizard
Problem:
A user error is triggered:
"You should update the components' quantity instead of directly updating the quantity of the kit product."
This happens because the system attempts to update the available quantity of the kit product in the quants.
opw-4572337
Forward-Port-Of: odoo/odoo#202703the Subject input value is supposed to start with S0 instead of S00 Screenshot of where the tour fails:  build_error-116092 Forward-Port-Of: odoo/odoo#202013
Original PR description
the Subject input value is supposed to start with S0 instead of S00 Screenshot of where the tour fails:  build_error-116092 Forward-Port-Of: odoo/odoo#202013
- add option to `image` widget to accept a relation for preview_image to enable fetching images from `hr.employee.public` Task: 4626795 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201748
Original PR description
- add option to `image` widget to accept a relation for preview_image to enable fetching images from `hr.employee.public` Task: 4626795 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201748
Currently, when ordering on kiosk a menu combo, if you do not select sides it will crash when adding it to the cart Steps to reproduce: ------------------- * Open kiosk * Select burger Menu Combo * Select Cheese burger * DO NOT select sides * Select Next button * Add drink * Add to cart > Observation: White screen crashes Why the fix: ------------ The crash is ultimately cause by a undefined `attribute_value_ids` https://github.com/odoo/odoo/blob/ea67d5ad5f81c7eae85cff352bcc7529
Original PR description
Currently, when ordering on kiosk a menu combo, if you do not select sides it will crash when adding it to the cart Steps to reproduce: ------------------- * Open kiosk * Select burger Menu Combo * Select Cheese burger * DO NOT select sides * Select Next button * Add drink * Add to cart > Observation: White screen crashes Why the fix: ------------ The crash is ultimately cause by a undefined `attribute_value_ids` https://github.com/odoo/odoo/blob/ea67d5ad5f81c7eae85cff352bcc75290053ba20/addons/pos_self_order/static/src/app/self_order_service.js#L263-L266 If we compare the behavior of the same product, outside a combo, we are not allowed to add the product to the cart if we did not select sides. We will now have a consistent behavior with/without combo. opw-4516061 Forward-Port-Of: odoo/odoo#202053 Forward-Port-Of: odoo/odoo#201004
**[FIX] website_payment: fix donation button preview on drag** Steps to reproduce: - Enter edit mode. - If not already installed, click the "Donation Button" in the snippet menu to install the "website_payment" app. - Start dragging the "Donation Button" without dropping it onto the page to display its preview. - Bug: Prefilled buttons are displayed in the preview when they shouldn't be. This bug was introduced by commit [1], where the prefilled buttons were added to the "s_donat
Original PR description
**[FIX] website_payment: fix donation button preview on drag** Steps to reproduce: - Enter edit mode. - If not already installed, click the "Donation Button" in the snippet menu to install the "website_payment" app. - Start dragging the "Donation Button" without dropping it onto the page to display its preview. - Bug: Prefilled buttons are displayed in the preview when they shouldn't be. This bug was introduced by commit [1], where the prefilled buttons were added to the "s_donation" snippet template so that they would be visible in the "s_donation" preview in the snippets dialog. Unfortunately, this change also made them visible for the inner "Donation Button" snippet, which shouldn't be the case. [1]: https://github.com/odoo/odoo/commit/edf81c13d8f2f6d29a77d68cbfa0dc9216da3c2a Forward-Port-Of: odoo/odoo#202926 Forward-Port-Of: odoo/odoo#202829
**Problem**: The Translate/AI buttons should only be disabled when selecting non-editable content or an unsplittable node. Currently, they are disabled incorrectly when selecting multiple paragraphs. **Solution**: Disable Translate/AI buttons only when a non-editable content or an unsplittable node is selected. **Steps to Reproduce**: 1. Add two paragraphs. 2. Select all the text. 3. **Issue**: The Translate button is disabled but should be enabled. **opw-4629920** --- I confir
Original PR description
**Problem**: The Translate/AI buttons should only be disabled when selecting non-editable content or an unsplittable node. Currently, they are disabled incorrectly when selecting multiple paragraphs. **Solution**: Disable Translate/AI buttons only when a non-editable content or an unsplittable node is selected. **Steps to Reproduce**: 1. Add two paragraphs. 2. Select all the text. 3. **Issue**: The Translate button is disabled but should be enabled. **opw-4629920** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201529
The date and time displayed in the order section of a POS session were always shown in GMT, ignoring the user's time zone.  opw-4416447 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199038
Original PR description
The date and time displayed in the order section of a POS session were always shown in GMT, ignoring the user's time zone.  opw-4416447 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199038
Multiple problems can arise when a project has the documents feature enabled but no folder linked to it. This PR fixes two edge cases related to projects not having a folder. Task-4107728 Forward-Port-Of: odoo/enterprise#81298 Forward-Port-Of: odoo/enterprise#68688
Original PR description
Multiple problems can arise when a project has the documents feature enabled but no folder linked to it. This PR fixes two edge cases related to projects not having a folder. Task-4107728 Forward-Port-Of: odoo/enterprise#81298 Forward-Port-Of: odoo/enterprise#68688
Steps to reproduce: - With an ES company setup - Create and confirm invoice with: - Spanish partner - Amount > 3005.06 (mod347 threshold) - Type for mod 347: Regular operation - Create and confirm a jounral entry with: - Payable account, debit 4000 - Receivable account, credit 4000 - Type for mod 347: Regular operation - Check Mod 347 Tax Report Issue: 'Total number of persons and entities' shows 0 This occurs because some lines of mod 347 report need to be grouped by
Original PR description
Steps to reproduce: - With an ES company setup - Create and confirm invoice with: - Spanish partner - Amount > 3005.06 (mod347 threshold) - Type for mod 347: Regular operation - Create and confirm a jounral entry with: - Payable account, debit 4000 - Receivable account, credit 4000 - Type for mod 347: Regular operation - Check Mod 347 Tax Report Issue: 'Total number of persons and entities' shows 0 This occurs because some lines of mod 347 report need to be grouped by partner, only keeping the partners whose balance for the line is above 3005.06€, so we first get all the partners that match the domain but don't reach the threshold. We exclude these partners with a 'NOT IN' clause. However, when the partner is not set, a NULL values is retrieved causing the clause to be evaluated NULL instead of False and the total count will be 0 opw-4544950 Forward-Port-Of: odoo/enterprise#81954 Forward-Port-Of: odoo/enterprise#81687
## Pull Request HOOT (PRHOOT) 29 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/199461 --- I confirm I have signed
Original PR description
## Pull Request HOOT (PRHOOT) 29 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/199461 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#81949 Forward-Port-Of: odoo/enterprise#81834
Steps to reproduce: - Open Expenses. - Upload a sample expense pdf. The blue ribbon shows up saying “” - Do not click on the refresh button. Instead, put in some value for the amount and submit and approve the expense. - Go back to the expenses list view Issue: Notice this expense is at the top of the list and grayed out Cause: The order is determined by the extract_state_processed field: https://github.com/odoo/enterprise/blob/ba06e216ab73c73e3a67fd917623c6ad357b869f/hr_expense_ext
Original PR description
Steps to reproduce: - Open Expenses. - Upload a sample expense pdf. The blue ribbon shows up saying “” - Do not click on the refresh button. Instead, put in some value for the amount and submit and…
Steps to reproduce: - Open Expenses. - Upload a sample expense pdf. The blue ribbon shows up saying “” - Do not click on the refresh button. Instead, put in some value for the amount and submit and approve the expense. - Go back to the expenses list view Issue: Notice this expense is at the top of the list and grayed out Cause: The order is determined by the extract_state_processed field: https://github.com/odoo/enterprise/blob/ba06e216ab73c73e3a67fd917623c6ad357b869f/hr_expense_extract/models/hr_expense.py#L21 An expense is muted when this field is set to `True`: https://github.com/odoo/enterprise/blob/1df090289f3c45c200d133734989a6d9a8073145/hr_recruitment_extract/views/hr_applicant_views.xml#L67 Solution: We override `iap_extract` method https://github.com/odoo/enterprise/blob/2e3113562309bf4d440e12ab09eaf94d0b302f1f/iap_extract/models/extract_mixin.py#L69 If the expense is not in draft, it indicates that the process continued without waiting for the extraction process to complete (values were manually entered). To ensure a consistent extraction state, we extend the "Check OCR Status" logic to prevent an infinite waiting_extraction status. opw-4239404 Forward-Port-Of: odoo/enterprise#76162 Forward-Port-Of: odoo/enterprise#75202
Before this commit, when the sale order and te first invoice were created in the same transaction, the effective date would not be properly set as the sale.order.log was not created when _update_effective_date was called. As a result, the effective_date was never set. Forward-Port-Of: odoo/enterprise#81192
Original PR description
Before this commit, when the sale order and te first invoice were created in the same transaction, the effective date would not be properly set as the sale.order.log was not created when _update_effective_date was called. As a result, the effective_date was never set. Forward-Port-Of: odoo/enterprise#81192
Steps to reproduce: 1. In recruitment app, generate an offer for an applicant. 2. Send the offer by email and sign it by both parties. Bug: The generated sign request is not linked to the offer using the reference_doc field. Fix: Link the offer to the sign request upon creation in the submit endpoint. task-4607475 Forward-Port-Of: odoo/enterprise#80391
Original PR description
Steps to reproduce: 1. In recruitment app, generate an offer for an applicant. 2. Send the offer by email and sign it by both parties. Bug: The generated sign request is not linked to the offer using the reference_doc field. Fix: Link the offer to the sign request upon creation in the submit endpoint. task-4607475 Forward-Port-Of: odoo/enterprise#80391
Steps to reproduce the bug: - Create a storable product “P1”: - Can be rented: True - tracked by quantity - BoM: - type: kit - component: C1 - Create a rental order with one unit of P1 - confirm it - Click on pickup: - validate the wizard Problem: A user error is triggered: "You should update the components' quantity instead of directly updating the quantity of the kit product." This happens because the system attempts to update the available q
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- Can be rented: True
- tracked by quantity
- BoM:
- type: kit
- component: C1
- Create a rental order with one unit of P1
- confirm it
- Click on pickup:
- validate the wizard
Problem:
A user error is triggered:
"You should update the components' quantity instead of directly updating the quantity of the kit product."
This happens because the system attempts to update the available quantity of the kit product in the quants.
opw-4572337
Forward-Port-Of: odoo/enterprise#81845Forward-Port-Of: odoo/enterprise#81991 Forward-Port-Of: odoo/enterprise#81564
Original PR description
Forward-Port-Of: odoo/enterprise#81991 Forward-Port-Of: odoo/enterprise#81564
This test tour fails on sunday. Reason: - Here in the test create timesheets in previous week to check overtime in timesheets. - The formula works as today - current week day --> gives monday of this week - But on when it sunday it gives monday of previous week. - Timesheets are further created the previous weeks if given monday. - But we only go one week previous to check Fix: - Selecting next monday if weekday is sunday as we go back one previous week in tour. task-4667966
Original PR description
This test tour fails on sunday. Reason: - Here in the test create timesheets in previous week to check overtime in timesheets. - The formula works as today - current week day --> gives monday of this week - But on when it sunday it gives monday of previous week. - Timesheets are further created the previous weeks if given monday. - But we only go one week previous to check Fix: - Selecting next monday if weekday is sunday as we go back one previous week in tour. task-4667966 Forward-Port-Of: odoo/enterprise#81975
Before this commit: The "I Take It" button visibility was inconsistent across different view because different conditions were used to determine its visibility in each view. After this commit: This commit enhance the visibility of the "I Take It" button now it has consistent visibility across the views by follow same condition for every view. task-4455488 Forward-Port-Of: odoo/enterprise#81950 Forward-Port-Of: odoo/enterprise#79319
Original PR description
Before this commit: The "I Take It" button visibility was inconsistent across different view because different conditions were used to determine its visibility in each view. After this commit: This commit enhance the visibility of the "I Take It" button now it has consistent visibility across the views by follow same condition for every view. task-4455488 Forward-Port-Of: odoo/enterprise#81950 Forward-Port-Of: odoo/enterprise#79319
This module implements issueing NFC-e receipts through the POS. The process is conceptually similar to what we do for invoices. First taxes are calculated, and then we e-invoice. The calculated taxes will never change the order total. NFC-e mandates taxes to always be included in the price so we don't need any additional RPC call before payment. One way of achieving this was through l10n_br_edi, forcing every pos.order to be invoiced and then following the implemented flows on account.move
Original PR description
This module implements issueing NFC-e receipts through the POS. The process is conceptually similar to what we do for invoices. First taxes are calculated, and then we e-invoice. The calculated taxes…
This module implements issueing NFC-e receipts through the POS. The process is conceptually similar to what we do for invoices. First taxes are calculated, and then we e-invoice. The calculated taxes will never change the order total. NFC-e mandates taxes to always be included in the price so we don't need any additional RPC call before payment. One way of achieving this was through l10n_br_edi, forcing every pos.order to be invoiced and then following the implemented flows on account.move. We decided against it because: - It leads to a large amount of mostly unnecessary invoices, - It's conceptually strange to the user, NFC-e "invoices" resemble POS receipts more than they do invoices, - The flow in the POS is simpler, we handle tax calculation and EDI in one atomic step. We therefore chose to re-implement EDI for pos.order. The downside of this approach is that we temporarily need to copy some code from l10n_br_edi. In master this code can be consolidated in a common mixin. The integration tries to never block POS sales. You're allowed to retry EDI later. When EDI fails, the POS user is informed and we fall back to the standard receipt (marked as a "receipt without fiscal value"). For refunds we still go through account.move, as NFC-e doesn't support refunds (must be NF-e, which is what we already support for account.move). task-3564171 Forward-Port-Of: odoo/enterprise#81469 Forward-Port-Of: odoo/enterprise#77206
Before this commit: ------------------------- When increasing the quantity of a combo product before adding it to the cart, only `1 unit` was added due to a hardcoded quantity value. After this commit: ----------------------- - The hardcoded quantity of `1` was removed. - The selected quantity is now correctly added to the cart, preserving user input. Task-4592610 Forward-Port-Of: odoo/odoo#203058 Forward-Port-Of: odoo/odoo#199160
Original PR description
Before this commit: ------------------------- When increasing the quantity of a combo product before adding it to the cart, only `1 unit` was added due to a hardcoded quantity value. After this commit: ----------------------- - The hardcoded quantity of `1` was removed. - The selected quantity is now correctly added to the cart, preserving user input. Task-4592610 Forward-Port-Of: odoo/odoo#203058 Forward-Port-Of: odoo/odoo#199160
[IMP] web: eslint the new l10n_br_edi_pos module task-3564171 ---- [IMP] point_of_sale: add some hooks for l10n_br_edi_pos This doesn't change behavior, only adds a way to modify the behavior from other modules. task-3564171 Forward-Port-Of: odoo/odoo#201790 Forward-Port-Of: odoo/odoo#193834
Original PR description
[IMP] web: eslint the new l10n_br_edi_pos module task-3564171 ---- [IMP] point_of_sale: add some hooks for l10n_br_edi_pos This doesn't change behavior, only adds a way to modify the behavior from other modules. task-3564171 Forward-Port-Of: odoo/odoo#201790 Forward-Port-Of: odoo/odoo#193834