Wednesday, March 5, 2025
55 changes · saas-18.2
Resolved issues and error corrections
This fix prevents repeated background update actions when the same record is passed to a web component multiple times. It improves reliability and avoids unnecessary duplicate processing in the user interface.
Original PR description
Issue: If a Component using `useRecordObserver` alternatively received multiple times the same `record` instances as props, it would have resulted in an `effect` duplication. Solution: Kill the effect based on its associated Promise instead of a boolean shared between all effects.
This change temporarily disables a failing Mail chat test that was disrupting many staging validation runs. It helps restore confidence in release checks while the underlying issue from a recent change is investigated separately.
Miscellaneous changes
**Problem**: When applying a light background color to a table cell, switching to dark mode changes the text color to white, making it invisible. **Solution**: When setting a background color on a block element, also apply the default text color. This ensures text remains visible in both light and dark modes. **Steps to Reproduce**: 1. Add a table. 2. Change the background color of cells to white. 3. Switch to dark mode. 4. Observe that the text inside the cells is not visible. op
Original PR description
**Problem**: When applying a light background color to a table cell, switching to dark mode changes the text color to white, making it invisible. **Solution**: When setting a background color on a block element, also apply the default text color. This ensures text remains visible in both light and dark modes. **Steps to Reproduce**: 1. Add a table. 2. Change the background color of cells to white. 3. Switch to dark mode. 4. Observe that the text inside the cells is not visible. opw-4546663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196651
This commit adds new tax ISR 1.25 witheld RESICO for mexican localization target: 17 -> master task-4486643 Linked PR: [odoo/enterprise#80081](https://github.com/odoo/enterprise/pull/80081) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199579 Forward-Port-Of: odoo/odoo#195346
Original PR description
This commit adds new tax ISR 1.25 witheld RESICO for mexican localization target: 17 -> master task-4486643 Linked PR: [odoo/enterprise#80081](https://github.com/odoo/enterprise/pull/80081) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199579 Forward-Port-Of: odoo/odoo#195346
When printing a preparation receipt the correct time was not shown (It was always UTC time). Also when the order was not sent to the server the time was not shown at all. Steps to reproduce: ------------------- * Setup a kitchen printer for a PoS * Open PoS go on a table and add some products * Click on the Order button > Observation: The time is not shown in the receipt * Leave the table and come back to it to make sure order is sent to the server * Add another product and send the or
Original PR description
When printing a preparation receipt the correct time was not shown (It was always UTC time). Also when the order was not sent to the server the time was not shown at all. Steps to reproduce: ------------------- * Setup a kitchen printer for a PoS * Open PoS go on a table and add some products * Click on the Order button > Observation: The time is not shown in the receipt * Leave the table and come back to it to make sure order is sent to the server * Add another product and send the order to the kitchen > Observation: The time is in UTC Why the fix: ------------ Instead of relying on the write date of the order we now rely on the current time of the client to show the time in the receipt. This time will always correspond to the time the order was sent to the kitchen. opw-4454102 Forward-Port-Of: odoo/odoo#197916 Forward-Port-Of: odoo/odoo#196850
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.6.1 Forward-Port-Of: odoo/odoo#200352
Original PR description
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.6.1 Forward-Port-Of: odoo/odoo#200352
This commit fixes an issue where clicking "Load more" in the first column of the Kanban view caused the page to scroll to the button, making users lose their previous position. This appears to be related to the browser's behavior of scrolling to a focused element if it still exists after DOM mutations. However, it remains unclear why this only affects the first column and not the others. As a temporary workaround, a t-key is added to the "Load more" button to ensure it is removed and replaced
Original PR description
This commit fixes an issue where clicking "Load more" in the first column of the Kanban view caused the page to scroll to the button, making users lose their previous position. This appears to be related to the browser's behavior of scrolling to a focused element if it still exists after DOM mutations. However, it remains unclear why this only affects the first column and not the others. As a temporary workaround, a t-key is added to the "Load more" button to ensure it is removed and replaced each time it is clicked. This issue was partially addressed in https://github.com/odoo/odoo/pull/115706, but that fix is no longer relevant with this commit. Forward-Port-Of: odoo/odoo#199541
Since logging new attendance is approved by default, the refuse/approve buttons for rejecting/approving extra zero hours should be invisible. task-4320142 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#200233 Forward-Port-Of: odoo/odoo#196419
Original PR description
Since logging new attendance is approved by default, the refuse/approve buttons for rejecting/approving extra zero hours should be invisible. task-4320142 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#200233 Forward-Port-Of: odoo/odoo#196419
In the Discuss sidebar, an avatar stack displays call participants and can be expanded for more details. Expanding the stack caused a slight shift due to the stack using padding for a background-colored border, while the expanded list did not. This PR fixes the issue by: - Removing margin from the stack container for better flexibility (customizable via `containerClass`). - Applying the same padding to the expanded list to maintain alignment. | Before | After | | ------------- | --
Original PR description
In the Discuss sidebar, an avatar stack displays call participants and can be expanded for more details. Expanding the stack caused a slight shift due to the stack using padding for a background-colored border, while the expanded list did not. This PR fixes the issue by: - Removing margin from the stack container for better flexibility (customizable via `containerClass`). - Applying the same padding to the expanded list to maintain alignment. | Before | After | | ------------- | ------------- | |  | | Forward-Port-Of: odoo/odoo#200107
## Pull Request HOOT (PRHOOT) 28 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/78636 --- I confirm I have s
Original PR description
## Pull Request HOOT (PRHOOT) 28 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/78636 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199104 Forward-Port-Of: odoo/odoo#189710
**Current behavior:** It's possible to end up with a negative valuation for a product with zero product qty. **Expected behavior:** No negative valuation for 0 product qty. **Steps to reproduce:** 1. Create a FIFO, real-time product; create a BOM for fifo-product with some component (tracked by qty, costing method doesn't matter, `standard_price=1`) 2. Purchase 2 units of component @ $1 3. Create and fully process an MO for fifo-prod 4. Change the standard price of component fr
Original PR description
**Current behavior:** It's possible to end up with a negative valuation for a product with zero product qty. **Expected behavior:** No negative valuation for 0 product qty. **Steps to reproduce:** 1.…
**Current behavior:** It's possible to end up with a negative valuation for a product with zero product qty. **Expected behavior:** No negative valuation for 0 product qty. **Steps to reproduce:** 1. Create a FIFO, real-time product; create a BOM for fifo-product with some component (tracked by qty, costing method doesn't matter, `standard_price=1`) 2. Purchase 2 units of component @ $1 3. Create and fully process an MO for fifo-prod 4. Change the standard price of component from $1 -> $2 5. Create and fully process a second MO for fifo-prod 6. Unbuild the second MO (from step 5) 7. Sell 1 unit of fifo-prod 8. Check the valuation, see that both the unbuild and out move (sale) use a `unit_cost=$2` despite there having been only 1 qty valued at $2 in the valuation history **Cause of the issue:** SVL creation for fifo costing in an unbuild context does not limit the candidate layer search to moves linked to the actual manufacturing order specified on the unbuild form. So despite us unbuilding the second MO in step 6, the valuation from the first MO's SVL is used. The reason we get the correct `unit_cost` despite using the wrong layer is due to commit: 84dda96 Prior to which, the valuation would have correctly zeroed out but there would have still been this valuation mis-match behind the scenes. **Fix:** Constrain the fifo candidate layer search to finished moves from the unbuilt production (if actuallywhen `_action_confirm`ing unbuild moves. opw-4416350 Forward-Port-Of: odoo/odoo#198499 Forward-Port-Of: odoo/odoo#197190
Currently, when using the same pos session with different users can result in some order being created without user_id. Steps to reproduce: ------------------- * Open register as Mitchell Admin * Make a pos order, pay with cash, validate, select 'new order' * Log out * Log with Marc Demo and open the pos * Make a pos order, pay with cash, validate * In the backend, see both orders > Observation: For the second order, Mard Demo is written in the chatter as the one who created the orde
Original PR description
Currently, when using the same pos session with different users can result in some order being created without user_id. Steps to reproduce: ------------------- * Open register as Mitchell Admin * Make a pos order, pay with cash, validate, select 'new order' * Log out * Log with Marc Demo and open the pos * Make a pos order, pay with cash, validate * In the backend, see both orders > Observation: For the second order, Mard Demo is written in the chatter as the one who created the order but on the form no user is registered Why the fix: ------------ This happens because when selecting 'new order', an order gets created which will then be loaded back when logging with the second user. When loaded the order has an unidentified user but still has a user_id in the vals of the setup. We do not want to use this user as it is the one that created the order, not the one who finalized it. opw-4566194 Forward-Port-Of: odoo/odoo#199827
Previously, closing the quick reaction menu did not return focus to the thread, which was inconvenient—especially in chat windows where pressing Escape is commonly used to close them. This update ensures that focus is restored to the message composer if one is being edited; otherwise, it returns to the thread composer. This improves usability, allowing users to react to messages without disrupting their workflow. Description of the issue/feature this PR addresses: Current behavior befor
Original PR description
Previously, closing the quick reaction menu did not return focus to the thread, which was inconvenient—especially in chat windows where pressing Escape is commonly used to close them. This update ensures that focus is restored to the message composer if one is being edited; otherwise, it returns to the thread composer. This improves usability, allowing users to react to messages without disrupting their workflow. 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#198261
This commit also fixes the filename date log example:  Forward-Port-Of: odoo/odoo#199916
Original PR description
This commit also fixes the filename date log example:  Forward-Port-Of: odoo/odoo#199916
When downloading all message attachments as a zip file in portal chatter, if there is an editor iframe on the page, instead of downloading the file, there is a blob url opened on the page. This happens because the web editor handles clicks and tries to open the URL in the current main window, which results in displaying the blob URL to users instead of ownloading it. Opening the attachment in a new window prevents interfering with the current page url and keeps the iframe managed by the web edit
Original PR description
When downloading all message attachments as a zip file in portal chatter, if there is an editor iframe on the page, instead of downloading the file, there is a blob url opened on the page. This happens because the web editor handles clicks and tries to open the URL in the current main window, which results in displaying the blob URL to users instead of ownloading it. Opening the attachment in a new window prevents interfering with the current page url and keeps the iframe managed by the web editor intact. task-4545106 Forward-Port-Of: odoo/odoo#200100
steps: - create a combo product with 1 or more combo items - archive a product part of this combo - create an SO and add this combo product issue: - it shows archived product cause: - when product is archived the linked combo item line is not archived fix: - added an active filter in combo_configurator get data opw-4579038 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199559
Original PR description
steps: - create a combo product with 1 or more combo items - archive a product part of this combo - create an SO and add this combo product issue: - it shows archived product cause: - when product is archived the linked combo item line is not archived fix: - added an active filter in combo_configurator get data opw-4579038 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199559
**Problem**: In previous versions, the link button (AI & translation too) was not displayed in the toolbar when the selection included block elements. However, this behavior has regressed, and the link button (AI and Translation too) now appears even when the selection spans blocks. **Solution**: Hide the link button (AI & translation too) in the toolbar when the selection includes block elements. **Steps to reproduce**: 1. Create a table in the editor. 2. Select multiple columns. 3.
Original PR description
**Problem**: In previous versions, the link button (AI & translation too) was not displayed in the toolbar when the selection included block elements. However, this behavior has regressed, and the link button (AI and Translation too) now appears even when the selection spans blocks. **Solution**: Hide the link button (AI & translation too) in the toolbar when the selection includes block elements. **Steps to reproduce**: 1. Create a table in the editor. 2. Select multiple columns. 3. Observe that the toolbar incorrectly displays the link button. opw-4397649 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190783
Description of the issue/feature this PR addresses: ticket id: https://www.odoo.com/odoo/my-tasks/4179478 Current behavior before PR: - MENA l10n module descriptions were uncomplete or unconsistent Desired behavior after PR is merged: - improve l10n module description for MENA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199772 Forward-Port-Of: odoo/odoo#190703
Original PR description
Description of the issue/feature this PR addresses: ticket id: https://www.odoo.com/odoo/my-tasks/4179478 Current behavior before PR: - MENA l10n module descriptions were uncomplete or unconsistent Desired behavior after PR is merged: - improve l10n module description for MENA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199772 Forward-Port-Of: odoo/odoo#190703
- Open a lazy load client action (e.g. dashboard spreadsheet); - Reload (F5) repeatedly. Before this commit, a `QuotaExceededError` was thrown. This error occurs because: - The action is processed, and an `_original_action` (a string copy of the action) is added; - The action is executed (a client action), in this case is a lazy load client action function. - The function returns, the same action to be re-executed (this time with the lazily loaded component client actio
Original PR description
- Open a lazy load client action (e.g. dashboard spreadsheet); - Reload (F5) repeatedly. Before this commit, a `QuotaExceededError` was thrown. This error occurs because: - The action is processed,…
- Open a lazy load client action (e.g. dashboard spreadsheet);
- Reload (F5) repeatedly.
Before this commit, a `QuotaExceededError` was thrown. This error occurs
because:
- The action is processed, and an `_original_action` (a string copy of the
action) is added;
- The action is executed (a client action), in this case is a lazy load client
action function.
- The function returns, the same action to be re-executed (this time with the
lazily loaded component client action);
- The action returned by the function (which already has an
`_original_action`), is processed, and an `_original_action` is added (a
string copy of the action, that already contains a string copy of the
action);
- Doing this multiple times on each reload will add a new layer of string copy
of the action, until there is a memory error.
This problem was introduced by [1], prior to this commit, the saved actions
were only used if it was a dynamic multi-record action.
[1]: https://github.com/odoo/odoo/commit/c0ae72b25e935790c6e3b1fd805aadbd2fff75c7
opw-4619396
Forward-Port-Of: odoo/odoo#200168**Behavior before PR:** When removing format using removeFormat button, font-size style is not getting removed from formatted text. This happens because in `removeFormat` method `editor.document.execCommand('removeFormat')` fails to remove styles applied through classes. To remove these styles, font-size classes should be removed. **Behavior after PR is merged:** Now font-size related classes will be removed when removing format and font-size style will be removed from formatted text.
Original PR description
**Behavior before PR:**
When removing format using removeFormat button, font-size style is not getting removed from formatted text. This happens because in `removeFormat` method `editor.document.execCommand('removeFormat')` fails to remove styles applied through classes. To remove these styles, font-size classes should be removed.
**Behavior after PR is merged:**
Now font-size related classes will be removed when removing format and font-size style will be removed from formatted text.
task-4526026
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#195979### Steps to reproduce: - Open the To-Do app. - Create a list (e.g., `/list`). - Insert an image into a list item and press `Enter`. - Notice that the list item containing the image is outdented. ### Solution: - In `handleSplitBlock`, the `!closestLI.textContent` check did not handle list items containing only an image. Adding an `isEmptyBlock` check ensures the bullet point is preserved. ### Description of the issue/feature this PR addresses: - Pressing Enter in list item cont
Original PR description
### Steps to reproduce: - Open the To-Do app. - Create a list (e.g., `/list`). - Insert an image into a list item and press `Enter`. - Notice that the list item containing the image is outdented. ### Solution: - In `handleSplitBlock`, the `!closestLI.textContent` check did not handle list items containing only an image. Adding an `isEmptyBlock` check ensures the bullet point is preserved. ### Description of the issue/feature this PR addresses: - Pressing Enter in list item containing only an image removed the bullet point. ### Desired behavior after PR is merged: - Pressing Enter in a list item with only an image preserves the bullet point and creates a new empty list item. task-4586704 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198725
Issue: When archiving a contract the employee form view does not update the first contract. Cause: The first contract computation is not trigger when archiving a contract. expected behavior: When archiving a contract the first contract should be recomputed. Fix: Add the active field to the depends method of the contract. task-3745594 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197146 Forward-Port-Of: odo
Original PR description
Issue: When archiving a contract the employee form view does not update the first contract. Cause: The first contract computation is not trigger when archiving a contract. expected behavior: When archiving a contract the first contract should be recomputed. Fix: Add the active field to the depends method of the contract. task-3745594 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197146 Forward-Port-Of: odoo/odoo#158366
[IMP] point_of_sale, *: revamp UI *: pos_restaurant This commit introduces some UI cleaning for the POS. task-4496287 Related: https://github.com/odoo/enterprise/pull/77942 Forward-Port-Of: odoo/odoo#195386
Original PR description
[IMP] point_of_sale, *: revamp UI *: pos_restaurant This commit introduces some UI cleaning for the POS. task-4496287 Related: https://github.com/odoo/enterprise/pull/77942 Forward-Port-Of: odoo/odoo#195386
Until 18.0 [1], test classes should not inherit from other test classes which themselves contain tests. When this happens, the tests of the parent class are run for every class that inherits from it. We fix occurrences of this for social marketing apps. A naive detection script is available on the pad of the related task. [1]: 6dc96811c24ec4c97b8fbd2489aef6d4f061ac03 task-3792478 Forward-Port-Of: odoo/odoo#200123 Forward-Port-Of: odoo/odoo#198994
Original PR description
Until 18.0 [1], test classes should not inherit from other test classes which themselves contain tests. When this happens, the tests of the parent class are run for every class that inherits from it. We fix occurrences of this for social marketing apps. A naive detection script is available on the pad of the related task. [1]: 6dc96811c24ec4c97b8fbd2489aef6d4f061ac03 task-3792478 Forward-Port-Of: odoo/odoo#200123 Forward-Port-Of: odoo/odoo#198994
### Steps to reproduce: - Duplicate a user - Login to this user - In Accounting select an invoice and try to send it by post ### Cause: The keys `author_user_id` and `author_partner_id` have switched values. They should be like in the [batch](https://github.com/odoo/odoo/blob/becbccbef5f2aa6b062d8b3714c233dbeaca9c98/addons/account/wizard/account_move_send_batch_wizard.py#L91-L92). opw-4531514 Forward-Port-Of: odoo/odoo#200028 Forward-Port-Of: odoo/odoo#197509
Original PR description
### Steps to reproduce: - Duplicate a user - Login to this user - In Accounting select an invoice and try to send it by post ### Cause: The keys `author_user_id` and `author_partner_id` have switched values. They should be like in the [batch](https://github.com/odoo/odoo/blob/becbccbef5f2aa6b062d8b3714c233dbeaca9c98/addons/account/wizard/account_move_send_batch_wizard.py#L91-L92). opw-4531514 Forward-Port-Of: odoo/odoo#200028 Forward-Port-Of: odoo/odoo#197509
It is possible to add note / section lines with empty label (`name`). Currenlty we then print placeholder values: * section: `A section title` * note: `A note, whose content usually applies to the section or product above.` (They were added to be displayed in studio; see commit 2fbf17d235fb7c92914f0a3b6a3ce954c27f3032.) After this commit the placeholders will not be printed on PDFs anymore. (But they will still be shown in studio.) task: none Forward-Port-Of: odoo/odoo#200154
Original PR description
It is possible to add note / section lines with empty label (`name`). Currenlty we then print placeholder values: * section: `A section title` * note: `A note, whose content usually applies to the section or product above.` (They were added to be displayed in studio; see commit 2fbf17d235fb7c92914f0a3b6a3ce954c27f3032.) After this commit the placeholders will not be printed on PDFs anymore. (But they will still be shown in studio.) task: none Forward-Port-Of: odoo/odoo#200154
In commit 2f62d5c0d78371be70586c79cb2b5931e733b042 the issue was fixed for some cases. But the problem remains in some other cases. In the original fix a special context value was added to the reconciliation of some lines. It prevents the creation of cash basis related moves for that reconciliation. This commit adds the same context to all the other reconciliations in the same function as the original reconciliation. Reproduce on runbot for l10n_mx for bank payment method 1. Install l1
Original PR description
In commit 2f62d5c0d78371be70586c79cb2b5931e733b042 the issue was fixed for some cases. But the problem remains in some other cases. In the original fix a special context value was added to the…
In commit 2f62d5c0d78371be70586c79cb2b5931e733b042 the issue was fixed for some cases.
But the problem remains in some other cases.
In the original fix a special context value was added to the reconciliation of some lines. It prevents the creation of cash basis related moves for that reconciliation. This commit adds the same context to all the other reconciliations in the same function as the original reconciliation.
Reproduce on runbot for l10n_mx for bank payment method
1. Install l10n_mx
2. Set the 'IVA 16% VENTAS' tax as Customer Taxes on a product. Set the Sales Price to 100.
3. Create a payment method and journal for the PoS
* Payment method: Bank on journal BNK1
* Journal: POS
5. Create a PoS using the payment method and journal from the previous step.
6. Start a PoS session
7. Sell the product from step 2 via the Bank payment method.
8. Close the Session
9. The following journal entries will be created: (All the tax lines use the same tax account; the "final" and not the caba transition account)
```
* 1 entry in the POS journal (order)
base: | - 100.0 $
tax: | - 16.0 $
receivable: | + 116.0 $
* 1 entry in the BNK1 journal (bank / payment)
bank: | + 116.0 $
receivable: | - 116.0 $
* 1 entry in the CBMX journal (caba)
base: | - 100.0 $
base: | + 100.0 $
tax: | - 16.0 $
tax: | + 16.0 $
* 1 entry in the EXCH journal (exchange difference)
for the cash basis rounding difference
tax: | - 16.0 $
tax: | + 16.0 $
```
opw-4355124
Forward-Port-Of: odoo/odoo#199194Steps to reproduce =================== - Create database with a valid mail configuration. - Open CRM module apply some random filters to get the helper. - alias name is there in the helper. This PR addresses the issue and now the alias email will be there instead of the name. Task-4619974 Forward-Port-Of: odoo/odoo#200129
Original PR description
Steps to reproduce =================== - Create database with a valid mail configuration. - Open CRM module apply some random filters to get the helper. - alias name is there in the helper. This PR addresses the issue and now the alias email will be there instead of the name. Task-4619974 Forward-Port-Of: odoo/odoo#200129
Follow-up of odoo#199828 PR above added a new test that resulted in frequent runbot failures: ``` Failed assertions: 1. [toBe] Failed to find 1 of ".o-mail-ChatHub-compact" with text "1" (Timeout of 3 seconds). Found 0 instead. > Expected: true > Received: false 2. [errors] 1 unverified error(s) Error during test: Failed to find 1 of ".o-mail-ChatHub-compact" with text "1" (Timeout of 3 seconds). Found 0 instead. ``` This happens because the test had a chat window open,
Original PR description
Follow-up of odoo#199828 PR above added a new test that resulted in frequent runbot failures: ``` Failed assertions: 1. [toBe] Failed to find 1 of ".o-mail-ChatHub-compact" with text "1" (Timeout of…
Follow-up of odoo#199828 PR above added a new test that resulted in frequent runbot failures: ``` Failed assertions: 1. [toBe] Failed to find 1 of ".o-mail-ChatHub-compact" with text "1" (Timeout of 3 seconds). Found 0 instead. > Expected: true > Received: false 2. [errors] 1 unverified error(s) Error during test: Failed to find 1 of ".o-mail-ChatHub-compact" with text "1" (Timeout of 3 seconds). Found 0 instead. ``` This happens because the test had a chat window open, enabled the compact mode of chat hub, then posts a message and assert there's a counter on the chathub compact button. Everything works fine when a human do these interactions. However the test failed because there was no counter. This comes from chat window modeling that was thinking the composer was still focused, therefore it was marking the conversation as read, leading to consuming the "1" counter. Composer was kept in "focused" state because when programmatically simulating a `click`, the detection of loss of focus is made with a `focusout` event that is triggered normally on the previously focused element. In HOOT, the `@mail` click test helper was not triggering `focusout` on the previous element. Some attempts were made to programmatically trigger the "focusout", including some reliance of tests that do `mousedown.prevent` that are expected to not change focus on click, but tests keep failing. As this is important to make runbot green as soon as possible, this commit fixes the issue by helping the problematic test to blur/focusout the composer. Note that the `contains().click` from `web_test_helpers` seem to properly managed the focusous and the `mousedown.prevent`, but there are a lot of occurrences of mail `await click()` to change, and this without taking into account some issues in converting to `contains.click()` at the moment: - timeout of click is 200ms, which is too short for discuss tests - mail `click` feature uses `text` to make exact comparison of textnode, compared to `:contains()`. This is probably not a big issue as with `value` where asserting composer is empty asynchronously is very important for discuss The plan is to use web test helpers for mail tests, but this requires more time than the urgency to fix this test now. runbot-159692 Forward-Port-Of: odoo/odoo#200289
*=point_of_sale,pos_restaurant Currently an exception was generated when the user clicked on "Furnitures" in the Choose Your Store section after following the below steps: - Created database without demo and install 'Point of Sale' - Open 'Point of Sale' > Click on "Furnitures" in the Choose Your Store - Archive "Furniture Shop" POS - Click on "Furnitures" in the Choose Your Store - Delete "Furniture Shop" POS - Again, click on "Furnitures" in the Choose Your Store » error generated
Original PR description
*=point_of_sale,pos_restaurant Currently an exception was generated when the user clicked on "Furnitures" in the Choose Your Store section after following the below steps: - Created database without…
*=point_of_sale,pos_restaurant Currently an exception was generated when the user clicked on "Furnitures" in the Choose Your Store section after following the below steps: - Created database without demo and install 'Point of Sale' - Open 'Point of Sale' > Click on "Furnitures" in the Choose Your Store - Archive "Furniture Shop" POS - Click on "Furnitures" in the Choose Your Store - Delete "Furniture Shop" POS - Again, click on "Furnitures" in the Choose Your Store » error generated This is because [1] tries to create a combo product, but it was already created the first time when we loaded data by clicking "furniture", so it generates a validation error from [2] because we cannot link the same product in a combo. This commit solves the above issue by using 'Command.clear()' at [1], which is clear linked combo product before creating it, so it always sets product from data when user loads data. [1] - https://github.com/odoo/odoo/blob/64515f56b3987ffdea6618eb14b6062f95542ac6/addons/product/data/product_demo.xml#L619-L638 [2] - https://github.com/odoo/odoo/blob/64515f56b3987ffdea6618eb14b6062f95542ac6/addons/product/models/product_combo.py#L73 sentry-6101630952 Forward-Port-Of: odoo/odoo#190713
Description of the issue/feature this PR addresses: On the candidate form view, the "Applications" smart button doesn't show the correct count. It counts only active applications. Desired behavior after PR is merged: On the candidate form view, show the correct count on the "Applications" smart button including both active and refused applications. task-4473067 **Forward port:** 18.0 -> 18.1 Candidate was removed in 18.2 --- I confirm I have signed the CLA and read the PR guidel
Original PR description
Description of the issue/feature this PR addresses: On the candidate form view, the "Applications" smart button doesn't show the correct count. It counts only active applications. Desired behavior after PR is merged: On the candidate form view, show the correct count on the "Applications" smart button including both active and refused applications. task-4473067 **Forward port:** 18.0 -> 18.1 Candidate was removed in 18.2 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193306
Problem: When the user views the SLA tickets through the action, action_view_success_rate, they will only see successful SLA tickets after removing the 'SLA success' filter. Purpose: The user should be able to see all SLA tickets, successful and failed, after removing filters. Steps to Reproduce on Runbot: 1. Install Helpdesk 2. Navigate to Helpdesk and click on 'Success Rate' for Customer Care team 3. Remove filter 'SLA success' 4. Observe that failed SLA tickets doesn't display op
Original PR description
Problem: When the user views the SLA tickets through the action, action_view_success_rate, they will only see successful SLA tickets after removing the 'SLA success' filter. Purpose: The user should be able to see all SLA tickets, successful and failed, after removing filters. Steps to Reproduce on Runbot: 1. Install Helpdesk 2. Navigate to Helpdesk and click on 'Success Rate' for Customer Care team 3. Remove filter 'SLA success' 4. Observe that failed SLA tickets doesn't display opw-4601178 Forward-Port-Of: odoo/enterprise#80087
## [FIX] sign: set email address to admin user Before this commit, the test `/sign:TestUi.test_ui` fails in no demo because no email address is set on admin user. This commit fixes the issue by setting an email address inside the test before launching the tour. runbot-error-98514 ## [FIX] knowledge: make sure admin user has email set in no demo Before this commit, `/knowledge:TestKnowledgeEditorCommands.test_knowledge_article_commands_tour` fails because the admin user does not
Original PR description
## [FIX] sign: set email address to admin user Before this commit, the test `/sign:TestUi.test_ui` fails in no demo because no email address is set on admin user. This commit fixes the issue by setting an email address inside the test before launching the tour. runbot-error-98514 ## [FIX] knowledge: make sure admin user has email set in no demo Before this commit, `/knowledge:TestKnowledgeEditorCommands.test_knowledge_article_commands_tour` fails because the admin user does not have an email address set. This commit makes sure the email address is set on admin user before launching the tour to be sure the tour can be executed without any issue in no demo. Forward-Port-Of: odoo/enterprise#80742
This commit adds new tax ISR 1.25 witheld for mexican localization target: 17 -> master task-4486643 Linked PR: [odoo/odoo#195346](https://github.com/odoo/odoo/pull/195346) Forward-Port-Of: odoo/enterprise#80357 Forward-Port-Of: odoo/enterprise#80081
Original PR description
This commit adds new tax ISR 1.25 witheld for mexican localization target: 17 -> master task-4486643 Linked PR: [odoo/odoo#195346](https://github.com/odoo/odoo/pull/195346) Forward-Port-Of: odoo/enterprise#80357 Forward-Port-Of: odoo/enterprise#80081
In this commit [e366986](https://github.com/odoo/enterprise/commit/e36698683d984d8a1761809b85b591084ff37ed9), we used a rpc call in a function, but as the rpc is no more a service but a function, this is broken in this version. This commit fix the rpc call to use it as a function and not a service. no-task Forward-Port-Of: odoo/enterprise#80596
Original PR description
In this commit [e366986](https://github.com/odoo/enterprise/commit/e36698683d984d8a1761809b85b591084ff37ed9), we used a rpc call in a function, but as the rpc is no more a service but a function, this is broken in this version. This commit fix the rpc call to use it as a function and not a service. no-task Forward-Port-Of: odoo/enterprise#80596
Purpose ======= Fix the display of the resource on the validation page when in 'time_auto_assign'. Specification ============= If the apt type setting is: - 'time_auto_assign' and 'no_picture': resource(s) not displayed - 'time_auto_assign' and 'picture': if one resource -> displayed on the right with its picture if more than one resource -> displayed in the validation details related commit: odoo/enterprise@9fe0c7ab9f3276e9a79ba79831660ee0d7787582 Task-4395325 Forward-Port-Of: o
Original PR description
Purpose ======= Fix the display of the resource on the validation page when in 'time_auto_assign'. Specification ============= If the apt type setting is: - 'time_auto_assign' and 'no_picture': resource(s) not displayed - 'time_auto_assign' and 'picture': if one resource -> displayed on the right with its picture if more than one resource -> displayed in the validation details related commit: odoo/enterprise@9fe0c7ab9f3276e9a79ba79831660ee0d7787582 Task-4395325 Forward-Port-Of: odoo/enterprise#75438
The way the queries were formatted was prone to create injections (though it didn't in this case). This commit makes proper use of the SQL formatter to avoid that and make the code more robust. Forward-Port-Of: odoo/enterprise#80620 Forward-Port-Of: odoo/enterprise#80493
Original PR description
The way the queries were formatted was prone to create injections (though it didn't in this case). This commit makes proper use of the SQL formatter to avoid that and make the code more robust. Forward-Port-Of: odoo/enterprise#80620 Forward-Port-Of: odoo/enterprise#80493
Prior to this commit, `knowledge_calendar_command_tour` failed on the first day of the month, if it was a Saturday. This is because it creates an `ArticleItem` on Monday of the week containing the current date, which may be in the previous month, and then tries to find that same `ArticleItem` in the FullCalendar representation of the current month with week ends days hidden. In that view, with that setting, Monday of the current week is always shown (even if it is part of the previous mont
Original PR description
Prior to this commit, `knowledge_calendar_command_tour` failed on the first day of the month, if it was a Saturday. This is because it creates an `ArticleItem` on Monday of the week containing the current date, which may be in the previous month, and then tries to find that same `ArticleItem` in the FullCalendar representation of the current month with week ends days hidden. In that view, with that setting, Monday of the current week is always shown (even if it is part of the previous month) UNLESS the first day of the month is Saturday. This commit also fixes some selectors using `:not` pseudo-class incorrectly (they were always true and did not verify anything). runbot-task-114354 Forward-Port-Of: odoo/enterprise#80687
## Pull Request HOOT (PRHOOT) 28 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/189710 --- I confirm I have signed
Original PR description
## Pull Request HOOT (PRHOOT) 28 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/189710 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#80074 Forward-Port-Of: odoo/enterprise#78636
This PR introduces the following improvements: - **Attachment Name Update**: Restricts the attachment name to 45 characters to comply with e-invoice portal limitations. - **Handling Missing Taxes**: Includes journal items for taxes not found in the system to ensure proper accounting. - **Enhanced Tax Matching**: Updates the tax-finding mechanism to include RCM taxes when the bill transaction's `RegRev` parameter is marked as `Y`, in addition to regular taxes. - **Error handling**: Handle `EI
Original PR description
This PR introduces the following improvements: - **Attachment Name Update**: Restricts the attachment name to 45 characters to comply with e-invoice portal limitations. - **Handling Missing Taxes**: Includes journal items for taxes not found in the system to ensure proper accounting. - **Enhanced Tax Matching**: Updates the tax-finding mechanism to include RCM taxes when the bill transaction's `RegRev` parameter is marked as `Y`, in addition to regular taxes. - **Error handling**: Handle `EINV30109` error code to schedule a retry cron after 10 minutes and log a message. Forward-Port-Of: odoo/enterprise#80698 Forward-Port-Of: odoo/enterprise#74864
### Steps to reproduce: - Create a draft vendor bill - Go to Accounting > Reporting > General Ledger - Include draft entries in the report - Click the three dots on a posted entry and view the entry - Reset it to draft - Delete the name of the entry and save - Return to the General Ledger - Type something in the search bar - Error ### Cause: This flow automatically search on the lines but draft lines have no name (null) so it crashes on `const lineName = line.name.trim().toLowerCase
Original PR description
### Steps to reproduce: - Create a draft vendor bill - Go to Accounting > Reporting > General Ledger - Include draft entries in the report - Click the three dots on a posted entry and view the entry - Reset it to draft - Delete the name of the entry and save - Return to the General Ledger - Type something in the search bar - Error ### Cause: This flow automatically search on the lines but draft lines have no name (null) so it crashes on `const lineName = line.name.trim().toLowerCase();`. ### Solution: Ignore lines with no names when searching. opw-4589598 Forward-Port-Of: odoo/enterprise#80364
When an existing bike is selected when signing a new contract, the future driver is not set on the biked, so it is not reserved and can be taken by multiple people. Also when you unselect 'transport_mode_bike' on an existing contract, the bike_id is not removed (but invisible), which leads to prevent any person with this kind of contract to select a bike in an offer. (same behavior with new bike, the model is not removed) Forward-Port-Of: odoo/enterprise#80658
Original PR description
When an existing bike is selected when signing a new contract, the future driver is not set on the biked, so it is not reserved and can be taken by multiple people. Also when you unselect 'transport_mode_bike' on an existing contract, the bike_id is not removed (but invisible), which leads to prevent any person with this kind of contract to select a bike in an offer. (same behavior with new bike, the model is not removed) Forward-Port-Of: odoo/enterprise#80658
Description of the issue/feature this PR addresses: ticket id: https://www.odoo.com/odoo/my-tasks/4179478 Current behavior before PR: - MENA l10n module descriptions were uncomplete or unconsistent Desired behavior after PR is merged: - improve l10n module description for MENA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#80460 Forward-Port-Of: odoo/enterprise#75666
Original PR description
Description of the issue/feature this PR addresses: ticket id: https://www.odoo.com/odoo/my-tasks/4179478 Current behavior before PR: - MENA l10n module descriptions were uncomplete or unconsistent Desired behavior after PR is merged: - improve l10n module description for MENA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#80460 Forward-Port-Of: odoo/enterprise#75666
This PR addresses a payslip-calculating issue where overtime records right outside the payslip's period were being included in the calculations, messing up normal hours. The way this is fixed in this PR is by delaying the timezone-stripping code until it is necessary. This allows the local timezone variables, `date_from` and `date_to`, to be used to query the associated overtime records, rather than their UTC versions. We need this behavior because the "overtime" query depends on the field `
Original PR description
This PR addresses a payslip-calculating issue where overtime records right outside the payslip's period were being included in the calculations, messing up normal hours. The way this is fixed in this…
This PR addresses a payslip-calculating issue where overtime records right outside the payslip's period were being included in the calculations, messing up normal hours.
The way this is fixed in this PR is by delaying the timezone-stripping code until it is necessary. This allows the local timezone variables, `date_from` and `date_to`, to be used to query the associated overtime records, rather than their UTC versions. We need this behavior because the "overtime" query depends on the field `HrAttendanceOvertime.date`, which is of type `fields.Date` and is timezone-agnostic.
This bug can be replicated in any variation of the following scenario (this one assumes the payslip period covers exactly one month of work):
- Create an attendance record for employee `A` that would cause them to have `h` hours of overtime at the end of month `X`, where `X` is a number in the set `{1, 2, ..., 12}`.
- Create an attendance record for `A` on the 1st of the next month, `Y := X mod 12 + 1`, with `h'` regular hours and `0` hours of overtime.
- Generate their payslip for the month `Y`.
- See that there is an overtime line with `h` hours and a regular hours line with `h' - h` hours. 🐛
opw-4371083
Forward-Port-Of: odoo/enterprise#80012
Forward-Port-Of: odoo/enterprise#78880[IMP] pos_restaurant_appointment: revamp UI This commit introduces some UI cleaning for the POS. Related: https://github.com/odoo/odoo/pull/195386 Forward-Port-Of: odoo/enterprise#77942
Original PR description
[IMP] pos_restaurant_appointment: revamp UI This commit introduces some UI cleaning for the POS. Related: https://github.com/odoo/odoo/pull/195386 Forward-Port-Of: odoo/enterprise#77942
- Positive-Negative total amounts were set to `''` instead of `'000000000000000'` when they were zero. - In the descriptive field there's now the reconciled moves name and not the batch payment name. - File import we use for troubleshooting used to read the field `creditor_sia_code` as `int` but it's `alnum`. - `negative_amount` amount was the sum of the payment amounts, and it has some rounding differences. Now I'm using the Batch Payment amount. - The total in the description field of each
Original PR description
- Positive-Negative total amounts were set to `''` instead of `'000000000000000'` when they were zero. - In the descriptive field there's now the reconciled moves name and not the batch payment name. - File import we use for troubleshooting used to read the field `creditor_sia_code` as `int` but it's `alnum`. - `negative_amount` amount was the sum of the payment amounts, and it has some rounding differences. Now I'm using the Batch Payment amount. - The total in the description field of each payment section is correct, but it was rounded incorrectly instead in another field on the first row of the section. - Now using ASCII instead of UTF8 - accents are changed to apostrophes as per the Company Registry in Italy - `payment_date` in record `14` should be `invoice_date_due` - Test has been adjusted. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4535559) opw-4535559 Forward-Port-Of: odoo/enterprise#80539 Forward-Port-Of: odoo/enterprise#78827
Recently, the Kenyan support team has been reporting a temporary increase in the number of timeouts when sending invoices to eTIMS, as well as associated issues (e.g. timed-out invoices turning out to be actually registered on eTIMS' side) which warrant further investigation. In order to reduce the number of timeouts and help diagnose (1) which API endpoints are timing out (which can tell us where we should implement retry mechanisms) and (2) whether the timed-out invoices are always or somet
Original PR description
Recently, the Kenyan support team has been reporting a temporary increase in the number of timeouts when sending invoices to eTIMS, as well as associated issues (e.g. timed-out invoices turning out to be actually registered on eTIMS' side) which warrant further investigation. In order to reduce the number of timeouts and help diagnose (1) which API endpoints are timing out (which can tell us where we should implement retry mechanisms) and (2) whether the timed-out invoices are always or sometimes registered on eTIMS' side, we: - Increase the timeout of eTIMS calls to 2 minutes; - Log every timeout in the server logs; and - Log every invoice timeout in the invoice chatter. task-4624257 Forward-Port-Of: odoo/enterprise#80726 Forward-Port-Of: odoo/enterprise#80672
Until 18.0 [1], test classes should not inherit from other test classes which themselves contain tests. When this happens, the tests of the parent class are run for every class that inherits from it. We fix occurrences of this for social marketing apps. A naive detection script is available on the pad of the related task. [1]: 6dc96811c24ec4c97b8fbd2489aef6d4f061ac03 task-3792478 Forward-Port-Of: odoo/enterprise#80654 Forward-Port-Of: odoo/enterprise#80034
Original PR description
Until 18.0 [1], test classes should not inherit from other test classes which themselves contain tests. When this happens, the tests of the parent class are run for every class that inherits from it. We fix occurrences of this for social marketing apps. A naive detection script is available on the pad of the related task. [1]: 6dc96811c24ec4c97b8fbd2489aef6d4f061ac03 task-3792478 Forward-Port-Of: odoo/enterprise#80654 Forward-Port-Of: odoo/enterprise#80034
ASP-ONE.FR is now a brand of Tessi Informatique and we have to update the information passed in the xml. task-4605970 Forward-Port-Of: odoo/enterprise#80609 Forward-Port-Of: odoo/enterprise#80219
Original PR description
ASP-ONE.FR is now a brand of Tessi Informatique and we have to update the information passed in the xml. task-4605970 Forward-Port-Of: odoo/enterprise#80609 Forward-Port-Of: odoo/enterprise#80219
…versing Steps to reproduce: - In settings, set a default "Default invoice transaction code" and "Default refund transaction code" - Create an invoice with an invoice line and post it - Reverse it Issue: - The intrastat code will be the one from the invoice (and not the default refund one) Cause: When copying the lines we keep the one from the invoice Solution: Delete the default values when copying the data so the compute is triggered correctly which will set the correct value
Original PR description
…versing Steps to reproduce: - In settings, set a default "Default invoice transaction code" and "Default refund transaction code" - Create an invoice with an invoice line and post it - Reverse it Issue: - The intrastat code will be the one from the invoice (and not the default refund one) Cause: When copying the lines we keep the one from the invoice Solution: Delete the default values when copying the data so the compute is triggered correctly which will set the correct value opw-4417566 Forward-Port-Of: odoo/enterprise#79267
This PR adapts access rights so that Worldline folder 'ctep' can be deleted by 'delete_iot_handlers' Forward-Port-Of: odoo/enterprise#80283
Original PR description
This PR adapts access rights so that Worldline folder 'ctep' can be deleted by 'delete_iot_handlers' Forward-Port-Of: odoo/enterprise#80283
Steps to reproduce: -Make multiple sales and assign a salesman to it in order to have a commission -Go to My Commissions -Add a Group By -The Achieved Rate column is displaying the sum of the achieved rates instead but it shouldn't display anything Problem: When making a group by on the commissions view and enabling the optional column achieved rate, the result of this group by would be the sum of all the achieved rate for this group, which is not correct. As it was decided that it made
Original PR description
Steps to reproduce: -Make multiple sales and assign a salesman to it in order to have a commission -Go to My Commissions -Add a Group By -The Achieved Rate column is displaying the sum of the achieved rates instead but it shouldn't display anything Problem: When making a group by on the commissions view and enabling the optional column achieved rate, the result of this group by would be the sum of all the achieved rate for this group, which is not correct. As it was decided that it made no sense, the total would not be displayed anymore. https://github.com/odoo/enterprise/blob/a0215115c13d5e32f1ba3c821f138b188083e76b/sale_commission/report/commission_report.py#L19 Fix: The aggregator parameter was used to prevent the total to be displayed. opw-4512739 Forward-Port-Of: odoo/enterprise#78537
This commit adds the missing neutralization necessary for the pos_tyro module introduced in 18.0 in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly
Original PR description
This commit adds the missing neutralization necessary for the pos_tyro module introduced in 18.0 in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] https://github.com/odoo/enterprise/pull/79432 Forward-Port-Of: odoo/enterprise#80574
This PR aims to automatically set the status of a “Rejected” document to “Cancelled” while preserving the sequence number assigned by DGI (based on the CAE) to ensure all documents, including rejected ones, remain in the system with their original sequence. This is to maintain proper accounting records and provides visibility of all rejected documents. Forward-Port-Of: odoo/enterprise#80597 Forward-Port-Of: odoo/enterprise#76931
Original PR description
This PR aims to automatically set the status of a “Rejected” document to “Cancelled” while preserving the sequence number assigned by DGI (based on the CAE) to ensure all documents, including rejected ones, remain in the system with their original sequence. This is to maintain proper accounting records and provides visibility of all rejected documents. Forward-Port-Of: odoo/enterprise#80597 Forward-Port-Of: odoo/enterprise#76931
- Adding DIAN UBL codes for the existing UoM provided in the task description. Code '94' is returned if the UoM for some reason doesn't have a defined code. - Adjusting the relevant method in the DIAN module to match. - Adjusting test XMLs to use correct UBL codes. task: 4396119 Forward-Port-Of: odoo/enterprise#79134 Forward-Port-Of: odoo/enterprise#75745
Original PR description
- Adding DIAN UBL codes for the existing UoM provided in the task description. Code '94' is returned if the UoM for some reason doesn't have a defined code. - Adjusting the relevant method in the DIAN module to match. - Adjusting test XMLs to use correct UBL codes. task: 4396119 Forward-Port-Of: odoo/enterprise#79134 Forward-Port-Of: odoo/enterprise#75745