Thursday, September 5, 2024
62 changes · saas-17.4
Resolved issues and error corrections
This fixes an issue where creating a new contact from a mobile device in Point of Sale could fail because the wrong creation event was triggered. Mobile users can now add customers more reliably during sales, reducing checkout disruption.
Original PR description
Before this commit, attempting to create a new contact on a mobile device would result in an error due to an incorrect partner creation event being triggered. opw-4152438 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The pricelist rule form now gives the fixed price and unit label enough space, preventing them from overlapping in longer languages such as Spanish. This makes pricelist setup clearer and reduces confusion when entering pricing rules.
Original PR description
Problem: The container for the price/unit field was too small, causing the price input and unit label to overlap. Steps to reproduce: - Change the language to Spanish. - Create a pricelist. - Under Rules, click "Add a Line." - The fixed price input should not overlap with the unit label. opw-4142779 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Point of Sale product information screen no longer shows on-hand quantity for items that are not tracked in inventory. This avoids confusing zero-stock displays for products such as prepared food items where stock tracking is not enabled.
Original PR description
Currently, when checking the information page of a product from the shop, the quantity will be shown, even though some products are not tracked in inventory. Steps to reproduce: ------------------- *…
Currently, when checking the information page of a product from the shop, the quantity will be shown, even though some products are not tracked in inventory. Steps to reproduce: ------------------- * Go to the **Point of sale** App * Select a table * We focus on the `Bacon Burger` for example * Click on the information icon of the product > Observation: The quantity on hand is shown with a zero qty Why the fix: ------------ Currently, the on hand quantity is shown for all products except `service` products. https://github.com/odoo/odoo/blob/82ef7426cf977b4d2c16c2f01d378b9beafca697/addons/point_of_sale/static/src/app/components/product_info_banner/product_info_banner.xml#L8 Since the refactoring on the products (https://github.com/odoo/odoo/commit/728d9f83f6d140b57b91000f683298f1f5bd43c9), there exists a checkbox field to say wheter or not we track the stock of product. In the case where the product is of type `service`, `is_storable` is by default false. In the case of the bacon burger, it was previously a 'consumable' product, now they are 'goods' that have `is_storable = False`. opw-4148426
This fix ensures addresses are aligned correctly when printing right-to-left reports, such as invoices for Saudi companies. It improves the readability and professional appearance of printed documents for users working in RTL languages.
Original PR description
Currently, int RTL reports, the address is not correctly aligned. ### Steps to reproduce * install `l10n_sa` module * switch to a Saudi company * print an invoice You will see that the address is not correctly aligned. opw-4156154 opw-4155864 Before:  After: 
Fixed an issue that caused an error when users edited the Invoice Lines list view through Studio. This keeps invoice form customization working reliably without disrupting accounting workflows.
Original PR description
Issue --> Traceback when clicking `Edit List View` under Invoice Lines in the `account.move` form view while using Studio. The cause of the issue is that the props update and lose the data that we expect in the getter `isProductClickable`. Solution --> Use an alternate way to get the parent record (account.move) in the case that the root model is not account.move. opw-4100711
This fix prevents a browser history issue that could cause Odoo to crash after users select “Open in Discuss” and then use the back button. It makes navigation more reliable without changing the visible Discuss workflow.
Original PR description
Before this PR, open in discuss would push an active_id in the browser history before calling doAction. This creates an unnecessary url inside the history that could crash when using the back button. This PR removes the call to setAsDiscussThread and adds the active_id inside the doAction call. Task-4105649
Miscellaneous changes
Changed the note on the attached_on field to properly note that the Inside quote option will include the document on the pdf of the quotation and sale order instead of just the quotation. Previously only said that it would be on the quote and caused confusion for customers when it would also show on the sale order. opw-4106894 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177998 Forward-Port-Of: odoo/odoo#177681
Original PR description
Changed the note on the attached_on field to properly note that the Inside quote option will include the document on the pdf of the quotation and sale order instead of just the quotation. Previously only said that it would be on the quote and caused confusion for customers when it would also show on the sale order. opw-4106894 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177998 Forward-Port-Of: odoo/odoo#177681
Versions -------- - 17.0+ Steps ----- 1. Create a loyalty program that applies on future orders; 2. disable it for eCommerce; 3. create a card for you with adequate points for a reward; 4. go to website shop; 5. add product to cart; 6. go to shopping cart view. Issue ----- Claimable reward is display despite being disabled for eCommerce. Cause ----- The `_get_claimable_and_showable_rewards` method doesn't take a program's `ecommerce_ok` field into account when searching for
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create a loyalty program that applies on future orders; 2. disable it for eCommerce; 3. create a card for you with adequate points for a reward; 4. go to website shop; 5. add product to cart; 6. go to shopping cart view. Issue ----- Claimable reward is display despite being disabled for eCommerce. Cause ----- The `_get_claimable_and_showable_rewards` method doesn't take a program's `ecommerce_ok` field into account when searching for cards. Solution -------- In the domain used, use the result of `_get_program_domain` to ensure only applicable cards from applicable program's are retrieved. opw-3997371 Forward-Port-Of: odoo/odoo#178893 Forward-Port-Of: odoo/odoo#178243
[FIX] website_sale: Avoid collect sale orders confirmed in backend This happens when, during a payment process, when the order is confirmed from the backend and in Website the cart icon is clicked. What causes the error is that the request is still pinned in the session, so it identifies that certain values should not be loaded and deletes them. The cart() method identifies if it's not a draft order, and in that case it clears the session order to continue with a new one. That causes u
Original PR description
[FIX] website_sale: Avoid collect sale orders confirmed in backend This happens when, during a payment process, when the order is confirmed from the backend and in Website the cart icon is clicked.…
[FIX] website_sale: Avoid collect sale orders confirmed in backend This happens when, during a payment process, when the order is confirmed from the backend and in Website the cart icon is clicked. What causes the error is that the request is still pinned in the session, so it identifies that certain values should not be loaded and deletes them. The cart() method identifies if it's not a draft order, and in that case it clears the session order to continue with a new one. That causes undesired modifications in modules that inherit cart() and execute before calling super(), such as website_sale_delivery, that removes carrier from order. With this motification the method sale_get_order() will now discriminate the orders that are completed and clear ir from the session, avoiding losses of information. Description of the issue/feature this PR addresses: This error was detected because the carrier_id was eliminated when following the aforementioned flow. The problem is that clicking on the cart retrieves the order that is in the session, but if it has been confirmed from the backend it should not collect it since at that moment it is not a "cart". A way to see this clearly is with the 'delivery_auto_refresh' module. This module shows the carrier_id field in sale order view (that exists but is not visible), which is collected at website. The flow that exists nowadays remove this value when we follow this steps: [Grabación de pantalla desde 16-08-24 10:41:50.webm](https://github.com/user-attachments/assets/9ec82b67-3e73-4083-b65b-be8d59db6a5a) In this video: 1. Customer starts an order 2. An user confirms the order at backend 3. Customer acceses to /shop/cart 4. Some fields of the sale order can be deleted, such as the delivery carrier If we confirm the order at backend and then follow the flow shown, the value of this field will dissapear. This happens because, as I said before, clicking the cart icon recovers the confirmed sale order (which is no longer a 'cart') and deletes many values of it. Current behavior before PR: If you confirm an order in process from website at backend and then click on the cart icon, certain fields are eliminated. Desired behavior after PR is merged: The cart button identifies whether the order is in confirmed status (or quote sent), and if so removes it from the session before the fields are cleared, thus starting a new order. FL-650-982 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179049 Forward-Port-Of: odoo/odoo#176718
Currently, an error occurs when creating foreign taxes for 'Austria'. Steps to produce: - Installing the 'account' module. - Go to Invoicing / Configuration / Accounting / Fiscal Positions. - Create a Fiscal Position, Set the Country as 'Austria', and enter an 'FR23334175221'(For example) as 'Foreign Tax ID'. - And Create the taxes for this country. Stack Trace: ``` KeyError: 'children_tax_ids' File "odoo/http.py", line 2374, in __call__ response = request._serve_db()
Original PR description
Currently, an error occurs when creating foreign taxes for 'Austria'. Steps to produce: - Installing the 'account' module. - Go to Invoicing / Configuration / Accounting / Fiscal Positions. - Create…
Currently, an error occurs when creating foreign taxes for 'Austria'.
Steps to produce:
- Installing the 'account' module.
- Go to Invoicing / Configuration / Accounting / Fiscal Positions.
- Create a Fiscal Position, Set the Country as 'Austria', and enter an 'FR23334175221'(For example) as 'Foreign Tax ID'.
- And Create the taxes for this country.
Stack Trace:
```
KeyError: 'children_tax_ids'
File "odoo/http.py", line 2374, in __call__
response = request._serve_db()
File "odoo/http.py", line 1904, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1967, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1934, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2178, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 223, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 755, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 40, in call_button
action = call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 459, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/account/models/partner.py", line 289, in action_create_foreign_taxes
self.env["account.chart.template"]._instantiate_foreign_taxes(self.country_id, self.company_id)
File "addons/account/models/chart_template.py", line 929, in _instantiate_foreign_taxes
children_taxes = tax_data['children_tax_ids'].split(',')
```
An error occurs when the system tries to get a 'children_tax_ids' key from tax data at [1] while foreign tax creation, But it is not available.
link [1]: https://github.com/odoo/odoo/blob/4c79aceb3a6c08453f9ec66131e1bc525eae140c/addons/account/models/chart_template.py#L936
To resolve the issue, make small changes into tax data where 'amount_type' = 'percent' instead of 'amount_type' ='group'.
Sentry-5730875398
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#178939
Forward-Port-Of: odoo/odoo#178058Before: In chrome, you can see the message "[DOM] Input elements should have autocomplete attributes (suggested: "username"): (More info: https://goo.gl/9p2vKq)". After: The message does not appear. Also, This maintains consistency with the password input which has the attribute autocomplete.  --- I confirm I have signed the CLA and read the PR guid
Original PR description
Before: In chrome, you can see the message "[DOM] Input elements should have autocomplete attributes (suggested: "username"): (More info: https://goo.gl/9p2vKq)". After: The message does not appear. Also, This maintains consistency with the password input which has the attribute autocomplete.  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#146934 Forward-Port-Of: odoo/odoo#146037
When settling a sale order in the PoS the shiplater option was always turned on. Steps to reproduce: ------------------- * Activate ship later option in PoS config * Create a sale order and confirm it * Open the PoS * Settle the order * Click on pay > Observation: The ship later button is already activated Why the fix: ------------ The button activation is based on the presence or not of a delivery date to fix it we just make sure not to import the delivery date from the original
Original PR description
When settling a sale order in the PoS the shiplater option was always turned on. Steps to reproduce: ------------------- * Activate ship later option in PoS config * Create a sale order and confirm it * Open the PoS * Settle the order * Click on pay > Observation: The ship later button is already activated Why the fix: ------------ The button activation is based on the presence or not of a delivery date to fix it we just make sure not to import the delivery date from the original sale order. opw-3987515 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179014 Forward-Port-Of: odoo/odoo#176308
backport of https://github.com/odoo/odoo/pull/176340 enterprise: https://github.com/odoo/enterprise/pull/69045 Forward-Port-Of: odoo/odoo#178878 Forward-Port-Of: odoo/odoo#177705
Original PR description
backport of https://github.com/odoo/odoo/pull/176340 enterprise: https://github.com/odoo/enterprise/pull/69045 Forward-Port-Of: odoo/odoo#178878 Forward-Port-Of: odoo/odoo#177705
**Steps to reproduce:** - Install Accounting and l10n_it_edi - Switch to an Italian company (e.g. IT Company) - Create an invoice for an Italian customer with: * 1 positive line having a tax * 1 negative line having another tax - Confirm the invoice - Generate E-invoice XML via "Send & Print" button **Issue:** A UserError is raised because orphan negative lines are not allowed after dispatching the negative lines. **Solution:** Remove the UserError as SDI accepts negative line
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_it_edi - Switch to an Italian company (e.g. IT Company) - Create an invoice for an Italian customer with: * 1 positive line having a tax * 1 negative line having another tax - Confirm the invoice - Generate E-invoice XML via "Send & Print" button **Issue:** A UserError is raised because orphan negative lines are not allowed after dispatching the negative lines. **Solution:** Remove the UserError as SDI accepts negative lines. opw-4132287 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178952
When using a loyalty program that apply a discount on the cheapest line the combo "title" would always be selected as it's price is 0. And the reward would then not be applied. Steps to reproduce: ------------------- * Create a combo product with atleast 2 combo choices * Create a loyalty program that gives a discount on the cheapest line * Open a PoS and add the combo product > Observation: The reward cannot be applied Why the fix: ------------ When tryin to apply the discount, in
Original PR description
When using a loyalty program that apply a discount on the cheapest line the combo "title" would always be selected as it's price is 0. And the reward would then not be applied. Steps to reproduce: ------------------- * Create a combo product with atleast 2 combo choices * Create a loyalty program that gives a discount on the cheapest line * Open a PoS and add the combo product > Observation: The reward cannot be applied Why the fix: ------------ When tryin to apply the discount, in the `_getCheapestLine` function we make sure to filter lines that are combo "title" opw-4033960 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178879 Forward-Port-Of: odoo/odoo#177062
This commit's purpose is to prevent the creation of a task with quick create with the 'withTaskHour' widget if the project is an fsm one. This is done to prevent the creation of fsm task without a partner set (the field is required). Forward-Port-Of: odoo/odoo#178667 Forward-Port-Of: odoo/odoo#178342
Original PR description
This commit's purpose is to prevent the creation of a task with quick create with the 'withTaskHour' widget if the project is an fsm one. This is done to prevent the creation of fsm task without a partner set (the field is required). Forward-Port-Of: odoo/odoo#178667 Forward-Port-Of: odoo/odoo#178342
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: In Indian government for example, requires audit trail report for private limited companies, so user can't delete journal entries after posting once. Backporting method `_unlink_or_reverse` from 17.0 [1] to be used in the related PR https://github.com/odoo
Original PR description
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: In Indian government for example, requires audit trail report for private limited companies, so user can't delete journal entries after posting once. Backporting method `_unlink_or_reverse` from 17.0 [1] to be used in the related PR https://github.com/odoo/enterprise/pull/68044 [1] https://github.com/odoo/odoo/blob/66bfab54748a56072ed9ff144f4a39366b606a06/addons/account/models/account_move.py#L3772-L3785 opw-4075244 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#178130 Forward-Port-Of: odoo/odoo#176792
This commit improves test coverage for the `website_payment` module by addressing recent updates and scenarios: - **Minimum Amount**: Verifies that donations below the minimum amount are properly handled (PR: [177766](https://github.com/odoo/odoo/pull/177766)). - **Multiple Amounts**: Ensures that multiple donation amounts cannot be selected at once (PR: [176722](https://github.com/odoo/odoo/pull/176722)). - **Last Amount Selection**: Checks that the last selected amount is correct
Original PR description
This commit improves test coverage for the `website_payment` module by addressing recent updates and scenarios: - **Minimum Amount**: Verifies that donations below the minimum amount are properly handled (PR: [177766](https://github.com/odoo/odoo/pull/177766)). - **Multiple Amounts**: Ensures that multiple donation amounts cannot be selected at once (PR: [176722](https://github.com/odoo/odoo/pull/176722)). - **Last Amount Selection**: Checks that the last selected amount is correctly applied (PR: [176722](https://github.com/odoo/odoo/pull/176722)). These enhancements ensure that the module's behavior is thoroughly tested and functioning as expected. During FW to 16.0 we will take in consideration the iframe task-4138385 Forward-Port-Of: odoo/odoo#179043 Forward-Port-Of: odoo/odoo#177908
In this commit, we fix undeterministic test_html_editor_scss tour. To fix this behavior, we add few additionnal steps to check the state of DOM before continuing the tour. Forward-Port-Of: odoo/odoo#178967
Original PR description
In this commit, we fix undeterministic test_html_editor_scss tour. To fix this behavior, we add few additionnal steps to check the state of DOM before continuing the tour. Forward-Port-Of: odoo/odoo#178967
Make _onChangeState to be inheritable by adding it to website_sale.js and returning a promise. Adapt the _onChangeState in PE localization for the inheritance by calling _super method and returning a promise. related: https://github.com/odoo/enterprise/pull/64786 task-2856566 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177624 Forward-Port-Of: odoo/odoo#169205
Original PR description
Make _onChangeState to be inheritable by adding it to website_sale.js and returning a promise. Adapt the _onChangeState in PE localization for the inheritance by calling _super method and returning a promise. related: https://github.com/odoo/enterprise/pull/64786 task-2856566 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177624 Forward-Port-Of: odoo/odoo#169205
Steps to reproduce: 1. Login with a user with invoicing manager permission, but not settings one. 2. Go to Settings > Add a Bank account. 3. Fill the data, and click on "Create". Current behavior: Access Error, due to the lack of the Administration/Settings permission Expected behavior: No error The solution is to put sudo on the operation. @Tecnativa TT50693 Forward-Port-Of: odoo/odoo#179292 Forward-Port-Of: odoo/odoo#178997
Original PR description
Steps to reproduce: 1. Login with a user with invoicing manager permission, but not settings one. 2. Go to Settings > Add a Bank account. 3. Fill the data, and click on "Create". Current behavior: Access Error, due to the lack of the Administration/Settings permission Expected behavior: No error The solution is to put sudo on the operation. @Tecnativa TT50693 Forward-Port-Of: odoo/odoo#179292 Forward-Port-Of: odoo/odoo#178997
**Current behavior before PR:** When an email template is posted inside the chatter, the content overflows in the x-direction, causing a UI issue where the message bubble does not handle the overflow properly.  **Desired behavior after PR is merged:** The issue has been fixed, making the message content scrollable inside the message bubble, preventing overflow and maintaining proper UI appeara
Original PR description
**Current behavior before PR:** When an email template is posted inside the chatter, the content overflows in the x-direction, causing a UI issue where the message bubble does not handle the overflow properly.  **Desired behavior after PR is merged:** The issue has been fixed, making the message content scrollable inside the message bubble, preventing overflow and maintaining proper UI appearance. **Task**-4083373 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178964 Forward-Port-Of: odoo/odoo#175472
### Steps to reproduce: - Install Time-off module - Create new allocation for an employee for 1 day - Create a leave for this employee with more than 1 day -error will be raised- - Edit the leave to be for just one day and validate it - Refuse this leave and mark it as draft - Change the dates to be more than 1 day ### Current behavior before PR: It is expected to raise an Error each time an employee tries to have a leave which has more days than the allocation he has but this is
Original PR description
### Steps to reproduce: - Install Time-off module - Create new allocation for an employee for 1 day - Create a leave for this employee with more than 1 day -error will be raised- - Edit the leave to…
### Steps to reproduce: - Install Time-off module - Create new allocation for an employee for 1 day - Create a leave for this employee with more than 1 day -error will be raised- - Edit the leave to be for just one day and validate it - Refuse this leave and mark it as draft - Change the dates to be more than 1 day ### Current behavior before PR: It is expected to raise an Error each time an employee tries to have a leave which has more days than the allocation he has but this is not happening when the leave is in draft state. So the employee can submit a leave with days more than the allocation. This issue is happening because when checking if there is excess days in the leave we don't take leaves in draft state into considertion. https://github.com/odoo/odoo/blob/17.0/addons/hr_holidays/models/hr_employee.py#L387:L391 ### Desired behavior after PR is merged: After editing the leaves_domain we are now taking draft leaves into cosideration when we are checking the leave validity. opw-4090572 Forward-Port-Of: odoo/odoo#178606 Forward-Port-Of: odoo/odoo#176936
We currently save all configurations (db url, enterprise code, token, ...) in different text files. Now we store them all in the already existing file (`odoo.conf`), easy to write and load from python and bash. We also moved the `odoo.conf` file to `/home/pi` on the physical IoT Box, to avoid overwriting it while checking out a new branch. Based on PR from Olivier Monnom (mool): [https://github.com/odoo/odoo/pull/145365](https://github.com/odoo/odoo/pull/145365) Task: 2093535 Forward-
Original PR description
We currently save all configurations (db url, enterprise code, token, ...) in different text files. Now we store them all in the already existing file (`odoo.conf`), easy to write and load from python and bash. We also moved the `odoo.conf` file to `/home/pi` on the physical IoT Box, to avoid overwriting it while checking out a new branch. Based on PR from Olivier Monnom (mool): [https://github.com/odoo/odoo/pull/145365](https://github.com/odoo/odoo/pull/145365) Task: 2093535 Forward-Port-Of: odoo/odoo#173866
A mail activity template in the hr modules has the summary "Compute out Delais" which doesn't mean anything in english. This commit replaces that with something more meaningful. task-4088643 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178867 Forward-Port-Of: odoo/odoo#176011
Original PR description
A mail activity template in the hr modules has the summary "Compute out Delais" which doesn't mean anything in english. This commit replaces that with something more meaningful. task-4088643 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178867 Forward-Port-Of: odoo/odoo#176011
### Steps to reproduce: - Create and confirm a delivery for 10 units of a product P - Change the quantity of the move to 5 and mark it as picked - Click on the "detailed operations" button of the picking - Change the quantity of the move line to 3 - Create a new line for 2 units (this would make sense if you want to register 2 lots for instance the flow is kepts as simple possible) - Go back to the delivery, validate and create a back order #### > A back order is created for 7 units r
Original PR description
### Steps to reproduce: - Create and confirm a delivery for 10 units of a product P - Change the quantity of the move to 5 and mark it as picked - Click on the "detailed operations" button of the…
### Steps to reproduce: - Create and confirm a delivery for 10 units of a product P - Change the quantity of the move to 5 and mark it as picked - Click on the "detailed operations" button of the picking - Change the quantity of the move line to 3 - Create a new line for 2 units (this would make sense if you want to register 2 lots for instance the flow is kepts as simple possible) - Go back to the delivery, validate and create a back order #### > A back order is created for 7 units rather than 5 and the original delivery was validated for only 3 units. ### Cause of the issue: When you create a new move line on the picking from the detailed operation it is linked to the move of the picking via these lines: https://github.com/odoo/odoo/blob/4c79aceb3a6c08453f9ec66131e1bc525eae140c/addons/stock/models/stock_move_line.py#L325-L331 However, while the move is marked as picked, the newly created move line is not. As such during the `_action_done` of the stock move, the new sml will be unlinked from the move: https://github.com/odoo/odoo/blob/4c79aceb3a6c08453f9ec66131e1bc525eae140c/addons/stock/models/stock_move.py#L1865-L1872 opw-4100293 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178468 Forward-Port-Of: odoo/odoo#178017
The pricelist discount policy is always visibile in 17+, and some users may change it to display discounts in the PoS. Nevertheless, if the sale discounts are not enabled, saving the settings will reset the value to 'hide discounts'. Since the group is ambiguous, has been moved to sale in 17.2, and the discount policy feature is removed in 18, we'll restrict the reset of the discount policies only when the discount group is effectively disabled manually, not any time the settings are saved
Original PR description
The pricelist discount policy is always visibile in 17+, and some users may change it to display discounts in the PoS. Nevertheless, if the sale discounts are not enabled, saving the settings will reset the value to 'hide discounts'. Since the group is ambiguous, has been moved to sale in 17.2, and the discount policy feature is removed in 18, we'll restrict the reset of the discount policies only when the discount group is effectively disabled manually, not any time the settings are saved. opw-4019168 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178906 Forward-Port-Of: odoo/odoo#178347
The base two variants of the generic_tax_report : (generic_tax_report_tax_account, generic_tax_report_account_tax) had the availability_condition set to country with no country_id. The expected result was to have the availability_condition set to always as no country_id is set. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178950
Original PR description
The base two variants of the generic_tax_report : (generic_tax_report_tax_account, generic_tax_report_account_tax) had the availability_condition set to country with no country_id. The expected result was to have the availability_condition set to always as no country_id is set. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178950
### Steps to reproduce: - Create a MO for a product without BOM (no need of components) - Go to the "Work Orders" tab and create 2 operations: op1 and op2 - Confirm the MO - Start the operation waiting for an other WO (op2) - Create a third operation: op3 - Save #### > Validation Error: You cannot create a cyclic dependency. ### Cause of the Issue: During the creation of op3, all the workorders of our MO will be confirmed to ensures that the links of the 3 operations are correctly
Original PR description
### Steps to reproduce: - Create a MO for a product without BOM (no need of components) - Go to the "Work Orders" tab and create 2 operations: op1 and op2 - Confirm the MO - Start the operation…
### Steps to reproduce: - Create a MO for a product without BOM (no need of components) - Go to the "Work Orders" tab and create 2 operations: op1 and op2 - Confirm the MO - Start the operation waiting for an other WO (op2) - Create a third operation: op3 - Save #### > Validation Error: You cannot create a cyclic dependency. ### Cause of the Issue: During the creation of op3, all the workorders of our MO will be confirmed to ensures that the links of the 3 operations are correctly made: https://github.com/odoo/odoo/blob/d2ce6622f2d6f1917dc319112a688e35a73c2088/addons/mrp/models/mrp_workorder.py#L469-L474 This will trigger a call of the `_link_workorders_and_moves` to re-link them all. However, during this call since op2 has been started the order of the workorders will be op2 > op1 rather than op1 > op2 and since the MO has no bom nor `operation_id` the records will not be reordered correctly before being linked: https://github.com/odoo/odoo/blob/d2ce6622f2d6f1917dc319112a688e35a73c2088/addons/mrp/models/mrp_production.py#L1472-L1473 https://github.com/odoo/odoo/blob/d2ce6622f2d6f1917dc319112a688e35a73c2088/addons/mrp/models/mrp_production.py#L1485-L1487 This will create a loop on the m2m dependency since op1 will be blocked by op2 and op2 is already blocked by op1. This is detected by the framework which raises the error. opw-4105603 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178431 Forward-Port-Of: odoo/odoo#177402
__Current behavior before commit:__ On Firefox `iframeEl.contentDocument` might be `null` inside the `readystatechange` event handler. This makes the page crash with the error `TypeError: iframeEl.contentDocument is null`. __Description of the fix:__ Utilizing `event.target` instead of `iframeEl.contentDocument` to make sure the document is not `null`. Since nothing is done in the event handler unless `document.readyState === "complete"` we can just use the `load` event instead. __Step
Original PR description
__Current behavior before commit:__ On Firefox `iframeEl.contentDocument` might be `null` inside the `readystatechange` event handler. This makes the page crash with the error `TypeError: iframeEl.contentDocument is null`. __Description of the fix:__ Utilizing `event.target` instead of `iframeEl.contentDocument` to make sure the document is not `null`. Since nothing is done in the event handler unless `document.readyState === "complete"` we can just use the `load` event instead. __Steps to reproduce the issue on runbot:__ On Firefox (127): 1. Install `mass_mailing` 2. Open the debug menu > Start Tour 3. Start the `mass_mailing_tour` 4. Go to Email Marketing > open a mailing with the `Sent` state 5. Click on any link/tab (e.g. a/B Tests) -> Crash opw-4005833 Forward-Port-Of: odoo/odoo#171762
Before this commit: ------------------- If you want to group by records that inherit from mail.activity.mixin like crm.lead for example, only records with an activity will show up in the result, record without activity won't show up. After this commit: ------------------ Read group is not expected to filter record. Record without activity shows up under the group None since the value for activity state is None --- I confirm I have signed the CLA and read the PR guidelines at w
Original PR description
Before this commit: ------------------- If you want to group by records that inherit from mail.activity.mixin like crm.lead for example, only records with an activity will show up in the result, record without activity won't show up. After this commit: ------------------ Read group is not expected to filter record. Record without activity shows up under the group None since the value for activity state is None --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178845
Adding back the activity text highlight in the systray to make sure users understand the text is actually clickable and they can filter their activities on a specific time frame. Related commit: odoo/odoo@6b72bde3a7d3d3d9a12490431b5192ddb5230d9c Task-4141680 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178322
Original PR description
Adding back the activity text highlight in the systray to make sure users understand the text is actually clickable and they can filter their activities on a specific time frame. Related commit: odoo/odoo@6b72bde3a7d3d3d9a12490431b5192ddb5230d9c Task-4141680 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178322
This Fix addresses an issue where a traceback error occurs if the invoice date is not set when creating a landed cost. To reproduce the issue: 1. Create a service product and set it as a landed cost product. 2. Create and validate a customer invoice for this product. 3. Reset the invoice to draft status. 4. Clear the date on the invoice. 5. Click on the "Create Landed Cost" button. Error: A traceback occurs due to a failed assertion statement: "convert amount from unknown date". Th
Original PR description
This Fix addresses an issue where a traceback error occurs if the invoice date is not set when creating a landed cost. To reproduce the issue: 1. Create a service product and set it as a landed cost product. 2. Create and validate a customer invoice for this product. 3. Reset the invoice to draft status. 4. Clear the date on the invoice. 5. Click on the "Create Landed Cost" button. Error: A traceback occurs due to a failed assertion statement: "convert amount from unknown date". This fix ensures that the date is always populated when creating a new landed cost record. If the invoice date is not set, the current date will be used. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175788
[ADD] l10n_kw: Add localization package for kuwit Add CoA and account groups with all the default account mappings for kuwait Improve user experience in kuwait task-3927920 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178355
Original PR description
[ADD] l10n_kw: Add localization package for kuwit Add CoA and account groups with all the default account mappings for kuwait Improve user experience in kuwait task-3927920 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178355
This commit introduces a global mock for the document `elementFromPoint` and `elementsFromPoint` methods, so that it ignores both Hoot's fixture and UI container. This has been done since when not debugging a test, the fixture is z-indexed behind the body and both of these methods would consider them accordingly, meaning that production code relying on these methods would consistently get the Hoot UI or the body instead of the desired element. --- I confirm I have signed the CLA and read
Original PR description
This commit introduces a global mock for the document `elementFromPoint` and `elementsFromPoint` methods, so that it ignores both Hoot's fixture and UI container. This has been done since when not debugging a test, the fixture is z-indexed behind the body and both of these methods would consider them accordingly, meaning that production code relying on these methods would consistently get the Hoot UI or the body instead of the desired element. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178912
Before this commit, event listeners set on inputs by the datetime picker service would be removed in the callback of the `useEffect` hook, meaning that these listeners could be unregistered before the actual elements would be removed. This is an issue in the specific case where the deletion of the element occurs before the "change" event has been dispatched and after the removal of the listeners. The thing is: the removal of the element also triggers the "change" event (if it hasn't bee
Original PR description
Before this commit, event listeners set on inputs by the datetime picker service would be removed in the callback of the `useEffect` hook, meaning that these listeners could be unregistered before…
Before this commit, event listeners set on inputs by the datetime picker service would be removed in the callback of the `useEffect` hook, meaning that these listeners could be unregistered before the actual elements would be removed. This is an issue in the specific case where the deletion of the element occurs before the "change" event has been dispatched and after the removal of the listeners. The thing is: the removal of the element also triggers the "change" event (if it hasn't been triggered before), and with the listener gone this means that the value is lost. This commit deletes the removal of event listeners attached on inputs by the hook. This has been done since using the datetime picker service implies that the inputs affected by the feature will never be in an interactive state without the datetime picker actively listening on them. Although a test case setup is easy to reproduce, this behavior is unfortunately impossible to reproduce programmatically as the "change" event dispatched by removing an element only works when a trusted "input" event was triggered to change its value (setting the internal browser "changed" value of the input). Task [4104407](https://www.odoo.com/odoo/all-tasks/4104407) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178533
When the user tries to unarchive the multiple views, a traceback will appear. Steps to reproduce the error: - Install 'website' - Go to Settings > Technical > Views - Open archived views > unarchive multiple views Traceback: ``` ValueError: Expected singleton: ir.ui.view(534, 535, 537) File "odoo/http.py", line 2248, in __call__ response = request._serve_db() File "odoo/http.py", line 1823, in _serve_db return self._transactioning(_serve_ir_http, readonly=ro) File
Original PR description
When the user tries to unarchive the multiple views, a traceback will appear. Steps to reproduce the error: - Install 'website' - Go to Settings > Technical > Views - Open archived views > unarchive…
When the user tries to unarchive the multiple views,
a traceback will appear.
Steps to reproduce the error:
- Install 'website'
- Go to Settings > Technical > Views
- Open archived views > unarchive multiple views
Traceback:
```
ValueError: Expected singleton: ir.ui.view(534, 535, 537)
File "odoo/http.py", line 2248, in __call__
response = request._serve_db()
File "odoo/http.py", line 1823, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1843, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1821, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1828, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2053, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "odoo/models.py", line 5771, in action_unarchive
return self.filtered(lambda record: not record[self._active_name]).toggle_active()
File "odoo/models.py", line 5759, in toggle_active
(self - active_recs)[self._active_name] = True
File "odoo/models.py", line 6619, in __setitem__
return self._fields[key].__set__(self, value)
File "odoo/fields.py", line 1376, in __set__
records.write({self.name: write_value})
File "addons/website/models/theme_models.py", line 366, in write
return super().write(vals)
File "addons/website/models/ir_ui_view.py", line 95, in write
return super(View, self).write(vals)
File "odoo/addons/base/models/ir_ui_view.py", line 529, in write
self._validate_fields(['arch_db'])
File "odoo/models.py", line 1484, in _validate_fields
check(self)
File "odoo/addons/base/models/ir_ui_view.py", line 371, in _check_xml
view=self.key or self.id,
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5856, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
https://github.com/odoo/odoo/blob/9be0c5348bfeb338bcba95b2a9c01e0d7dd14306/odoo/addons/base/models/ir_ui_view.py#L379 Here, self is used in place of view.
So it will lead to the above traceback.
sentry-5604174783
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#173117*: web_editor, mass_mailing This purely reverts [1] which, while implementing a minor feature for the mass_mailing editor, broke a major feature of the website builder. This went unnoticed because the test tours were also adapted to account for the change. Once the time is right, the minor feature will be re-implemented although it probably will be done another way. Also, the functional need should be rediscussed as I don't see the point in showing the "solid" tab at all if it is to show i
Original PR description
*: web_editor, mass_mailing This purely reverts [1] which, while implementing a minor feature for the mass_mailing editor, broke a major feature of the website builder. This went unnoticed because the test tours were also adapted to account for the change. Once the time is right, the minor feature will be re-implemented although it probably will be done another way. Also, the functional need should be rediscussed as I don't see the point in showing the "solid" tab at all if it is to show it only when such a color was previously selected. Just removing that tab seems to improve the UI and would be a one-line-code feature instead of this. To re-discuss. [1]: https://github.com/odoo/odoo/commit/8594fa708c06232cde5743be2b66f551ff5a4589 Forward-Port-Of: odoo/odoo#178858
Version: 17.0+ Issue: When the Customer Address column is included in the report pdf, the table format breaks. This column is added when the `partner_id.commercial_partner_id` is different than the `partner_id` of the invoice or invoice refund. Purpose of this PR: To restore the format of the information table when the Customer Address column is included. Similar to #176209 Steps to Reproduce on Runbot: 1) Install l10n_fr and switch to FR Company 2) Configure contacts a French com
Original PR description
Version: 17.0+ Issue: When the Customer Address column is included in the report pdf, the table format breaks. This column is added when the `partner_id.commercial_partner_id` is different than the `partner_id` of the invoice or invoice refund. Purpose of this PR: To restore the format of the information table when the Customer Address column is included. Similar to #176209 Steps to Reproduce on Runbot: 1) Install l10n_fr and switch to FR Company 2) Configure contacts a French company to have a child contact with a different address. 3) Create invoice with the child contact as the customer. 4) Print invoice and the informations table will be formatted incorrectly. opw-4122930 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178258
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69320 Forward-Port-Of: odoo/enterprise#69278
Original PR description
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69320 Forward-Port-Of: odoo/enterprise#69278
* With an IN company setup * Open the bank Reconciliation widget * Make a manual reconciliation with tax 18% IGST RC * Go to tax report GSTR-3B * Issue: there is no impact on the report (3.1 d) This occurs because in the report we take into account move of type `out_invoice` while move registered in the bank journal are of type `entry` Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4058256) opw-4058256 Forward-Port-Of: odoo/enterprise#67520
Original PR description
* With an IN company setup * Open the bank Reconciliation widget * Make a manual reconciliation with tax 18% IGST RC * Go to tax report GSTR-3B * Issue: there is no impact on the report (3.1 d) This occurs because in the report we take into account move of type `out_invoice` while move registered in the bank journal are of type `entry` Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4058256) opw-4058256 Forward-Port-Of: odoo/enterprise#67520
Issue: An issue can arises when attempting to drop the constraint "account_move_line_check_amount_currency_balance_sign" if it does not exist. This problem was triggered since the following fix: https://github.com/odoo/enterprise/pull/67953. Fix: Ensure that the constraint exists before attempting to drop it. opw-4107760 opw-4133787 opw-4122219 Forward-Port-Of: odoo/enterprise#69191
Original PR description
Issue: An issue can arises when attempting to drop the constraint "account_move_line_check_amount_currency_balance_sign" if it does not exist. This problem was triggered since the following fix: https://github.com/odoo/enterprise/pull/67953. Fix: Ensure that the constraint exists before attempting to drop it. opw-4107760 opw-4133787 opw-4122219 Forward-Port-Of: odoo/enterprise#69191
Current behaviour: --- When you open a document, and you want to add a tag, the preview closes. Steps to reproduce: --- 1. Go to Documents 2. Open a document 3. Add a tag 4. The preview closes Cause of the issue: --- In updateRecordTagId from documents_search_model.js Update trigger > load > documents-close-preview trigger opw-3879288 Forward-Port-Of: odoo/enterprise#66684
Original PR description
Current behaviour: --- When you open a document, and you want to add a tag, the preview closes. Steps to reproduce: --- 1. Go to Documents 2. Open a document 3. Add a tag 4. The preview closes Cause of the issue: --- In updateRecordTagId from documents_search_model.js Update trigger > load > documents-close-preview trigger opw-3879288 Forward-Port-Of: odoo/enterprise#66684
Steps to reproduce: - Settings > Enable 'Consolidate subscriptions billing' - Contact > Create a company - Contacts & Addresses tab > Add - Add an invoice address on the company - Add an individual then duplicate it - Create a subscription with the indiviual as customer - Duplicate the subscription then set the duplicate contact as customer - Debug mode > Scheduled actions - Sale subscription: Generate recurring invoices and payments > Run manually The subsciptions are invoiced separ
Original PR description
Steps to reproduce: - Settings > Enable 'Consolidate subscriptions billing' - Contact > Create a company - Contacts & Addresses tab > Add - Add an invoice address on the company - Add an individual…
Steps to reproduce: - Settings > Enable 'Consolidate subscriptions billing' - Contact > Create a company - Contacts & Addresses tab > Add - Add an invoice address on the company - Add an individual then duplicate it - Create a subscription with the indiviual as customer - Duplicate the subscription then set the duplicate contact as customer - Debug mode > Scheduled actions - Sale subscription: Generate recurring invoices and payments > Run manually The subsciptions are invoiced separately instead of having one invoice for both. The consolidated billing should produce only one invoice since the invoicing address is the same. This behavior works as intended if using the create invoices action on both subscriptions at once. Here, the recurring invoice creation for subscriptions uses its own grouping function using partner_id as a key instead of partner_invoice_id which is 'parent invoice address id if any, else partner_id'. Because this grouping is performed before creating the invoices, we end up processing sale orders that should have belonged to the same group separarately and thus create the invoices one by one. This means we don't let _create_invoices do the grouping since we only pass it one SO at a time, this fix will make it so _create_invoices is called on the grouped SOs instead. opw-4114035 Forward-Port-Of: odoo/enterprise#69277
We removed the `reload_page` method [here](https://github.com/odoo/enterprise/pull/68394/files#diff-ccc5eed84ca6b725960d95f2ab8b48188d5a078ab60a0a7c6c8ff7aeb29eddd9). Since, clients non-updated views still call it, but get a traceback as it doesn't exist anymore. We then add it again to fix the issue. Support task: 4152608 Forward-Port-Of: odoo/enterprise#69429
Original PR description
We removed the `reload_page` method [here](https://github.com/odoo/enterprise/pull/68394/files#diff-ccc5eed84ca6b725960d95f2ab8b48188d5a078ab60a0a7c6c8ff7aeb29eddd9). Since, clients non-updated views still call it, but get a traceback as it doesn't exist anymore. We then add it again to fix the issue. Support task: 4152608 Forward-Port-Of: odoo/enterprise#69429
When a user with 'user' access rigths on the project module that is also assigned to a task of an internal project, it will prevent the user from creating a new timesheet from the timesheet grid. This bug is due to the fact that when a user clicks on the line of the task, some rpc's call are made on the 'project' model. Since the user does not have access rigth to the internal project on which the call are made, an access rigth error is raised. Step to reproduce: - create a db with hr_tim
Original PR description
When a user with 'user' access rigths on the project module that is also assigned to a task of an internal project, it will prevent the user from creating a new timesheet from the timesheet grid.…
When a user with 'user' access rigths on the project module that is also assigned to a task of an internal project, it will prevent the user from creating a new timesheet from the timesheet grid. This bug is due to the fact that when a user clicks on the line of the task, some rpc's call are made on the 'project' model. Since the user does not have access rigth to the internal project on which the call are made, an access rigth error is raised. Step to reproduce: - create a db with hr_timesheet installed - have a user with 'user' access rights on project and 'own timesheet' on timesheet - create an internal project - create a task inside that internal project and assigned the user on it - connect with the other user - open timesheet app - select the task from the internal project to start a new timesheet timer - an error access right on 'project' is triggered Solution: Add a sudo inside the python method 'check can start timer'. Give the project name to the timerHeaderM2O, to prevent the call to the name_get on the project. task - 3922511 affected version 16.0 - master Forward-Port-Of: odoo/enterprise#69226 Forward-Port-Of: odoo/enterprise#63159
With this commit, some rules category are fixed : deduction, allowance are set only on employee rule. One file's name changed to be coherent with others payrolls. task-4069829 Forward-Port-Of: odoo/enterprise#69170 Forward-Port-Of: odoo/enterprise#68889
Original PR description
With this commit, some rules category are fixed : deduction, allowance are set only on employee rule. One file's name changed to be coherent with others payrolls. task-4069829 Forward-Port-Of: odoo/enterprise#69170 Forward-Port-Of: odoo/enterprise#68889
Forward-Port-Of: odoo/enterprise#69107 Forward-Port-Of: odoo/enterprise#67980
Original PR description
Forward-Port-Of: odoo/enterprise#69107 Forward-Port-Of: odoo/enterprise#67980
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: due to regulations, we might need to preserve an audit trail to have auditable journal entries After this commit the system would unlink only draft entries and reverse already posted move, similar to what we do for expenses opw-4075244 Forward-Port-Of:
Original PR description
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: due to regulations, we might need to preserve an audit trail to have auditable journal entries After this commit the system would unlink only draft entries and reverse already posted move, similar to what we do for expenses opw-4075244 Forward-Port-Of: odoo/enterprise#69031 Forward-Port-Of: odoo/enterprise#68044
Problem: Upon installing helpdesk_fsm in a multi-company setup, the default fsm project when enabling "use_fsm" on helpdesk teams is incorrectly retrieving the fsm project from the wrong company. This leads to a multi-company access error when trying to navigate to the fsm project linked to the helpdesk teams. Purpose: Instead of incorrectly defaulting the fsm project from the wrong company upon installation using a default method, compute the default of fsm project based on the team's compan
Original PR description
Problem: Upon installing helpdesk_fsm in a multi-company setup, the default fsm project when enabling "use_fsm" on helpdesk teams is incorrectly retrieving the fsm project from the wrong company. This leads to a multi-company access error when trying to navigate to the fsm project linked to the helpdesk teams. Purpose: Instead of incorrectly defaulting the fsm project from the wrong company upon installation using a default method, compute the default of fsm project based on the team's company. Steps to Reproduce on Runbot: 1. Install Project, Field Service, and any l10n module 2. Switch to the localized company 3. Create a helpdesk team 4. Install the helpdesk_fsm module 5. Navigate to the helpdesk team settings 6. Enable "use_fsm" on the team 7. Try to access the default fsm project 8. multi-company AccessError is thrown opw-3989799 Forward-Port-Of: odoo/enterprise#69034 Forward-Port-Of: odoo/enterprise#65701
When we tried to open the dialog, we would get an error telling us that the function close from the props is missing. The fix is to use a custom close function that will trigger the action of type `act_window_close` task-4154392 Forward-Port-Of: odoo/enterprise#69263
Original PR description
When we tried to open the dialog, we would get an error telling us that the function close from the props is missing. The fix is to use a custom close function that will trigger the action of type `act_window_close` task-4154392 Forward-Port-Of: odoo/enterprise#69263
…ew ro Version: 17.0 Steps: Click on the schedule feature in the rental module. Click on the 'New' to create the rental order. Issue : When a user clicks on the "Schedule" feature in the rental module and then clicks on "New" to create a rental order, the rental period feature is disabled, and the payment period appears instead. Cause : The issue is caused by the condition invisible="not is_rental_order" on the rental_start_date field. fix: To fix this issue, we remove the invis
Original PR description
…ew ro Version: 17.0 Steps: Click on the schedule feature in the rental module. Click on the 'New' to create the rental order. Issue : When a user clicks on the "Schedule" feature in the rental module and then clicks on "New" to create a rental order, the rental period feature is disabled, and the payment period appears instead. Cause : The issue is caused by the condition invisible="not is_rental_order" on the rental_start_date field. fix: To fix this issue, we remove the invisible="not is_rental_order" condition from the rental_start_date field definition. This ensures that the rental period feature is always visible when creating a new rental order. opw-4016866 Forward-Port-Of: odoo/enterprise#69306 Forward-Port-Of: odoo/enterprise#66904
Add the Colombian E-Commerce localization module that includes: * Add fields to the checkout form: City, Identification Type, Fiscal Regimen, and Obligation Type. * Validate new fields. * Change the label name for 'Vat' to 'Identification Number' * Show obligation type and fiscal regimen blocks only when the identification type is 'NIT'. * Take into account the identification type when validating the VAT in the checkout form. related: https://github.com/odoo/odoo/pull/169205 task-28
Original PR description
Add the Colombian E-Commerce localization module that includes: * Add fields to the checkout form: City, Identification Type, Fiscal Regimen, and Obligation Type. * Validate new fields. * Change the label name for 'Vat' to 'Identification Number' * Show obligation type and fiscal regimen blocks only when the identification type is 'NIT'. * Take into account the identification type when validating the VAT in the checkout form. related: https://github.com/odoo/odoo/pull/169205 task-2856566 Forward-Port-Of: odoo/enterprise#68786 Forward-Port-Of: odoo/enterprise#64786
* = documents_spreadsheet, website_helpdesk_livechat, whatsapp Enterprise counter-part. After a reset, the last id is always 0. backport of https://github.com/odoo/enterprise/pull/68302 community: https://github.com/odoo/odoo/pull/177705 Forward-Port-Of: odoo/enterprise#69307 Forward-Port-Of: odoo/enterprise#69045
Original PR description
* = documents_spreadsheet, website_helpdesk_livechat, whatsapp Enterprise counter-part. After a reset, the last id is always 0. backport of https://github.com/odoo/enterprise/pull/68302 community: https://github.com/odoo/odoo/pull/177705 Forward-Port-Of: odoo/enterprise#69307 Forward-Port-Of: odoo/enterprise#69045
### Steps to reproduce: - Install Sale and Field Service modules - Create a Quotation with a normal product and another Field service product - Confirm the quotation and invoice it - Change the delivered quantity of the field service product to meet the order quantity - Check the invoice status (will be 'Fully Invoiced') - Set the field service product in the SO to a unit price 0 ### Current behavior before PR: After creating an invoice for a SO that has field service product and
Original PR description
### Steps to reproduce: - Install Sale and Field Service modules - Create a Quotation with a normal product and another Field service product - Confirm the quotation and invoice it - Change the…
### Steps to reproduce: - Install Sale and Field Service modules - Create a Quotation with a normal product and another Field service product - Confirm the quotation and invoice it - Change the delivered quantity of the field service product to meet the order quantity - Check the invoice status (will be 'Fully Invoiced') - Set the field service product in the SO to a unit price 0 ### Current behavior before PR: After creating an invoice for a SO that has field service product and then set the product's unit price to 0 the SO invoice_status will change from 'Fully invoiced' to 'Nothing to invoice'. This is happening because in FSM we don't invoice SOL that has price_unit equals 0 which will lead that the SO inovice status will change too to 'Nothing to invoice'. https://github.com/odoo/enterprise/blob/17.0/industry_fsm_sale/models/sale_order.py#L84:L91 ### Desired behavior after PR is merged: We are now checking before computing the invoice status of any FSM product if the SO is not yet invoiced because if it is we won't modify the invoice status of the SOL. opw-4017282 Forward-Port-Of: odoo/enterprise#68893
Before this commit, Using the "request signature" option allowed users to create templates on the fly, which could lead to errors. In this commit, the Creation of templates on the fly from the wizard is no longer allowed. task-4069128 Forward-Port-Of: odoo/enterprise#69360 Forward-Port-Of: odoo/enterprise#67232
Original PR description
Before this commit, Using the "request signature" option allowed users to create templates on the fly, which could lead to errors. In this commit, the Creation of templates on the fly from the wizard is no longer allowed. task-4069128 Forward-Port-Of: odoo/enterprise#69360 Forward-Port-Of: odoo/enterprise#67232
Change the conditions of the account_3way_match filter on accounting dashboard for the bills journal. Before this commit: Show Bills with release_to_pay = 'yes' or invoice date < today. After this commit: Show Bills with release_to_pay = 'yes' or 'exception', the invoice date is no more used. task:3877069 Forward-Port-Of: odoo/enterprise#69068 Forward-Port-Of: odoo/enterprise#67357
Original PR description
Change the conditions of the account_3way_match filter on accounting dashboard for the bills journal. Before this commit: Show Bills with release_to_pay = 'yes' or invoice date < today. After this commit: Show Bills with release_to_pay = 'yes' or 'exception', the invoice date is no more used. task:3877069 Forward-Port-Of: odoo/enterprise#69068 Forward-Port-Of: odoo/enterprise#67357
This commit adds the field `l10n_mx_edi_payment_method_id` to the website checkout, so that the customer can choose the correct option to be saved into the sale order and to fill the attribute in the XML. Purpose: In Mexican electronic invoicing, some fields are mandatory for signing an invoice. Now, on e-commerce, one field is missing to avoid requests to cancel invoices due to lack of information. This missing field is "Payment way" (l10n_mx_edi_payment_method_id). This commit also rest
Original PR description
This commit adds the field `l10n_mx_edi_payment_method_id` to the website checkout, so that the customer can choose the correct option to be saved into the sale order and to fill the attribute in the XML. Purpose: In Mexican electronic invoicing, some fields are mandatory for signing an invoice. Now, on e-commerce, one field is missing to avoid requests to cancel invoices due to lack of information. This missing field is "Payment way" (l10n_mx_edi_payment_method_id). This commit also restructures the placement of `t-if`/`div`s so that they appear in the right places and not generate empty divs. task-id: 4064069 Forward-Port-Of: odoo/enterprise#69234 Forward-Port-Of: odoo/enterprise#68902
Steps to reproduce: [l10n_* nl/be/etc - Europe] - create a customer form Monaco with a valid TVA number `FR53000004605` - create an invoice with this customer with an intra-eu tax - Open the EC Sales List Report Issue: The invoice will not be displayed Cause: Monaco is not part of the list Solution: We add it if the company.country_id is not France. Because for any other european country we want Monaco's invoices to be displayed opw-4075452 Forward-Port-Of: odoo/enterprise#68
Original PR description
Steps to reproduce: [l10n_* nl/be/etc - Europe] - create a customer form Monaco with a valid TVA number `FR53000004605` - create an invoice with this customer with an intra-eu tax - Open the EC Sales List Report Issue: The invoice will not be displayed Cause: Monaco is not part of the list Solution: We add it if the company.country_id is not France. Because for any other european country we want Monaco's invoices to be displayed opw-4075452 Forward-Port-Of: odoo/enterprise#68560
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to 0.0001 - In debug: Settings > Technical > Database Structure > Decimal Accuracy - Change the Decimal Accuracy to 4 Digits - Create and mark as to do a delivery order for 1 unit of a product 1 that you have in stock - Barcode > Operations > Delivery Orders > "your delivery" - Click on the pencil
Original PR description
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to…
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to 0.0001 - In debug: Settings > Technical > Database Structure > Decimal Accuracy - Change the Decimal Accuracy to 4 Digits - Create and mark as to do a delivery order for 1 unit of a product 1 that you have in stock - Barcode > Operations > Delivery Orders > "your delivery" - Click on the pencil to change the quantity of the move line to 0.0153 > You are redirected to the view of the picking and the line is displayed as: **0.015300000000000001/1.0** Cause of the issue: The float system of Odoo introduce inaccuracies at high rounding precision. When you set the qty_done of the `stock.move.line` to 0.0153 the framework is going to format this float value to be written as 0.015300000000000001. Fix: To not alter comparison using backend values we format the float in the view. opw-4110401 Forward-Port-Of: odoo/enterprise#68811
When an internal user with planning access performs the Add to Calendar action, the planning backend view opens instead of downloading the ICS file.This commit fixed this behavior. task-3978534 Forward-Port-Of: odoo/enterprise#66141
Original PR description
When an internal user with planning access performs the Add to Calendar action, the planning backend view opens instead of downloading the ICS file.This commit fixed this behavior. task-3978534 Forward-Port-Of: odoo/enterprise#66141
**Steps to reproduce:** - Install Accounting, Sales and l10n_pe_edi - Switch to a Peruvian company (e.g. PE Company) - Create a SO for a Peruvian customer (e.g. Comercial Constructora) - Confirm the SO - Create a down payment - Confirm the down payment - Send it to Peru UBL 2.1 **Issue:** The Electronic Service Operator (OSE) responds with an error because an item is declared without unit of measure. **Cause:** From saas-17.1, there is no product associated to a down payment line
Original PR description
**Steps to reproduce:** - Install Accounting, Sales and l10n_pe_edi - Switch to a Peruvian company (e.g. PE Company) - Create a SO for a Peruvian customer (e.g. Comercial Constructora) - Confirm the SO - Create a down payment - Confirm the down payment - Send it to Peru UBL 2.1 **Issue:** The Electronic Service Operator (OSE) responds with an error because an item is declared without unit of measure. **Cause:** From saas-17.1, there is no product associated to a down payment line anymore. **Solution:** For down payment line, use the code (i.e. NIU) of the default unit of measure (i.e. Units), which was the default UoM of the down payment product before saas-17.1. opw-4057252 Forward-Port-Of: odoo/enterprise#69308 Forward-Port-Of: odoo/enterprise#69124