Tuesday, April 8, 2025
36 changes · saas-18.2
Resolved issues and error corrections
Delivery slips now better match the selected report layout by avoiding unwanted table borders and improving column alignment. This makes printed or shared delivery documents look cleaner and more consistent for customers and warehouse teams.
Original PR description
From 18.2 the `stock.report_deliveryslip` is displaying a bordered table regardless of the external layout styling. This is due to the removal of the `table-borderless` class in commit [1] Additionnaly some title in the table are not aligned to the content in their `<td>`. For consistency with the other report the inner style which set the table-layout to fixed is removed to let the column fit the size of their content. task-4658505 [1]: odoo/odoo@0058d1cf76559d13238e57bd26ece3f2c067246f | Before | After | |--------|--------| |  |  | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
New Zealand GST-only import taxes are now reported in Box 13 instead of Box 11, aligning Odoo with IRD GST report rules. This helps businesses record customs-billed GST on imported goods in the correct place for tax reporting.
Original PR description
Current set up under the tax concerned is "BOX 11" which is incorrect as according to the IRD GST report, BOX 11 excludes the amount of imported goods. The tax in consideration is used when the NZ Customs bills the user only for the GST amount based on the purchase value of the goods. Therefore, the tax grids for this tax need to changed to "BOX 13". Backport of 6d70452299cb06ad65bb745218fedfcbdb8f2c8e PR backport: https://github.com/odoo/odoo/pull/202382 task-3926151
Miscellaneous changes
### Steps to reproduce: - Create a new DB on odoo.com/trial with Argentinean localization, and your Odoo email. - After installation, a validation is raised: "Invalid length for CUIT". ### Here is what happens: 1. When creating a new company, the enrich function tries to complete data. If you created the database with an `odoo.com` email for example, the Company will be filled with a Belgian VAT. https://github.com/odoo/odoo/blob/5bb57a916d3069cd609e07d401dd3b4c39f85954/addons/partner_a
Original PR description
### Steps to reproduce: - Create a new DB on odoo.com/trial with Argentinean localization, and your Odoo email. - After installation, a validation is raised: "Invalid length for CUIT". ### Here is…
### Steps to reproduce: - Create a new DB on odoo.com/trial with Argentinean localization, and your Odoo email. - After installation, a validation is raised: "Invalid length for CUIT". ### Here is what happens: 1. When creating a new company, the enrich function tries to complete data. If you created the database with an `odoo.com` email for example, the Company will be filled with a Belgian VAT. https://github.com/odoo/odoo/blob/5bb57a916d3069cd609e07d401dd3b4c39f85954/addons/partner_autocomplete/models/res_company.py#L23-L28 2. The l10n_ar is then installed, and the CUIT will be set as the default identification. https://github.com/odoo/odoo/blob/9a44bc80a5f8bd1cfcb05a3a9f4abdbd67228488/addons/l10n_ar/models/account_chart_template.py#L37 3. Finally, the validation is triggered by the modification above. Obviously the Belgian VAT is not compatible with the CUIT format, which leads to a User Error. https://github.com/odoo/odoo/blob/4c1d2025118b98e89c131a32d46015d9c6a3b032/addons/l10n_ar/models/res_partner.py#L56-L57 Note: to reproduce in local, you have to add IAP credits. ### Solution: Solution: When installing the l10n_ar package, let's only set CUIT as a default if the validation passes. opw-4609583 Forward-Port-Of: odoo/odoo#201589
Before this commit, The 'Mark as Unread' button was missing in the mobile view because the `set-new-message-separator` action relied on `component.isOriginThread`. `isOriginThread` property exists on the `Message` component but not on `MessageActionMenuMobile`, which is used in mobile view. This commit fixes the issue by removing the dependency on `isOriginThread` from `message-actions` and instead introducing an inline condition. As a result, the 'Mark as Unread' button now displa
Original PR description
Before this commit, The 'Mark as Unread' button was missing in the mobile view because the `set-new-message-separator` action relied on `component.isOriginThread`. `isOriginThread` property exists on the `Message` component but not on `MessageActionMenuMobile`, which is used in mobile view. This commit fixes the issue by removing the dependency on `isOriginThread` from `message-actions` and instead introducing an inline condition. As a result, the 'Mark as Unread' button now displays correctly on mobile. task-[4686591](https://www.odoo.com/odoo/project/1519/tasks/4686591) Forward-Port-Of: odoo/odoo#205140
This error occurs when `o.tax_totals` returns `False`, causing an AttributeError when accessed in the QWeb template. Steps to Reproduce : - Install the module `accountant.` - Go to Reporting and open Tax Return. - Open Closing Entry and Print. `AttributeError: 'bool' object has no attribute 'get'` The error occurs when printing the tax report for the first time. The system first attempts to display the document configuration popup for the user based on the account move. However, si
Original PR description
This error occurs when `o.tax_totals` returns `False`, causing an AttributeError when accessed in the QWeb template. Steps to Reproduce : - Install the module `accountant.` - Go to Reporting and open…
This error occurs when `o.tax_totals` returns `False`, causing an AttributeError when accessed in the QWeb template. Steps to Reproduce : - Install the module `accountant.` - Go to Reporting and open Tax Return. - Open Closing Entry and Print. `AttributeError: 'bool' object has no attribute 'get'` The error occurs when printing the tax report for the first time. The system first attempts to display the document configuration popup for the user based on the account move. However, since `o.tax_totals is not available` in the tax report `(as it is a journal entry)`, and when the user`Configure Document Layout`, it raises a validation error. At [1] we cannot print pdf when `move_type == entry` so it is better to hide `Print` button in this condition. This error is resolved by hiding the `Print` button in the `Tax Return` `Journal Entries`, as it only contains journal items. Link [1] : https://github.com/odoo/odoo/blob/63fc0d1cefaf8f59acd0743a225d1002425ff156/addons/account/models/ir_actions_report.py#L72 sentry-6115648026 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196542
With this commit, the mail's body and subject is rendered when it was sent to the vehicle's driver. task-4671895 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#203250
Original PR description
With this commit, the mail's body and subject is rendered when it was sent to the vehicle's driver. task-4671895 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#203250
**Problem**: Scroll was not working properly on selection change. **Solution**: Use the `getBoundingClientRect` of `Range` to calculate scrolling, which is more accurate in this case. Handle edge cases where the range consists only of `br` elements, which have no size or position. **Steps to reproduce**: 1. Go to Project → Task. 2. Type something and press `Shift + Enter` two or three times. 3. Press `Shift + Enter` twice. 4. Add a large image, making the scrollbar appear. 5. Go to
Original PR description
**Problem**: Scroll was not working properly on selection change. **Solution**: Use the `getBoundingClientRect` of `Range` to calculate scrolling, which is more accurate in this case. Handle edge cases where the range consists only of `br` elements, which have no size or position. **Steps to reproduce**: 1. Go to Project → Task. 2. Type something and press `Shift + Enter` two or three times. 3. Press `Shift + Enter` twice. 4. Add a large image, making the scrollbar appear. 5. Go to the top and try selecting the text. - **Issue**: The scroll automatically moves down to the image every time, preventing selection of the intended text. **opw-4686994** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204506
When you add a table via "/table" when you're in editing mode, and if there's a lot of content, then the content overlaps. This is noticable in the small devices as well as bigger devices. We'll stop the overflow by using overflow-wrap: break-word. Steps To Reproduce on Runbot: 1. Go to editor via website/elearning. 2. Add table via command "/table" 4. Make the table like size 11*2, and keep typing on a cell, eventually the text will start overflowing. opw-4317744 Forward-Port-Of:
Original PR description
When you add a table via "/table" when you're in editing mode, and if there's a lot of content, then the content overlaps. This is noticable in the small devices as well as bigger devices. We'll stop the overflow by using overflow-wrap: break-word. Steps To Reproduce on Runbot: 1. Go to editor via website/elearning. 2. Add table via command "/table" 4. Make the table like size 11*2, and keep typing on a cell, eventually the text will start overflowing. opw-4317744 Forward-Port-Of: odoo/odoo#192128
Turnstile was missing on website_mass_mailing. This lack of implementation caused the newsletter forms to not submit anymore. Task-4592066 Forward-Port-Of: odoo/odoo#204690 Forward-Port-Of: odoo/odoo#200158
Original PR description
Turnstile was missing on website_mass_mailing. This lack of implementation caused the newsletter forms to not submit anymore. Task-4592066 Forward-Port-Of: odoo/odoo#204690 Forward-Port-Of: odoo/odoo#200158
Before this commit, the IM status icon shown when the user is homeworking won't always be precise. This happens because of the IM status refactoring (https://github.com/odoo/odoo/pull/174814). Steps to reproduce: 1. Setup user Marc Demo as homeworking in the current day 2. As Marc Demo open Discuss 3. As Mitchell Admin open the conversation with Marc Demo -> the correct home online icon is shown 4. As Marc Demo close all Odoo tabs -> user goes offline and Mitchell Admin sees the correct o
Original PR description
Before this commit, the IM status icon shown when the user is homeworking won't always be precise. This happens because of the IM status refactoring (https://github.com/odoo/odoo/pull/174814). Steps…
Before this commit, the IM status icon shown when the user is homeworking won't always be precise. This happens because of the IM status refactoring (https://github.com/odoo/odoo/pull/174814). Steps to reproduce: 1. Setup user Marc Demo as homeworking in the current day 2. As Marc Demo open Discuss 3. As Mitchell Admin open the conversation with Marc Demo -> the correct home online icon is shown 4. As Marc Demo close all Odoo tabs -> user goes offline and Mitchell Admin sees the correct offline icon 5. As Marc Demo reopen Discuss -> Mitchell Admin sees the circle icon instead of the home icon This commit fixes the issue by sending the user im_status information directly from its indentity model (`res.partner` or `mail.guest`) in the `bus.bus/im_status_updated` notification payload. This ensures that any overrides on the `im_status` field will be taken into consideration without having to re-establish the override client side. `presence_status` now represents the status value of the presence model, while `im_status` represents the status value of the identity model. Forward-Port-Of: odoo/odoo#204307 Forward-Port-Of: odoo/odoo#199936
The 'object-fit' CSS property is currently not whitelisted in the sanitizer, leading to images not being displayed correctly in mails. opw-4655989 Forward-Port-Of: odoo/odoo#205028
Original PR description
The 'object-fit' CSS property is currently not whitelisted in the sanitizer, leading to images not being displayed correctly in mails. opw-4655989 Forward-Port-Of: odoo/odoo#205028
Versions -------- - 17.0+ Steps ----- 1. pay for a cart in eCommerce using Xendit; 2. leave the confirmation page before the payment confirms; 3. open cart & empty it. Issue ----- The payment gets confirmed for an empty cart. Cause ----- If a sale order has a transaction linked with a state of `pending`, `authorized` or `done`, the next call to `website.sale_get_order` will no longer return the order that was paid. The transaction's state only changes away from `draft` afte
Original PR description
Versions -------- - 17.0+ Steps ----- 1. pay for a cart in eCommerce using Xendit; 2. leave the confirmation page before the payment confirms; 3. open cart & empty it. Issue ----- The payment gets…
Versions
--------
- 17.0+
Steps
-----
1. pay for a cart in eCommerce using Xendit;
2. leave the confirmation page before the payment confirms;
3. open cart & empty it.
Issue
-----
The payment gets confirmed for an empty cart.
Cause
-----
If a sale order has a transaction linked with a state of `pending`, `authorized` or `done`, the next call to `website.sale_get_order` will no longer return the order that was paid.
The transaction's state only changes away from `draft` after receiving notification data from the provider. For Xendit, this can take up to half an hour[^1], leaving customers with a lot of time to (unintentionally) modify the cart they paid for.
Solution
--------
Use Xendit's `success_redirect_url` to mark transactions as pending while waiting for full notification data.
This way, any attempt to change the cart will force open a new one.
opw-4438779
[^1]: for this ticket's case:
8:26 AM: payment was sent to Xendit for Rp 18,000,000.00
8:39 AM: customer emptied their cart, setting total to Rp 0.00
8:56 AM: received confirmation that the transaction for Rp 18,000,000.00 was confirmed
Forward-Port-Of: odoo/odoo#204863
Forward-Port-Of: odoo/odoo#201611Versions -------- - 17.0+ Steps ----- 1. Have a product with a custom attribute; 2. create a sales order with the product; 3. enter a value for the customer product; 4. confirm order & go to delivery; 5. print delivery slip. Issue ----- The product's name is displayed twice. Cause ----- The product's name is used as default description. There is currently logic in place to prevent duplicate printing if there's an exact match. If the product has certain attributes, they will
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have a product with a custom attribute; 2. create a sales order with the product; 3. enter a value for the customer product; 4. confirm order & go to delivery; 5. print delivery slip. Issue ----- The product's name is displayed twice. Cause ----- The product's name is used as default description. There is currently logic in place to prevent duplicate printing if there's an exact match. If the product has certain attributes, they will get added to the description, making the strings no longer equal. Solution -------- Instead of checking for exact matches, use `startswith` and `removeprefix` to remove the duplicate product name from the description. opw-4637449 Forward-Port-Of: odoo/odoo#204856 Forward-Port-Of: odoo/odoo#201010
Versions -------- - 17.0+ Steps ----- 1. Configure website to prevent sale of zero-priced products; 2. add a zero-priced product as an alternative product to a product; 3. open the product in eCommerce. Issue ----- The alternative products block with the zero-priced product isn't shown. Cause ----- The `_get_products_alternative_products` method filters out zero-priced products out of its end result. It is the only snippet filter to do this. Solution -------- Don't filter
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Configure website to prevent sale of zero-priced products; 2. add a zero-priced product as an alternative product to a product; 3. open the product in eCommerce. Issue ----- The alternative products block with the zero-priced product isn't shown. Cause ----- The `_get_products_alternative_products` method filters out zero-priced products out of its end result. It is the only snippet filter to do this. Solution -------- Don't filter out zero-priced products, as users may still want those products to be visible, even if not available for sale. opw-4443410 Forward-Port-Of: odoo/odoo#204777
Steps to reproduce: - Install sale, project apps - Create a service product that creates a task in a project - Create a quotation with this product and order line qty < 0 - Confirm the quotation to a sales order A traceback is thrown stating that the product lacks a project to create a task in. In previous versions, negative qty sales orders were allowed as refunds, but no task was created for them. The issue is in `_timesheet_service_generation`, where -ve qty is treated as if no proj
Original PR description
Steps to reproduce: - Install sale, project apps - Create a service product that creates a task in a project - Create a quotation with this product and order line qty < 0 - Confirm the quotation to a sales order A traceback is thrown stating that the product lacks a project to create a task in. In previous versions, negative qty sales orders were allowed as refunds, but no task was created for them. The issue is in `_timesheet_service_generation`, where -ve qty is treated as if no project is set for the product. This is incorrect since refunds should be allowed for service products. This fix ensures that negative qty sales orders function as refunds without triggering task creation. opw-4669488 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#204258
**Before this commit:** The fiscal position computation method did not depend on `gst_treatment`, causing issues where changes to `gst_treatment` were not detected. As a result, the computation did not trigger as expected, leading to incorrect fiscal position determination. **After this commit:** The computation method now depends on `gst_treatment`, ensuring that any changes to it trigger a recalculation. This guarantees accurate fiscal position computation as required. --- I confi
Original PR description
**Before this commit:** The fiscal position computation method did not depend on `gst_treatment`, causing issues where changes to `gst_treatment` were not detected. As a result, the computation did not trigger as expected, leading to incorrect fiscal position determination. **After this commit:** The computation method now depends on `gst_treatment`, ensuring that any changes to it trigger a recalculation. This guarantees accurate fiscal position computation as required. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203643 Forward-Port-Of: odoo/odoo#203445
Before this PR: - A user with no access attempts to react with emojis on a comment, resulting in a traceback. After this PR: - The buttons for adding emoji reactions to comments will be hidden for that users. Task-4452408 Forward-Port-Of: odoo/odoo#203335 Forward-Port-Of: odoo/odoo#193191
Original PR description
Before this PR: - A user with no access attempts to react with emojis on a comment, resulting in a traceback. After this PR: - The buttons for adding emoji reactions to comments will be hidden for that users. Task-4452408 Forward-Port-Of: odoo/odoo#203335 Forward-Port-Of: odoo/odoo#193191
**Problem**: On copy as HTML, if the content contains images saved on the server, the URLs will not include the origin. When pasted outside of Odoo (for example, in Gmail), the images will not be loaded. **Solution**: Add the origin to `img` tag `src` attributes when copying content. **Steps to reproduce**: 1. Paste an image in the editor. 2. Copy all content (including the image). 3. Paste it elsewhere as HTML (e.g., Gmail). 4. Observe that the HTML is pasted but the image is not lo
Original PR description
**Problem**: On copy as HTML, if the content contains images saved on the server, the URLs will not include the origin. When pasted outside of Odoo (for example, in Gmail), the images will not be loaded. **Solution**: Add the origin to `img` tag `src` attributes when copying content. **Steps to reproduce**: 1. Paste an image in the editor. 2. Copy all content (including the image). 3. Paste it elsewhere as HTML (e.g., Gmail). 4. Observe that the HTML is pasted but the image is not loaded. **opw-4652753** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204934
**Before this commit:** Long question and answers overlap the wizard while dragging with the handler. **After this commit:** Long question and answers do not overlap the wizard while dragging with handler. task-4452311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202257
Original PR description
**Before this commit:** Long question and answers overlap the wizard while dragging with the handler. **After this commit:** Long question and answers do not overlap the wizard while dragging with handler. task-4452311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202257
Commit f494e9d addressed an issue with an edge case of move/picking state conflicts. But in v16 this has the adverse effect of breaking valuation for scrap actions by generating additional corrective SVLs during the confirmation of a stock scrap. We should revert the change for v16, as the original use-case is very non-critical and the more changes made in this version, the higher chances of inadvertently breaking other things. opw-4574728 Forward-Port-Of: odoo/odoo#203945 Forward-Port
Original PR description
Commit f494e9d addressed an issue with an edge case of move/picking state conflicts. But in v16 this has the adverse effect of breaking valuation for scrap actions by generating additional corrective SVLs during the confirmation of a stock scrap. We should revert the change for v16, as the original use-case is very non-critical and the more changes made in this version, the higher chances of inadvertently breaking other things. opw-4574728 Forward-Port-Of: odoo/odoo#203945 Forward-Port-Of: odoo/odoo#203478
### Current behavior before PR: - Changing the protocol (http ↔ https) of an internal link in the editor caused a traceback due to a failed fetch request. ### Desired behavior after PR is merged: - The URL now always follows the current page's protocol, preventing mixed content issues and fetch errors. task-4531783 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201146
Original PR description
### Current behavior before PR: - Changing the protocol (http ↔ https) of an internal link in the editor caused a traceback due to a failed fetch request. ### Desired behavior after PR is merged: - The URL now always follows the current page's protocol, preventing mixed content issues and fetch errors. task-4531783 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201146
https://github.com/odoo/odoo/blob/f85e30901a61a6f0b040fe939e7c23bc0503affd/odoo/addons/base/i18n/he.po#L30569 Here, ``'%%(field)s'`` is translated as ``'%%'שדה(ות)`` in Hebrew language. So, It will lead to the below Traceback. Error: ``ValueError: unsupported format character ''' (0x27) at index 44`` for solution: reference from 18.0: https://github.com/odoo/odoo/blob/0d0c1bc7c075f49a461c66a433e20b431276ff12/odoo/addons/base/i18n/he.po#L38094-L38098 sentry-6500162171 --- I co
Original PR description
https://github.com/odoo/odoo/blob/f85e30901a61a6f0b040fe939e7c23bc0503affd/odoo/addons/base/i18n/he.po#L30569 Here, ``'%%(field)s'`` is translated as ``'%%'שדה(ות)`` in Hebrew language. So, It will lead to the below Traceback. Error: ``ValueError: unsupported format character ''' (0x27) at index 44`` for solution: reference from 18.0: https://github.com/odoo/odoo/blob/0d0c1bc7c075f49a461c66a433e20b431276ff12/odoo/addons/base/i18n/he.po#L38094-L38098 sentry-6500162171 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204633
Issue: ======== When searching for a partner using a mobile number with spaces (e.g., `+91 123456789`), the expected partner is not displayed. Cause: ======== The code removes spaces from stored phone numbers but does not modify the search input, leading to a mismatch: - Stored: `+91123456789` - Search input: `+91 123456789` Fix: ====== Added a regex to standardize mobile numbers on the frontend by removing `+, -, (), and spaces`. The same transformation is applied during search
Original PR description
Issue: ======== When searching for a partner using a mobile number with spaces (e.g., `+91 123456789`), the expected partner is not displayed. Cause: ======== The code removes spaces from stored phone numbers but does not modify the search input, leading to a mismatch: - Stored: `+91123456789` - Search input: `+91 123456789` Fix: ====== Added a regex to standardize mobile numbers on the frontend by removing `+, -, (), and spaces`. The same transformation is applied during search to ensure correct matches. Task-4675406 Forward-Port-Of: odoo/odoo#203699
Before this commit, it was possible to have a `videoError` caused by (or happening during) the destruction of the video component. This error should not be retained as playing the video is no longer useful when the component is destroyed. Forward-Port-Of: odoo/odoo#204941 Forward-Port-Of: odoo/odoo#204470
Original PR description
Before this commit, it was possible to have a `videoError` caused by (or happening during) the destruction of the video component. This error should not be retained as playing the video is no longer useful when the component is destroyed. Forward-Port-Of: odoo/odoo#204941 Forward-Port-Of: odoo/odoo#204470
This doesn't end up blocking any flow, but it's confusing to have the warning there. l10n_br_edi_avatax_data is deliberately cleared after EDI, because it's no longer needed afterwards. opw-4673601 Forward-Port-Of: odoo/enterprise#82925
Original PR description
This doesn't end up blocking any flow, but it's confusing to have the warning there. l10n_br_edi_avatax_data is deliberately cleared after EDI, because it's no longer needed afterwards. opw-4673601 Forward-Port-Of: odoo/enterprise#82925
Discounts on non recurring products were being recomputed every time the subscription was paused and resumed. Added a protecting similar to action_confirm in order to prevent this behavior. opw-4440500 Forward-Port-Of: odoo/enterprise#82858
Original PR description
Discounts on non recurring products were being recomputed every time the subscription was paused and resumed. Added a protecting similar to action_confirm in order to prevent this behavior. opw-4440500 Forward-Port-Of: odoo/enterprise#82858
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Original PR description
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
Original PR description
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
This commit fixes an issue with the public sidebar. When you unfold an article the unfolding method was never linked to all the elements needed to unfold any children article. Now when clicking on the unfold button, we are adding the event on each children of the unfolded articles. Forward-Port-Of: odoo/enterprise#82349 Forward-Port-Of: odoo/enterprise#82003
Original PR description
This commit fixes an issue with the public sidebar. When you unfold an article the unfolding method was never linked to all the elements needed to unfold any children article. Now when clicking on the unfold button, we are adding the event on each children of the unfolded articles. Forward-Port-Of: odoo/enterprise#82349 Forward-Port-Of: odoo/enterprise#82003
Before, when sending a reminder for the followup via the send and print wizard, the customer statement, or the followup report, were only included if you checked email, but if only print was selected, the report was missing in the PDF. Now, when selecting print, email, or both, you get the report. opw-4570715 Forward-Port-Of: odoo/enterprise#82498 Forward-Port-Of: odoo/enterprise#81463
Original PR description
Before, when sending a reminder for the followup via the send and print wizard, the customer statement, or the followup report, were only included if you checked email, but if only print was selected, the report was missing in the PDF. Now, when selecting print, email, or both, you get the report. opw-4570715 Forward-Port-Of: odoo/enterprise#82498 Forward-Port-Of: odoo/enterprise#81463
- Replacing all special characters in generated EFT files with normal ascii counterparts to fit the requirements of the CPA005 standard. - Adding an assert for it in tests. task-4609483 Forward-Port-Of: odoo/enterprise#81015
Original PR description
- Replacing all special characters in generated EFT files with normal ascii counterparts to fit the requirements of the CPA005 standard. - Adding an assert for it in tests. task-4609483 Forward-Port-Of: odoo/enterprise#81015
Before this commit, the fetch error was not correctly caught, leading to a crash of the runbot when the server was not reachable. runbot: 160959 Forward-Port-Of: odoo/enterprise#82431
Original PR description
Before this commit, the fetch error was not correctly caught, leading to a crash of the runbot when the server was not reachable. runbot: 160959 Forward-Port-Of: odoo/enterprise#82431
In studio, editing a kanban, activate show invisible elements if needed Before this commit, when the footer had many items, those were not wrapped so, they overflew under the next card and were unreachable and unclickable. After this commit the overflowing elements are reachable and clickable, but still outside of the kanban box. They just have a z-index high enough to be visible and reachable. The motivation behind this choice is that we cannot really apply targetted visual rules as th
Original PR description
In studio, editing a kanban, activate show invisible elements if needed Before this commit, when the footer had many items, those were not wrapped so, they overflew under the next card and were unreachable and unclickable. After this commit the overflowing elements are reachable and clickable, but still outside of the kanban box. They just have a z-index high enough to be visible and reachable. The motivation behind this choice is that we cannot really apply targetted visual rules as those would betray the actual visual on the view in normal mode. task-4609581 Forward-Port-Of: odoo/enterprise#81820
Forward-Port-Of: odoo/enterprise#82941
Original PR description
Forward-Port-Of: odoo/enterprise#82941
**Current behavior:** `expected_component_cost_unit` does not accurately reflect the per unit price of a component depending on the manufacturing order's quantity ratios. **Expected behavior:** Accurate price per unit of component. **Steps to reproduce:** 1. Create a finished product with a BoM: * has a 1:1 comp to final ratio with quantities greater than 1 (e.g., 2 units component producing 2 units final) * make component cost $100 for sake of example * has a workorder with a workce
Original PR description
**Current behavior:** `expected_component_cost_unit` does not accurately reflect the per unit price of a component depending on the manufacturing order's quantity ratios. **Expected behavior:**…
**Current behavior:** `expected_component_cost_unit` does not accurately reflect the per unit price of a component depending on the manufacturing order's quantity ratios. **Expected behavior:** Accurate price per unit of component. **Steps to reproduce:** 1. Create a finished product with a BoM: * has a 1:1 comp to final ratio with quantities greater than 1 (e.g., 2 units component producing 2 units final) * make component cost $100 for sake of example * has a workorder with a workcenter with capacity sufficient to handle full BoM quantity producing (so 2 if used 2 -> 2 on BoM) 2. Create & process MO for finished product 3. Open the Production Analysis pivot view in the mrp app 4. In the `Measures` dropdown, check the `Expected Component Cost / Unit` field -> see that it shows `$50 / unit` instead of the expected `$100 / unit` **Cause of the issue:** This per unit value is divided by the BoM `product_qty` 2x: 1: https://github.com/odoo/enterprise/blob/ab86dadfcbe9662d611127546d9fb054759d325f/mrp_account_enterprise/reports/mrp_report.py#L184 2: https://github.com/odoo/enterprise/blob/ab86dadfcbe9662d611127546d9fb054759d325f/mrp_workorder_hr_account/report/mrp_report.py#L32 **Fix:** Remove the additional division operation in `mrp_workorder_hr_account` opw-4474710 Forward-Port-Of: odoo/enterprise#82913 Forward-Port-Of: odoo/enterprise#80560
When you apply a journal entry action (e.g. Create Vendor Bill) to several documents at once, you should be redirected to the journal list view. Since version 18.0, you're redirected to the form view of the last entry you've just created. The corresponding actions have several sub-actions and cannot be launched on several records at the same time. The selected documents are processed individually and the last sub-action returns systematically a form view. To fix this, we inject a con
Original PR description
When you apply a journal entry action (e.g. Create Vendor Bill) to several documents at once, you should be redirected to the journal list view. Since version 18.0, you're redirected to the form view of the last entry you've just created. The corresponding actions have several sub-actions and cannot be launched on several records at the same time. The selected documents are processed individually and the last sub-action returns systematically a form view. To fix this, we inject a context key containing the ids of the selection.Then the last sub-action uses it to determine the appropriate view(s) to return. task-4606751 Forward-Port-Of: odoo/enterprise#80273