Monday, May 12, 2025
35 changes · saas-18.1
Resolved issues and error corrections
The Point of Sale scheduling test data now includes Sunday availability, preventing failures when the system date falls on a Sunday. This keeps automated checks stable without changing customer-facing behavior.
Original PR description
Issue: - When the system date is set to a Sunday, the `test_preset_timing` tour fails. - The failure occurs because no time slots are selectable, due to the absence of Sunday attendance records. Fix: - included Sunday as well when creating attendance in the `resource_calendar`.
Purchase approval requests now use the correct unit of measure field for this Odoo version. This prevents errors caused by an outdated field name and helps purchase approval flows continue working as expected.
Original PR description
This commit fixes the issue brought by the forward-port PR https://github.com/odoo/enterprise/pull/83866 The field `uom_po_id` used has been removed in version 18.1 and replaced by `uom_id`. task-4751991
Miscellaneous changes
# Context Building on a recent PR (https://github.com/odoo/odoo/pull/188697), we introduce multiple small tweaks to enhance the life of support agents and system admins that work a lot with the log files in the the context of email related issues. # Changes * A given `mail.mail` record being processed by the `_send` method can end up sending multiple emails under the hood ( if `recipient_ids` points to muliple ids). This means that the ratio between one `mail.mail` record and the number
Original PR description
# Context Building on a recent PR (https://github.com/odoo/odoo/pull/188697), we introduce multiple small tweaks to enhance the life of support agents and system admins that work a lot with the log…
# Context Building on a recent PR (https://github.com/odoo/odoo/pull/188697), we introduce multiple small tweaks to enhance the life of support agents and system admins that work a lot with the log files in the the context of email related issues. # Changes * A given `mail.mail` record being processed by the `_send` method can end up sending multiple emails under the hood ( if `recipient_ids` points to muliple ids). This means that the ratio between one `mail.mail` record and the number of email sent through SMTP is not always 1:1. We added a new log line that counts the total emails processed in the loop which should give a more precise estimation of the real number of emails attempted through SMTP * Given the above, we the usual log line was not reporting all the (redacted) list of email addresses but only the `email_to` of the last `msg` value created during the inner loops. We now correctly show a comma seperated list of all recipients in a given batch. * The historical log line `Sent batch %s emails via mail server ID #%s` could be missleading as it was not counting the number of emails but the number of `mail.mail` records processed. It was reformulated to account for this. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209314 Forward-Port-Of: odoo/odoo#206657
Issue ----- Batch applying quantity adjustments creates duplicated journal entries. Steps to reproduce ----- - Create two products with automated valuation and 10 on hand quantity - Go to Inventory > Operations > Physical inventory and create an inventory adjustment for the two products (one positive, one negative) - Select both lines and click on "Adjust All" - Go to accounting > Accounting > Journal items -> Duplicated entries with one using the inventory valuation account and sto
Original PR description
Issue ----- Batch applying quantity adjustments creates duplicated journal entries. Steps to reproduce ----- - Create two products with automated valuation and 10 on hand quantity - Go to Inventory > Operations > Physical inventory and create an inventory adjustment for the two products (one positive, one negative) - Select both lines and click on "Adjust All" - Go to accounting > Accounting > Journal items -> Duplicated entries with one using the inventory valuation account and stock input and the other using the valuation account with stock output account Fix ----- This issue has been fixed by commit ce5d303 so just adding a small test to round things up. ----- Tickets: opw-4672011 opw-4677147 opw-4670069 Forward-Port-Of: odoo/odoo#205667
When an image is added in a website page by using the `/image` command of the Powerbox, it is not optimized like when the media dialog is used to replace an image. Also, when an image is replaced, the auto-optimization is not always included in the last history step - which makes operations like inserting a new paragraph remove the optimization. This commit makes sure that the `image_changed` event is: - triggered after the new image is inside the DOM - completed before considering we
Original PR description
When an image is added in a website page by using the `/image` command of the Powerbox, it is not optimized like when the media dialog is used to replace an image. Also, when an image is replaced,…
When an image is added in a website page by using the `/image` command of the Powerbox, it is not optimized like when the media dialog is used to replace an image. Also, when an image is replaced, the auto-optimization is not always included in the last history step - which makes operations like inserting a new paragraph remove the optimization. This commit makes sure that the `image_changed` event is: - triggered after the new image is inside the DOM - completed before considering we are done - included in the same history step that applied the media dialog's change. It also avoids recomputing the auto-optimization several times for a single trigger of the event. Steps to reproduce: Scenario 1: - Drop a three columns snippet - Put your cursor after "Feature 1" - Press ENTER - Use the "/image" Powerbox command to add an image that should be resized by the auto-optimization => Image was the original uploaded image. Scenario 2: - Drop a three columns snippet - Double click on an image - Upload/select an image that will be resized by the auto-optimization - Put your cursor after "Feature 1" - Press ENTER => Image's optimization was lost because it happened after the history step was completed. task-4129429 Forward-Port-Of: odoo/odoo#205294 Forward-Port-Of: odoo/odoo#177433
**Current behavior before PR:** - Clicking the reset color button did not remove the applied gradient color. **Desired behavior after PR is merged:** - The reset color button now correctly removes the gradient color when clicked. task: 4735054 Forward-Port-Of: odoo/odoo#206778
Original PR description
**Current behavior before PR:** - Clicking the reset color button did not remove the applied gradient color. **Desired behavior after PR is merged:** - The reset color button now correctly removes the gradient color when clicked. task: 4735054 Forward-Port-Of: odoo/odoo#206778
Somehow, translations files were lacking for this module. Done by Larissa (lman) 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#208579
Original PR description
Somehow, translations files were lacking for this module. Done by Larissa (lman) 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#208579
Prior to this commit, if an inline embedded component block was put as a direct child of the editable, it was removed during `initElementForEdition`, because `isVisible` returned false. However at that point, the `embedded_component_plugin` did not yet have the opportunity to fill that embedded component. Therefore, as a prevention measure, all elements with `data-embedded` attribute will always be considered `visible`, as their removal should be at the discretion of the `embedded_component_p
Original PR description
Prior to this commit, if an inline embedded component block was put as a direct child of the editable, it was removed during `initElementForEdition`, because `isVisible` returned false. However at…
Prior to this commit, if an inline embedded component block was put as a direct child of the editable, it was removed during `initElementForEdition`, because `isVisible` returned false. However at that point, the `embedded_component_plugin` did not yet have the opportunity to fill that embedded component. Therefore, as a prevention measure, all elements with `data-embedded` attribute will always be considered `visible`, as their removal should be at the discretion of the `embedded_component_plugin`. If they happen to have an `inline` style and they are direct children of the editable, they should be wrapped in a baseContainer `div` or `p`, but never removed. Issues of the type were observed when loading a Knowledge template containing a `div` with `data-embedded="file"` since embedded files have since been refactored to use an `inline-block` display style which made them eligible to be removed by `initElementForEdition` prior to the changes introduced in this commit. task-4745902 Forward-Port-Of: odoo/odoo#206971
**Current behaviour before PR:** When there is a text having background color, inserting a tab at the beginning of text creates a tab with background color. **Desired behaviour after PR is merged:** Now, if there is a text having background color, - Inserting tab at the beginning of text, tab will not have background color. - Inserting tab in the middle of a text, tab will have a background color corresponding to the text. - Inserting tab in the end of text, tab will have a backgro
Original PR description
**Current behaviour before PR:** When there is a text having background color, inserting a tab at the beginning of text creates a tab with background color. **Desired behaviour after PR is merged:** Now, if there is a text having background color, - Inserting tab at the beginning of text, tab will not have background color. - Inserting tab in the middle of a text, tab will have a background color corresponding to the text. - Inserting tab in the end of text, tab will have a background color corresponding to the text. task-4381135 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199733
**Behavior before this PR:** - Create a bold or italic tag using keyboard when selection is collapsed, leave it empty. - Change selection using arrow key. - Put cursor back where format tag was created. Notice that empty element is not removed and text is formatted when writing something. **Behavior after PR is merged:** - This PR makes sure that empty format element gets removed when changing selection. - Tag will not get removed if it's parent block element is empty. task-424
Original PR description
**Behavior before this PR:** - Create a bold or italic tag using keyboard when selection is collapsed, leave it empty. - Change selection using arrow key. - Put cursor back where format tag was created. Notice that empty element is not removed and text is formatted when writing something. **Behavior after PR is merged:** - This PR makes sure that empty format element gets removed when changing selection. - Tag will not get removed if it's parent block element is empty. task-4240818 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#195018
**Current behavior before PR:** Steps to reproduce: - Create a link in button primary format. - Select the label of the link either double clicking on the text. - Try to remove link from toolbar. - Notice that the link is not removed properly. This issue happens because if there is an adjacent `feff` character before or after selected text node of link and it is not traversed in selection then `splitAroundUntil` ends up creating an adjacent empty link. If link is in button format the
Original PR description
**Current behavior before PR:** Steps to reproduce: - Create a link in button primary format. - Select the label of the link either double clicking on the text. - Try to remove link from toolbar. - Notice that the link is not removed properly. This issue happens because if there is an adjacent `feff` character before or after selected text node of link and it is not traversed in selection then `splitAroundUntil` ends up creating an adjacent empty link. If link is in button format then empty links are visible. **Desired behavior after PR is merged:** Link should be removed entirely. task-4622487 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200530
Currently, when we are accessing the `parent_ids` of an archived company with code `company.sudo().parent_ids`, it will return an empty record, and an error will be generated when code tries to access `max()` from that empty record at code line [1]. ``` >>> company = self.env['res.company'].browse(2) >>> company res.company(2,) >>> company.active False >>> company.sudo().parent_ids res.company() >>> max(c.hard_lock_date or date.min for c in company.sudo().parent_ids
Original PR description
Currently, when we are accessing the `parent_ids` of an archived company with code `company.sudo().parent_ids`, it will return an empty record, and an error will be generated when code tries to…
Currently, when we are accessing the `parent_ids` of an archived company
with code `company.sudo().parent_ids`, it will return an empty record, and an
error will be generated when code tries to access `max()` from that empty
record at code line [1].
```
>>> company = self.env['res.company'].browse(2)
>>> company
res.company(2,)
>>> company.active
False
>>> company.sudo().parent_ids
res.company()
>>> max(c.hard_lock_date or date.min for c in company.sudo().parent_ids)
Traceback (most recent call last):
File "/usr/lib/python3.12/code.py", line 90, in runcode
exec(code, self.locals)
File "<console>", line 1, in <module>
ValueError: max() iterable argument is empty
>>> max(c.hard_lock_date or date.min for c in
company.sudo().with_context(active_test=False).parent_ids)
datetime.date(1, 1, 1)
>>>
>>>
```
This commit fixes the above issue by setting `active_test=False`, which
allows access to `archived (inactive)` parent companies, ensuring that
`company.sudo().parent_ids` includes them and avoids passing an empty
sequence to max()
[1] - https://github.com/odoo/odoo/blob/ac3924508016178427c7962fa3b8e645e7e03835/addons/account/models/company.py#L393
sentry-6581609140
Forward-Port-Of: odoo/odoo#208526Description of the issue/feature this PR addresses: Some of our clients have reported that the company logo on printed invoices is too small. This PR slightly increases its size and adds a small bottom margin. Current behavior before PR: The height in logo is 45px Desired behavior after PR is merged: Increases to 65px --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209155
Original PR description
Description of the issue/feature this PR addresses: Some of our clients have reported that the company logo on printed invoices is too small. This PR slightly increases its size and adds a small bottom margin. Current behavior before PR: The height in logo is 45px Desired behavior after PR is merged: Increases to 65px --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209155
This commit removes the z-index priority of kanban groups, headers and quick create over the no-content helper since it became useless with https://github.com/odoo/odoo/pull/148138 and can now cause display issues when these elements are on top of each other (which can happen with the quick create column). task-4778356 Forward-Port-Of: odoo/odoo#209059 Forward-Port-Of: odoo/odoo#208795
Original PR description
This commit removes the z-index priority of kanban groups, headers and quick create over the no-content helper since it became useless with https://github.com/odoo/odoo/pull/148138 and can now cause display issues when these elements are on top of each other (which can happen with the quick create column). task-4778356 Forward-Port-Of: odoo/odoo#209059 Forward-Port-Of: odoo/odoo#208795
Currently, an exception is raised when a user attempts to import an attachment with an invalid TypeCode in the XML file. Steps to Reproduce: 1. Install the `account_edi_ubl_cii` module. 2. Navigate to Invoice Module -> Customers -> Invoices. 3. Attempt to upload an attachment with an invalid TypeCode in the XML file. 4. An error occurs. Error: `TypeError cannot unpack non-iterable NoneType object ` This issue [1] occurs when a user imports an attachment with an invalid TypeCode
Original PR description
Currently, an exception is raised when a user attempts to import an attachment with an invalid TypeCode in the XML file. Steps to Reproduce: 1. Install the `account_edi_ubl_cii` module. 2. Navigate…
Currently, an exception is raised when a user attempts to import an attachment with an invalid TypeCode in the XML file. Steps to Reproduce: 1. Install the `account_edi_ubl_cii` module. 2. Navigate to Invoice Module -> Customers -> Invoices. 3. Attempt to upload an attachment with an invalid TypeCode in the XML file. 4. An error occurs. Error: `TypeError cannot unpack non-iterable NoneType object ` This issue [1] occurs when a user imports an attachment with an invalid TypeCode in the XML file [2]. The function returns None, which cannot be assigned to multiple variables, leading to an error. [1] - https://github.com/odoo/odoo/blob/29206fb5f9c733ec8751d8d4910e4df686f29506/addons/account_edi_ubl_cii/models/account_edi_common.py#L262 [2] - https://drive.google.com/file/d/1Ww1D302rvMwM2OQBAZJNnTcI0n0xUGWQ/view This fix resolves the issue by ensuring that if an invalid move_type_code is found, it returns None, None, preventing the error. sentry-6303716506 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208821 Forward-Port-Of: odoo/odoo#197927
In this PR: ## [FIX] tools: don't export attributes that aren't translated anyway PR #162079 made the list of translated attributes shared between QWeb and OWL templates. In hindsight, this was not a good idea, since: - some attributes are exclusive to QWeb (e.g.: string) - t-attf- variants of attributes are not translated in OWL - it does not reflect the list of attributes that OWL actually translates ## [IMP] tools: add missing ARIA attributes to OWL_TRANSLATED_ATTRS https://github
Original PR description
In this PR: ## [FIX] tools: don't export attributes that aren't translated anyway PR #162079 made the list of translated attributes shared between QWeb and OWL templates. In hindsight, this was not a…
In this PR: ## [FIX] tools: don't export attributes that aren't translated anyway PR #162079 made the list of translated attributes shared between QWeb and OWL templates. In hindsight, this was not a good idea, since: - some attributes are exclusive to QWeb (e.g.: string) - t-attf- variants of attributes are not translated in OWL - it does not reflect the list of attributes that OWL actually translates ## [IMP] tools: add missing ARIA attributes to OWL_TRANSLATED_ATTRS https://github.com/odoo/owl/pull/1679 made human-readable ARIA attributes translated by Owl. This commit updates OWL_TRANSLATED_ATTRS so that ARIA attributes are also correctly exported for translation, and will therefore be fully translatable when the next version of Owl is released. ## [IMP] tools: make 'confirm-label' and 'cancel-label' translatable 'cancel-label' and 'confirm-label' are missing from the list of attributes to export for translation. This commit adds them to the list. Forward-Port-Of: odoo/odoo#208861 Forward-Port-Of: odoo/odoo#204692
An error occurs when trying to send a reversed invoice to ZATCA if it included a downpayment that was also reversed. Steps to reproduce: - Install "Sales" and "Saudi Arabia - E-invoicing" apps. - Create a quotation and confirm it. - Create a downpayment and post it to ZATCA. - Create an invoice **A** including the downpayment and post it. - Reverse the downpayment and post it to ZATCA. - Reverse invoice **A** and try posting it to ZATCA. An error will occur: ```python File ".../l10
Original PR description
An error occurs when trying to send a reversed invoice to ZATCA if it included a downpayment that was also reversed. Steps to reproduce: - Install "Sales" and "Saudi Arabia - E-invoicing" apps. -…
An error occurs when trying to send a reversed invoice to ZATCA if it included a downpayment that was also reversed.
Steps to reproduce:
- Install "Sales" and "Saudi Arabia - E-invoicing" apps.
- Create a quotation and confirm it.
- Create a downpayment and post it to ZATCA.
- Create an invoice **A** including the downpayment and post it.
- Reverse the downpayment and post it to ZATCA.
- Reverse invoice **A** and try posting it to ZATCA.
An error will occur:
```python
File ".../l10n_sa_edi/models/account_edi_xml_ubl_21_zatca.py", line 356, in _l10n_sa_get_line_prepayment_vals
'prepayment_id': prepayment_move_id.name,
^^^^^^^^^^^^^^^^^^^^^^^
File ".../odoo/fields.py", line 1154, in __get__
record.ensure_one()
File ".../odoo/models.py", line 5204, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: account.move(190098, 190096)
```
This fix ensures that only the actual downpayment move is used by filtering on the move type.
opw-4567756
Forward-Port-Of: odoo/odoo#208259
Forward-Port-Of: odoo/odoo#201322### Steps to reproduce: - In the settings enable Multi-Step - Unarchive the MTO route - Create a storable product P with bom of type kit: - 1 x MTO COMP: with routes MTO and buy and set vendor - 1 X not MTO COMP: without routes - Create and confirm a sale order for 1 units of P - Update the quantity of the sale order line from 1 to 5 #### > The delivery is now for 6 units of both kit component ### Cause of the issue: Updating the quantity on the SOL will launch a call of
Original PR description
### Steps to reproduce: - In the settings enable Multi-Step - Unarchive the MTO route - Create a storable product P with bom of type kit: - 1 x MTO COMP: with routes MTO and buy and set vendor - 1 X…
### Steps to reproduce:
- In the settings enable Multi-Step
- Unarchive the MTO route
- Create a storable product P with bom of type kit:
- 1 x MTO COMP: with routes MTO and buy and set vendor
- 1 X not MTO COMP: without routes
- Create and confirm a sale order for 1 units of P
- Update the quantity of the sale order line from 1 to 5
#### > The delivery is now for 6 units of both kit component
### Cause of the issue:
Updating the quantity on the SOL will launch a call of the `_action_launch_stock_rule`.The quantity of the new procurement is then processed by these lines based on the kit data's: https://github.com/odoo/odoo/blob/65704e58fda293af727f76d5c0741b135817db99/addons/sale_stock/models/sale_order_line.py#L359 https://github.com/odoo/odoo/blob/65704e58fda293af727f76d5c0741b135817db99/addons/sale_mrp/models/sale_order_line.py#L153-L160 However, since one component uses the MTO route and the other does not the filter based on rules will fail since one of the component move refer to the mto rule and the other one to the delivery rule. In particular the computation will always lead to a result of 0 no matter how many are really processed because only one of the 2 moves can respect the filter.
opw-4700925
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#205538When a record is pushed directly into db having partial values like missing checkout date will lead to raising validation error. Steps to Reproduce: - In kiosk try to do a login/logout using the same employee having irregular record it raises validation error. Issue: - Unresponsive kiosk system. Reason: - When a validation error is raised from rpc call it directly displays the error dialog and moves and returns thus making the lockScanner reset, thus not allowing next users to us
Original PR description
When a record is pushed directly into db having partial values like missing checkout date will lead to raising validation error. Steps to Reproduce: - In kiosk try to do a login/logout using the same employee having irregular record it raises validation error. Issue: - Unresponsive kiosk system. Reason: - When a validation error is raised from rpc call it directly displays the error dialog and moves and returns thus making the lockScanner reset, thus not allowing next users to use kiosk. Fix: - Catching the error and posting it as notification (dialog can also be done) and letting the whole function execute. task-4760381 Forward-Port-Of: odoo/odoo#209306 Forward-Port-Of: odoo/odoo#207904
Before PRs https://github.com/odoo/odoo/pull/154912 and https://github.com/odoo/odoo/pull/177079, _free_reservation preserved MTO links by retaining move_orig_ids, allowing Manufacturing Orders (MOs) to reserve components from replenishment pickings. PR https://github.com/odoo/odoo/pull/149054 added replenishment moves to the MO’s procurement.group and assigned move_dest_ids to link them to component moves, supporting 2-step manufacturing flows. PR https://github.com/odoo/odoo/pull/154912
Original PR description
Before PRs https://github.com/odoo/odoo/pull/154912 and https://github.com/odoo/odoo/pull/177079, _free_reservation preserved MTO links by retaining move_orig_ids, allowing Manufacturing Orders (MOs)…
Before PRs https://github.com/odoo/odoo/pull/154912 and https://github.com/odoo/odoo/pull/177079, _free_reservation preserved MTO links by retaining move_orig_ids, allowing Manufacturing Orders (MOs) to reserve components from replenishment pickings. PR https://github.com/odoo/odoo/pull/149054 added replenishment moves to the MO’s procurement.group and assigned move_dest_ids to link them to component moves, supporting 2-step manufacturing flows. PR https://github.com/odoo/odoo/pull/154912 introduced the stock.break_mto parameter to conditionally preserve move_orig_ids, while PR https://github.com/odoo/odoo/pull/177079 removed it, making move_orig_ids clearing unconditional for MTO-to-MTS transitions, reintroducing a regression due to the move_dest_ids assignment. Steps to Reproduce =================== 1. Create an MO with a component qty of 20 units and confirm it. 2. Scrap 5 units of the component with Replenish enabled. 3. Validate the replenishment transfer. 4. Check the MO component line. The component qty is reduced to 5. Issue ===== The move_dest_ids assignment to replenishment moves (from https://github.com/odoo/odoo/pull/149054) prevents _trigger_assign from reserving correct MO component quantities when move_orig_ids are cleared (per https://github.com/odoo/odoo/pull/177079), as the link to the original MO requirements is broken. Fix === Removed the move_dest_ids assignment for replenish moves enabling trigger_assign to automatically reserve the correct component quantities, while maintaining the MTO-to-MTS transition (cleared move_orig_ids) and the procurement.group assignment. Task: https://github.com/odoo/odoo/commit/44437975bdaf1e7c4f5540a5cb789d9db0ec0b0b Forward-Port-Of: odoo/odoo#204211
This reverts FW #82587. The functionality of `action_send_documents_share_link` was changed as of #65655 in 18+, which no longer requires the`company.documents_hr_folder` setting. opw-4559772 Forward-Port-Of: odoo/enterprise#84469
Original PR description
This reverts FW #82587. The functionality of `action_send_documents_share_link` was changed as of #65655 in 18+, which no longer requires the`company.documents_hr_folder` setting. opw-4559772 Forward-Port-Of: odoo/enterprise#84469
Commit e33522cdc8fcc52 wrongly fixed the first domain of the three. `departure_reason_id` clause disapeared and the active=False was changed to active in [true,false] Forward-Port-Of: odoo/enterprise#85252
Original PR description
Commit e33522cdc8fcc52 wrongly fixed the first domain of the three. `departure_reason_id` clause disapeared and the active=False was changed to active in [true,false] Forward-Port-Of: odoo/enterprise#85252
Steps: - Have a main company C with a branch B - Select B in company selector, but have C checkbox checked too - Create a user U with `company_id == B` - Create and confirm an invoice I for user U, company_id should be B, amount X - Go back to accounting dashboard, and open reconciliation widget - Create a new transaction, amout X - Select it, select line from I and click on Validate -> UserError: "Incompatible companies on records" This reason is, even if we have Branch company sele
Original PR description
Steps: - Have a main company C with a branch B - Select B in company selector, but have C checkbox checked too - Create a user U with `company_id == B` - Create and confirm an invoice I for user U, company_id should be B, amount X - Go back to accounting dashboard, and open reconciliation widget - Create a new transaction, amout X - Select it, select line from I and click on Validate -> UserError: "Incompatible companies on records" This reason is, even if we have Branch company selected as `env.company`, as we have Main company checked too, the statement line is created with `company_id == main company` With this commit, we unset the partner from the statement line's move if it is from an accessible branch but not the main company. We also test different usecases to secure the flow. opw-4626664 Forward-Port-Of: odoo/enterprise#84951 Forward-Port-Of: odoo/enterprise#82896
When updating a parent product, the MPS view will load ALL the components on the page even if it breaks the pager limit. Previously, there was a refresh at every change. It was annoying so it was removed. However this refresh made sure to reduce the number of records shown to the pager limit. The solution is to simply slice the received array of lines to the n first records, n being the value of `this.env.config.limit`. opw-4778588 Forward-Port-Of: odoo/enterprise#85159
Original PR description
When updating a parent product, the MPS view will load ALL the components on the page even if it breaks the pager limit. Previously, there was a refresh at every change. It was annoying so it was removed. However this refresh made sure to reduce the number of records shown to the pager limit. The solution is to simply slice the received array of lines to the n first records, n being the value of `this.env.config.limit`. opw-4778588 Forward-Port-Of: odoo/enterprise#85159
This update is done without an upgrade because the old format will still work. But for cleanliness, templates should reflect what the editor will actually do, and since [This commit], files are `span` elements, not `div` anymore, and they are wrapped in a baseContainer (`div` or `p`). [This commit]: https://github.com/odoo/odoo/commit/96c8c398c0fbef519b56edf4941691d11372eac0 task-4745902 Forward-Port-Of: odoo/enterprise#83899
Original PR description
This update is done without an upgrade because the old format will still work. But for cleanliness, templates should reflect what the editor will actually do, and since [This commit], files are `span` elements, not `div` anymore, and they are wrapped in a baseContainer (`div` or `p`). [This commit]: https://github.com/odoo/odoo/commit/96c8c398c0fbef519b56edf4941691d11372eac0 task-4745902 Forward-Port-Of: odoo/enterprise#83899
The system failed to retrieve `company.l10n_ar_afip_ws_key_id.pem_key` because of quick create. Steps to Reproduce: 1. Switch to `(AR) Exento Company`. 2. Navigate to `Settings `> `Invoicing`. 3. Search for `Argentinean Localization`. 4. In `Primary Key`, clear the field, enter any value, and click Create. 5. Click `Generate Renewal Request`. Error: `TypeError: argument should be a bytes-like object or ASCII string, not 'bool'` Solution: Add `no_quick_create : True` for l10n_ar
Original PR description
The system failed to retrieve `company.l10n_ar_afip_ws_key_id.pem_key` because of quick create. Steps to Reproduce: 1. Switch to `(AR) Exento Company`. 2. Navigate to `Settings `> `Invoicing`. 3. Search for `Argentinean Localization`. 4. In `Primary Key`, clear the field, enter any value, and click Create. 5. Click `Generate Renewal Request`. Error: `TypeError: argument should be a bytes-like object or ASCII string, not 'bool'` Solution: Add `no_quick_create : True` for l10n_ar_afip_ws_key_id field. Sentry - 5999498377 Forward-Port-Of: odoo/enterprise#83233
Problem: In a multi-company environment with multiple companies from India, users are getting access right errors about being unable to read employees from Company B when viewing the Salary Register from Company A and vice versa. Steps to Reproduce on Runbot: 1. Install accounting,employee, payroll, India payroll 2. Create 2 Indian companies with India fiscal package 3. Create an employee per company and create payslips per employee and pay them 4. View the salary register in Payroll > Re
Original PR description
Problem: In a multi-company environment with multiple companies from India, users are getting access right errors about being unable to read employees from Company B when viewing the Salary Register from Company A and vice versa. Steps to Reproduce on Runbot: 1. Install accounting,employee, payroll, India payroll 2. Create 2 Indian companies with India fiscal package 3. Create an employee per company and create payslips per employee and pay them 4. View the salary register in Payroll > Reporting --> access right error thrown opw-4677551 Forward-Port-Of: odoo/enterprise#83199
If the user deleted some leave types, the payroll app will not be able to function anymore, in this PR we fallback and only browse for the ones that were not deleted Forward-Port-Of: odoo/enterprise#85119
Original PR description
If the user deleted some leave types, the payroll app will not be able to function anymore, in this PR we fallback and only browse for the ones that were not deleted Forward-Port-Of: odoo/enterprise#85119
To ease multi-company usage, we introduce the company_id field on insurance views since one insurance per company has to be created Forward-Port-Of: odoo/enterprise#85129 Forward-Port-Of: odoo/enterprise#84968
Original PR description
To ease multi-company usage, we introduce the company_id field on insurance views since one insurance per company has to be created Forward-Port-Of: odoo/enterprise#85129 Forward-Port-Of: odoo/enterprise#84968
The mx payment method on a payment should be the one from the pos payment method. Steps: - Have a PoS payment method with `l10n_mx_edi_payment_method_id` != `payment_method_transferencia` - Open a PoS session, make an order with this payment method and close the session - Look for the related payment --> `l10n_mx_edi_payment_method_id` == `payment_method_transferencia` With this commit, we override the compute to get the payment way from the pos payment method. opw-4699064 Forward-Port-
Original PR description
The mx payment method on a payment should be the one from the pos payment method. Steps: - Have a PoS payment method with `l10n_mx_edi_payment_method_id` != `payment_method_transferencia` - Open a PoS session, make an order with this payment method and close the session - Look for the related payment --> `l10n_mx_edi_payment_method_id` == `payment_method_transferencia` With this commit, we override the compute to get the payment way from the pos payment method. opw-4699064 Forward-Port-Of: odoo/enterprise#85043 Forward-Port-Of: odoo/enterprise#83323
when the option is not set key error is raised , this due to when onchange is called the default value is not set but being also called with empty option build_error-107919 Forward-Port-Of: odoo/enterprise#82825
Original PR description
when the option is not set key error is raised , this due to when onchange is called the default value is not set but being also called with empty option build_error-107919 Forward-Port-Of: odoo/enterprise#82825
- Turn on Inter-company transactions. Select to sync invoices and bills in two companies. - Create an invoice in company A for an individual contact belonging to company B, then send and print the invoice. - In the corresponding bill in Company B, the draft bill is created without any attachment_ids. In the method _process_send_and_print from account_inter_company_rule the moves_with_attachements does not check if a partner belong to a synced company. opw-4675654 Forward-Port-Of: odoo/e
Original PR description
- Turn on Inter-company transactions. Select to sync invoices and bills in two companies. - Create an invoice in company A for an individual contact belonging to company B, then send and print the invoice. - In the corresponding bill in Company B, the draft bill is created without any attachment_ids. In the method _process_send_and_print from account_inter_company_rule the moves_with_attachements does not check if a partner belong to a synced company. opw-4675654 Forward-Port-Of: odoo/enterprise#84552 Forward-Port-Of: odoo/enterprise#83431
- With l10n_mx_edi, create an invoice and send it to the cfdi. Download the cfdi xml. - Import the xml as a vendor bill. Confirm and click on Update SAT. - The vendor bill list view the l10n_mx_edi_cfdi_sat_state is set to false despite the l10n_mx_edi.document.sat_state being set. https://github.com/odoo/enterprise/commit/b34a4d105c67807628284257be51295e33da6bf0 added the ability to import cfdi xml as vendor bills and updated the selection for l10n_mx_edi.document.state with invoice_receiv
Original PR description
- With l10n_mx_edi, create an invoice and send it to the cfdi. Download the cfdi xml. - Import the xml as a vendor bill. Confirm and click on Update SAT. - The vendor bill list view the l10n_mx_edi_cfdi_sat_state is set to false despite the l10n_mx_edi.document.sat_state being set. https://github.com/odoo/enterprise/commit/b34a4d105c67807628284257be51295e33da6bf0 added the ability to import cfdi xml as vendor bills and updated the selection for l10n_mx_edi.document.state with invoice_received. However the compute _compute_l10n_mx_edi_cfdi_state_and_attachment which depends on l10n_mx_edi.document.state was not updated to take into account that new possible selection. opw-4673134 Forward-Port-Of: odoo/enterprise#84764 Forward-Port-Of: odoo/enterprise#83629
Extension of l10n_co_edi to allow creation of mandate invoices. - Adding mandate-related fields for product_template. - Adding relevant EDI XML section for mandate products. Task [link](https://www.odoo.com/odoo/project/967/tasks/4302423) task-4302423 Forward-Port-Of: odoo/enterprise#77673
Original PR description
Extension of l10n_co_edi to allow creation of mandate invoices. - Adding mandate-related fields for product_template. - Adding relevant EDI XML section for mandate products. Task [link](https://www.odoo.com/odoo/project/967/tasks/4302423) task-4302423 Forward-Port-Of: odoo/enterprise#77673
The system fails when `ir. qweb. _ render ()` is called with a `values` argument that is not a dictionary but a `Response ' object. Steps to Produce: 1. Open `Sign` Module > Templates > Click on the `Sign Now` button of any template. 2. Copy url > delete sign reques > paste url in websie 3. The error will be visible on the terminal. Error: `AttributeError: 'Response' object has no attribute 'copy'` Solution: - Updated `get_document()` to check if `context` is not a `dict`. - If no
Original PR description
The system fails when `ir. qweb. _ render ()` is called with a `values` argument that is not a dictionary but a `Response ' object. Steps to Produce: 1. Open `Sign` Module > Templates > Click on the `Sign Now` button of any template. 2. Copy url > delete sign reques > paste url in websie 3. The error will be visible on the terminal. Error: `AttributeError: 'Response' object has no attribute 'copy'` Solution: - Updated `get_document()` to check if `context` is not a `dict`. - If not, the method now safely returns `request.not_found()`. sentry - 6521023695 Forward-Port-Of: odoo/enterprise#82936