Monday, June 17, 2024
28 changes · saas-17.3
Resolved issues and error corrections
This fix prevents spreadsheet pivot tables from being created in the wrong context. It ensures tables are only created when a pivot is inserted from the pivot view, reducing incorrect spreadsheet behavior for users.
Original PR description
Creating a table should be done only when the pivot is inserted from the pivot view, not when it is inserted with the command "INSERT_PIVOT". Task: 3987435
Miscellaneous changes
Steps to reproduce: - create a new db `--without-demo=True -i l10n_ar` - Load demo data Issue: Everything goes wild Cause: When we instantiate a database without demo data with l10n_ar, the res_partner(1) has the l10n_latam_identification_type_id field set to 'CUIT'. When loading demo data, a VAT number is assigned to res.partner(1)(*), which triggers a constraint error: https://github.com/odoo/odoo/blob/69e31db6ac90874ed6329599fca8f09709efd119/addons/l10n_ar/models/res_partner.py#L6
Original PR description
Steps to reproduce: - create a new db `--without-demo=True -i l10n_ar` - Load demo data Issue: Everything goes wild Cause: When we instantiate a database without demo data with l10n_ar, the…
Steps to reproduce: - create a new db `--without-demo=True -i l10n_ar` - Load demo data Issue: Everything goes wild Cause: When we instantiate a database without demo data with l10n_ar, the res_partner(1) has the l10n_latam_identification_type_id field set to 'CUIT'. When loading demo data, a VAT number is assigned to res.partner(1)(*), which triggers a constraint error: https://github.com/odoo/odoo/blob/69e31db6ac90874ed6329599fca8f09709efd119/addons/l10n_ar/models/res_partner.py#L60-L61 Since res.partner(1) has the CUIT identification type, its VAT will be checked for correctness here: https://github.com/odoo/odoo/blob/69e31db6ac90874ed6329599fca8f09709efd119/addons/l10n_ar/models/res_partner.py#L106 The dummy VAT added with this PR causes the constraint error: https://github.com/odoo/odoo/commit/a171597d1904de992bcf0e0f606b4c6a4b70b725 (*)By default (even without demo data) there is a "MyCompany" partner: https://github.com/odoo/odoo/blob/7e58f5c5ee772f2a6b4dff7ad3279dc9242ea2b3/odoo/addons/base/data/res_partner_data.xml#L4-L13 Solution: For 'main_partner' we don't set any vat number. Since some irregularities might happen, if the vat is necesarry for it, adding it to the specific module might be a better choice commit:https://github.com/odoo/odoo/commit/a171597d1904de992bcf0e0f606b4c6a4b70b725 opw-3907520 Forward-Port-Of: odoo/odoo#169305 Forward-Port-Of: odoo/odoo#167062
In commit [1], a missing semicolon breaks the neutralization of a database. This commit fixes the issue. task-3895772 [1]: https://github.com/odoo/odoo/commit/44ecef1c6a22afba3e5151fa857fe550ed5d4f8c Forward-Port-Of: odoo/odoo#169598
Original PR description
In commit [1], a missing semicolon breaks the neutralization of a database. This commit fixes the issue. task-3895772 [1]: https://github.com/odoo/odoo/commit/44ecef1c6a22afba3e5151fa857fe550ed5d4f8c Forward-Port-Of: odoo/odoo#169598
Current behaviour: --- When scheduled_date is not set, we get a traceback Steps to reproduce: --- 1. Create Product FNS storable 2. Create Product CMP storable 3. Create quant for 10 units of CMP 4. Set CMP tracking to 'Lot' and 'Use expiration date' to True 5. Create MO for 1 unit of FNS using 1 unit of CMP 6. Try to Confirm: Traceback Cause of the issue: --- Caused by: https://github.com/odoo/odoo/commit/f1d4a727a84672d974151f681e43768abd3ac7cc opw-3981689 --- I confirm
Original PR description
Current behaviour: --- When scheduled_date is not set, we get a traceback Steps to reproduce: --- 1. Create Product FNS storable 2. Create Product CMP storable 3. Create quant for 10 units of CMP 4. Set CMP tracking to 'Lot' and 'Use expiration date' to True 5. Create MO for 1 unit of FNS using 1 unit of CMP 6. Try to Confirm: Traceback Cause of the issue: --- Caused by: https://github.com/odoo/odoo/commit/f1d4a727a84672d974151f681e43768abd3ac7cc opw-3981689 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#169052
xlrd 2.0 removed xlsx support, and that's the version on Noble. So xlsx (the modern excel format) can't be imported on Noble. Aside from the error message being confusing (it says to install xlsx >= 1.0, which is already there) this would be fine, just no support for xlsx, except the only *export* formats are xlsx and csv, and xlsx is the default, and csv is kinda shit too. In fact when using the "Export All" quick action, the only thing you can get is xlsx. So losing xlsx support turns ou
Original PR description
xlrd 2.0 removed xlsx support, and that's the version on Noble. So xlsx (the modern excel format) can't be imported on Noble. Aside from the error message being confusing (it says to install xlsx >= 1.0, which is already there) this would be fine, just no support for xlsx, except the only *export* formats are xlsx and csv, and xlsx is the default, and csv is kinda shit too. In fact when using the "Export All" quick action, the only thing you can get is xlsx. So losing xlsx support turns out to be a concern. This can be resolved, kinda, by adding support for openpyxl. The API is pretty simple and similar to xlsx though not super well documented (especially when trying to do type dispatching). This here version seems to work with the (fairly limited) XLSX test case of base_import. Forward-Port-Of: odoo/odoo#169245
### Steps to reproduce: 1. Create a BOM with 2 operations: op 1 and 2 2. Create and confirm an MO for 10 units using that BOM. 3. Put the quantity to 10 then start and done op 1 4. Put the quantity to 2 then start and done op 2 5. Produce and create a backorder 6. Put the quantity to 4 then start and done op 2 7. Produce and create a backorder #### > instead of 4 units remaining in op 2 we have 4 units remaining in op 1 ### Cause of the issue: The operations of a productions (`mr
Original PR description
### Steps to reproduce: 1. Create a BOM with 2 operations: op 1 and 2 2. Create and confirm an MO for 10 units using that BOM. 3. Put the quantity to 10 then start and done op 1 4. Put the quantity…
### Steps to reproduce: 1. Create a BOM with 2 operations: op 1 and 2 2. Create and confirm an MO for 10 units using that BOM. 3. Put the quantity to 10 then start and done op 1 4. Put the quantity to 2 then start and done op 2 5. Produce and create a backorder 6. Put the quantity to 4 then start and done op 2 7. Produce and create a backorder #### > instead of 4 units remaining in op 2 we have 4 units remaining in op 1 ### Cause of the issue: The operations of a productions (`mrp.workorder`'s) are ordered by `leave_id`, `date_start` and then `id`: https://github.com/odoo/odoo/blob/26239b2d0bdbc2f06d50f7739d61c490248b65bb/addons/mrp/models/mrp_workorder.py#L14-L17 Since, in the first backorder, the workorder corresponding to op 1 is cancelled it has an empty `leave_id` and `date_start`. On the other hand, once the partial operation of op 2 has been completed its associated `date_start` is not empty anymore and the order of both operations is therefore swaped. However, when a backorder is created, the quantity of the workorders is set by relying on the order of operations (which is not the same with and without `leave_id`, `date_start`): https://github.com/odoo/odoo/blob/d826c3782d737fc1724887692b71b27999bf846d/addons/mrp/models/mrp_production.py#L1973-L1983 So that the data is set on the wrong line. opw-3880963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166820
## Issue: - The stock valuation for discounted purchase orders is incorrectly based on the original unit price instead of the price. ## Steps To Reproduce: - Create a storable product with AVCO costing method. - In its purchase tab set control policy "On ordered quantities". - Create RFQ for a product 10 qty with 10 unit price and add a 10% discount. - Create a vendor bill and confirm it. - Receive the product. - See the valuation, it will show 100 instead of 90. ## Solution: - I f
Original PR description
## Issue: - The stock valuation for discounted purchase orders is incorrectly based on the original unit price instead of the price. ## Steps To Reproduce: - Create a storable product with AVCO costing method. - In its purchase tab set control policy "On ordered quantities". - Create RFQ for a product 10 qty with 10 unit price and add a 10% discount. - Create a vendor bill and confirm it. - Receive the product. - See the valuation, it will show 100 instead of 90. ## Solution: - I fixed the issue by updating the `_get_price_unit` method to consider discounts when calculating the invoiced value. opw-3895448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168619
Issue: At some point we added the daterange widget to select the dates for the resource leaves without taking into account certain cases, the most relevant is that we have a compute_date_to which depends on the date_from, the duty of this compute is that whenever we select a date_from, we will get the date_to to allocate exactly 1 day, which is the most common use, the problem is that with this widget we will always modify both date_from and date_to at the same time, making the compute to be
Original PR description
Issue: At some point we added the daterange widget to select the dates for the resource leaves without taking into account certain cases, the most relevant is that we have a compute_date_to which…
Issue: At some point we added the daterange widget to select the dates for the resource leaves without taking into account certain cases, the most relevant is that we have a compute_date_to which depends on the date_from, the duty of this compute is that whenever we select a date_from, we will get the date_to to allocate exactly 1 day, which is the most common use, the problem is that with this widget we will always modify both date_from and date_to at the same time, making the compute to be called everytime which will not allow us to select a further date for date_to. Steps to reproduce: 1. Install Appointments. 2. Go to Configuration > Resource Leaves > New 3. Try to allocate more than 1 day for the Resource Time Off Solution: We should, at least for the moment, keep it as it was before, where we can select both dates separetely, this way whenever we select our date_from we will get the date_to updated automatically to make things easier for the most common case, but we will still be able to change the date_to without triggering the compute. opw-3861325 Forward-Port-Of: odoo/odoo#161715
This commit addresses the issue where the Product Configurator Popup was displayed unnecessarily when there was only one value for each attribute of a product. The implementation now includes a check to ensure that the popup is shown only when there are more that one choices available. This enhancement improves the user experience by avoiding the display of a redundant popup without viable options. opw-3903425 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/
Original PR description
This commit addresses the issue where the Product Configurator Popup was displayed unnecessarily when there was only one value for each attribute of a product. The implementation now includes a check to ensure that the popup is shown only when there are more that one choices available. This enhancement improves the user experience by avoiding the display of a redundant popup without viable options. opw-3903425 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168350 Forward-Port-Of: odoo/odoo#164384
Before this commit, taxValues.taxId was used as the key for taxDetails, which was undefined because it doesn't have a taxId property. The correct property to use is 'id'. This misuse was leading to several problems. opw-3969647 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168118
Original PR description
Before this commit, taxValues.taxId was used as the key for taxDetails, which was undefined because it doesn't have a taxId property. The correct property to use is 'id'. This misuse was leading to several problems. opw-3969647 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168118
Previously, when the attempting to decode a pdf or xml file as EDI attachment, if an xml or pdf file was malformed, we would log a warning (for pdf) or error (for xml). There are tests in which we post messages to the chatter with an XML file with embedded PDF which is actually a generated report. These tests don't actually generate a valid PDF because wkhtmltopdf isn't available in those tests, but these tests also do not particularly care that the PDF is valid. Similarly, there are tests th
Original PR description
Previously, when the attempting to decode a pdf or xml file as EDI attachment, if an xml or pdf file was malformed, we would log a warning (for pdf) or error (for xml). There are tests in which we…
Previously, when the attempting to decode a pdf or xml file as EDI attachment, if an xml or pdf file was malformed, we would log a warning (for pdf) or error (for xml). There are tests in which we post messages to the chatter with an XML file with embedded PDF which is actually a generated report. These tests don't actually generate a valid PDF because wkhtmltopdf isn't available in those tests, but these tests also do not particularly care that the PDF is valid. Similarly, there are tests that post messages with xml attachments that don't contain valid xml but they also do not care that the xml in valid in those flows. The linked enterprise PR adds an override of _message_post that will attempt to decode posted attachments so that it can take some action based on their contents. While this works perfectly fine and doesn't break any behaviour, as the decoding methods will simply return an empty list when the attachments are malformed, because they log warnings or errors, it causes tests/runbot to fail. The information that an invalid xml or pdf was uploaded is not particularly useful or urgent information for the server admin, and users already get a notification when uploading a malformed file. As such, this commit changes these warning/exception logs to simple info logs. This means this information remains available but isn't given disporoportionate importance in the logs, and doesn't cause tests that work perfecly fine to fail. task-3731034 Forward-Port-Of: odoo/odoo#166459
Currently, no language was passed to the HR Attendance Kiosk, so it would default to English. This change passes the language of the company partner to the kiosk mode in order to allow companies having the portal in their own language. task-3976591 Forward-Port-Of: odoo/odoo#168343
Original PR description
Currently, no language was passed to the HR Attendance Kiosk, so it would default to English. This change passes the language of the company partner to the kiosk mode in order to allow companies having the portal in their own language. task-3976591 Forward-Port-Of: odoo/odoo#168343
`to_recheck_leaves` stores every leave that is not yet taken into account by the "allocation_leaves_consumed" dictionary. now for some leave type, it's allocation contain False value as key of this `allocation_leaves_consumed` dictionary. because when leave_type with requires_allocation Is not yes then we pass leave type data with False as allocation. see: https://github.com/odoo/odoo/blob/7363d568df6e82119eed1cec55b3ae67a3816a1a/addons/hr_holidays/models/hr_employee.py#L565 and this wi
Original PR description
`to_recheck_leaves` stores every leave that is not yet taken into account by the "allocation_leaves_consumed" dictionary. now for some leave type, it's allocation contain False value as key of this…
`to_recheck_leaves` stores every leave that is not yet taken into account by the "allocation_leaves_consumed" dictionary. now for some leave type, it's allocation contain
False value as key of this `allocation_leaves_consumed` dictionary.
because when leave_type with requires_allocation
Is not yes then we pass leave type data with False as allocation.
see:
https://github.com/odoo/odoo/blob/7363d568df6e82119eed1cec55b3ae67a3816a1a/addons/hr_holidays/models/hr_employee.py#L565
and this will create issue when we try to calculate `latest_accrual_bonus` value by iterating consumed_content which call `_get_future_leaves_on` function but as we got allocation as False will get error :
```
File "/home/odoo/src/odoo/17.0/addons/hr_holidays/models/hr_employee.py", line 105, in _compute_allocation_remaining_display
leaves_taken = self._get_consumed_leaves(allocations.holiday_status_id)[0]
File "/home/odoo/src/odoo/17.0/addons/hr_holidays/models/hr_employee.py", line 582, in _get_consumed_leaves
latest_accrual_bonus += allocation._get_future_leaves_on(date_to_simulate)
AttributeError: 'bool' object has no attribute '_get_future_leaves_on'
```
Generated during upgrade.
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#169208Display IoTBox connected devices on its display. Task: 3960101 Forward-Port-Of: odoo/odoo#168833
Original PR description
Display IoTBox connected devices on its display. Task: 3960101 Forward-Port-Of: odoo/odoo#168833
In this commit, we changed the way the addresses were displayed in accounting. https://github.com/odoo/odoo/commit/28fdcaabda9dc61b352e58e692bc5adf15a08a1e We now want the same behavior with the sale orders. task-3951205 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166877
Original PR description
In this commit, we changed the way the addresses were displayed in accounting. https://github.com/odoo/odoo/commit/28fdcaabda9dc61b352e58e692bc5adf15a08a1e We now want the same behavior with the sale orders. task-3951205 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166877
Live chat displays a welcome message when the visitor opens the chat. However, when an operator sends a chat request, the welcome message is not necessary as the first operator message will act as a welcome message. Before [1], chat requests data were inserted directly into the JS and the information about who opend the chat was given. However, the data is now fetched from the server and this information is missing. This PR adds this information so that the client can decide whether to
Original PR description
Live chat displays a welcome message when the visitor opens the chat. However, when an operator sends a chat request, the welcome message is not necessary as the first operator message will act as a…
Live chat displays a welcome message when the visitor opens the chat. However, when an operator sends a chat request, the welcome message is not necessary as the first operator message will act as a welcome message. Before [1], chat requests data were inserted directly into the JS and the information about who opend the chat was given. However, the data is now fetched from the server and this information is missing. This PR adds this information so that the client can decide whether to display this message. Steps to reproduce this issue: - Go on the website as a visitor - Send a chat request from admin, send a first message - Navigate to another page with the visitor - The welcome message appears in addition to the operator message. [1]: https://github.com/odoo/odoo/pull/142155 Before:  After:  Forward-Port-Of: odoo/odoo#169476
When triggering the onchange method of the reconciliation widget, the `_get_invoice_matching_amls_candidates` method is executed. If there are both numerical and exact tokens, it produces a query with 6 subqueries (a general query with 6 UNION ALL). This can become quite slow on database with lots of amls. Because for each of these 6 "subqueries" the FROM, JOIN and WHERE clauses are the same, we can extract all of them in a single CTE. Thanks to that the CTE is executed only once and each UNI
Original PR description
When triggering the onchange method of the reconciliation widget, the `_get_invoice_matching_amls_candidates` method is executed. If there are both numerical and exact tokens, it produces a query…
When triggering the onchange method of the reconciliation widget, the `_get_invoice_matching_amls_candidates` method is executed. If there are both numerical and exact tokens, it produces a query with 6 subqueries (a general query with 6 UNION ALL). This can become quite slow on database with lots of amls. Because for each of these 6 "subqueries" the FROM, JOIN and WHERE clauses are the same, we can extract all of them in a single CTE. Thanks to that the CTE is executed only once and each UNION ALL simply scans the CTE to get the correct columns + performs an additional filtering. This reduces the average execution of the query by a factor of 3-4 on hot-cache. Since the onchange is triggered each time we do something in the reconciliation widget, on average the cache is expected to be hot so the average speedup boils down to the hot-cache scenario. #### speedup Customer 17.0 database with 7M account_move_lines and 8000 accounts, the query execution, given a st_line and with both numerical and exact tokens: 7.5s -> 2.3s ##### dalibo [Standard](https://explain.dalibo.com/plan/0a6fe16h503614e0) vs [CTE](https://explain.dalibo.com/plan/495a777ef95d2980) There is also a speedup achievable with a partial multicolumn index but that's more of a case by case index. opw-3938995 Forward-Port-Of: odoo/enterprise#64433
On Windows OS if a ctypes method causes a segmentation fault, it leads to an OSError instead of a crash like it does on a raspberry pi. Related Python ctypes documentation link: https://docs.python.org/3/library/ctypes.html#calling-functions  This PR wraps every ctypes C/C++ method call with a try/except OSError to properly detect, log and display an error message to the user. task-3950
Original PR description
On Windows OS if a ctypes method causes a segmentation fault, it leads to an OSError instead of a crash like it does on a raspberry pi. Related Python ctypes documentation link: https://docs.python.org/3/library/ctypes.html#calling-functions  This PR wraps every ctypes C/C++ method call with a try/except OSError to properly detect, log and display an error message to the user. task-3950652 Forward-Port-Of: odoo/enterprise#64413 Forward-Port-Of: odoo/enterprise#64124
Revisions are technical records that are never supposed to be changed (except the `active` field). If any of `res_model`, `res_id`, `revision_uuid` is changed, the spreadsheet history will be broken. Changing field `commands` could also break the spreadsheet if the json is malformed or the command is made invalid. In this commit, we prevent the admin to make any changes. Forward-Port-Of: odoo/enterprise#64401 Forward-Port-Of: odoo/enterprise#64328
Original PR description
Revisions are technical records that are never supposed to be changed (except the `active` field). If any of `res_model`, `res_id`, `revision_uuid` is changed, the spreadsheet history will be broken. Changing field `commands` could also break the spreadsheet if the json is malformed or the command is made invalid. In this commit, we prevent the admin to make any changes. Forward-Port-Of: odoo/enterprise#64401 Forward-Port-Of: odoo/enterprise#64328
Steps to reproduce: - Install `documents_project` - Go to one of the task and add a document - Close it Issues: In the project update the number of documents is shown however it is wrong, as it compute it by retrieving all the tasks without taking into account the state of the tasks. When clicking on the documents button you don't see documents linked to task that are closed, the desired behaviour is to see all of them and not take into account the state of the tasks. The behaviour
Original PR description
Steps to reproduce: - Install `documents_project` - Go to one of the task and add a document - Close it Issues: In the project update the number of documents is shown however it is wrong, as it compute it by retrieving all the tasks without taking into account the state of the tasks. When clicking on the documents button you don't see documents linked to task that are closed, the desired behaviour is to see all of them and not take into account the state of the tasks. The behaviour was due to the way the domain is set on the `task_ids` in the project model. https://github.com/odoo/odoo/blob/174cb193592f12c7f4167eb34642665778deb208/addons/project/models/project.py#L332-L333 Because of this when we retrieved the documents we didn't have all the tasks. https://github.com/odoo/enterprise/blob/0e98a5fdf5e4f32eeae769552284297b9233088c/documents_project/models/project_project.py#L204 opw-3921156 Forward-Port-Of: odoo/enterprise#64603
Create an asset Reverse an entry in the past => In depreciation schedule, if we take the current period, initial amount in Depreciation does not correspond to the cumulative depreciation in the Depreciation Board of the asset. The reversed entry are not taken into account, which was normal before, but now we take reversal entry into account so these should be too. opw-3890144 Forward-Port-Of: odoo/enterprise#64564 Forward-Port-Of: odoo/enterprise#63821
Original PR description
Create an asset Reverse an entry in the past => In depreciation schedule, if we take the current period, initial amount in Depreciation does not correspond to the cumulative depreciation in the Depreciation Board of the asset. The reversed entry are not taken into account, which was normal before, but now we take reversal entry into account so these should be too. opw-3890144 Forward-Port-Of: odoo/enterprise#64564 Forward-Port-Of: odoo/enterprise#63821
Issue: It is possible to select the option "hide 0 lines" in the partner ledger. For one, it does not make sense as if a partner appears, it means that there are transactions. Even if the balance is set to 0, we should display the transactions. And then, the option simply does not work in partner ledger. Solution: Put as a default value "never" so it does not show up. opw-3981939 Forward-Port-Of: odoo/enterprise#64602
Original PR description
Issue: It is possible to select the option "hide 0 lines" in the partner ledger. For one, it does not make sense as if a partner appears, it means that there are transactions. Even if the balance is set to 0, we should display the transactions. And then, the option simply does not work in partner ledger. Solution: Put as a default value "never" so it does not show up. opw-3981939 Forward-Port-Of: odoo/enterprise#64602
A bad fw-port caused the xml to be changed wrongly. The test class was deactivated, so it got merged without being seen. runbot-68044 Forward-Port-Of: odoo/enterprise#64660
Original PR description
A bad fw-port caused the xml to be changed wrongly. The test class was deactivated, so it got merged without being seen. runbot-68044 Forward-Port-Of: odoo/enterprise#64660
A string domain is being used without being evaluated, leading to a traceback ### Steps to reproduce * Turn on debug mode * Go to the “Journal Entries” window action via Settings > Technical > Actions > Window Actions * Give any domain to the “Domain Value” field of the window action * Go to Tax Report via Accounting > Reporting > Statement Reports > Tax Report * Click the “Closing Entry” button * Click the “Post” button to post the closing entry you will run into the following tr
Original PR description
A string domain is being used without being evaluated, leading to a traceback ### Steps to reproduce * Turn on debug mode * Go to the “Journal Entries” window action via Settings > Technical > Actions > Window Actions * Give any domain to the “Domain Value” field of the window action * Go to Tax Report via Accounting > Reporting > Statement Reports > Tax Report * Click the “Closing Entry” button * Click the “Post” button to post the closing entry you will run into the following traceback: `IndexError: string index out of range` ### Fix The `account.action_move_journal_line` (Journal Entries window action) record was being reused for consistency. However, domains added to that record should not be propagated in this context. So in this case, the solution is to remove the domain from the returned action. opw-3903500 Forward-Port-Of: odoo/enterprise#64597
Previously, you could only link a vendor bill with a CFDI invoice file by creating the bill directly from it. In a lot of cases, Odoo is unable to match bills created from the CFDI file with the corresponding purchase order for various reasons (eg: different line items, different prices, etc), and it is currently impossible to link them by hand. This commit makes it so that when you attach a CFDI invoice to a vendor bill, if that bill does not already have an associated CFDI invoice, it becom
Original PR description
Previously, you could only link a vendor bill with a CFDI invoice file by creating the bill directly from it. In a lot of cases, Odoo is unable to match bills created from the CFDI file with the corresponding purchase order for various reasons (eg: different line items, different prices, etc), and it is currently impossible to link them by hand. This commit makes it so that when you attach a CFDI invoice to a vendor bill, if that bill does not already have an associated CFDI invoice, it becomes associated with that CFDI invoice, and the fiscal folio is automatically filled in from the document. If there are lines on the vendor bill, lines from the CFDI invoice are ignored, if there are none they are filled in as normal. task-3731034 Forward-Port-Of: odoo/enterprise#62869
If the network is really slow, when you order a drink at the frontdesk. The visitor_id will not be set correctly, and you will have a traceback. Steps to reproduce: ------------------- * Install frontdesk * Enable "host selection" on the frontdesk station * Choose open kiosk * With the developper tool make the network slow, and use a mobile view * Click on check in, then try to order a drink > Observation: You get a traceback Why the fix: ------------ The `createVisitor` functi
Original PR description
If the network is really slow, when you order a drink at the frontdesk. The visitor_id will not be set correctly, and you will have a traceback. Steps to reproduce: ------------------- * Install frontdesk * Enable "host selection" on the frontdesk station * Choose open kiosk * With the developper tool make the network slow, and use a mobile view * Click on check in, then try to order a drink > Observation: You get a traceback Why the fix: ------------ The `createVisitor` function was not awaited during the setup of the page. But it is required to order the drink. opw-3889245 Forward-Port-Of: odoo/enterprise#62899
Before this commit, when recurring plan allow customer to renew or add product then customer can create upsell or renew subscription from portal and they can add or remove product which are added as optional product in subscription and in upsell or renew quotation optional products from parent subscription are copied in new quotation. optional product tab is getting hidden from user when subscription is confirmed so user will not able to edit optional product value anymore. after this commit
Original PR description
Before this commit, when recurring plan allow customer to renew or add product then customer can create upsell or renew subscription from portal and they can add or remove product which are added as optional product in subscription and in upsell or renew quotation optional products from parent subscription are copied in new quotation. optional product tab is getting hidden from user when subscription is confirmed so user will not able to edit optional product value anymore. after this commit, make optional product tab visible to user when subscription is 'in progress', 'paused' or 'churned' state and recurring plan allow customer to renew or add product so user will able to edit optional products for subscription. task-3858850 Forward-Port-Of: odoo/enterprise#61913
Steps to reproduce : --------------------------- - Install pos and product barcodelookup - Go to settings disable variants - Try to scan a product having variants - Click on save button Issue : -------- Can't save and traceback comes. Cause : ---------- It was trying to set the variants but the variant field was not in the form as it's disabled from settings. Fix : ----- Create and set the attributes only if the variant is enabled. Forward-Port-Of: odoo/enterprise#62991
Original PR description
Steps to reproduce : --------------------------- - Install pos and product barcodelookup - Go to settings disable variants - Try to scan a product having variants - Click on save button Issue : -------- Can't save and traceback comes. Cause : ---------- It was trying to set the variants but the variant field was not in the form as it's disabled from settings. Fix : ----- Create and set the attributes only if the variant is enabled. Forward-Port-Of: odoo/enterprise#62991