Monday, May 6, 2024
32 changes · saas-17.1
Resolved issues and error corrections
This update resolves intermittent issues where automated tours on the website's sales pages were failing to load correctly. The fix ensures that these tours consistently function, improving the user experience for potential customers browsing our online sales offerings. This change is a minor technical improvement.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Issue ----- Report creation for multiple invoices fails (e.g. with <AttributeError: "NoneType" object has no attribute "getvalue">) when some, but not all, of the invoices across the selection have a previously generated report as an attachment, and the 'Reload from attachment' option is enabled for the report action. Steps ----- - Enable 'Reload from attachment' from Settings -> Techical -> Actions -> Reports -> invoices. - Create 3 invoices without any previous reports as attac
Original PR description
Issue ----- Report creation for multiple invoices fails (e.g. with <AttributeError: "NoneType" object has no attribute "getvalue">) when some, but not all, of the invoices across the selection have a…
Issue ----- Report creation for multiple invoices fails (e.g. with <AttributeError: "NoneType" object has no attribute "getvalue">) when some, but not all, of the invoices across the selection have a previously generated report as an attachment, and the 'Reload from attachment' option is enabled for the report action. Steps ----- - Enable 'Reload from attachment' from Settings -> Techical -> Actions -> Reports -> invoices. - Create 3 invoices without any previous reports as attachments. - Select the middle invoice and generate a report (Print -> Invoices). An attachment will be created for the invoice. - Select the 3 invoices then generate a report (Print -> Invoices). Cause ----- When "Reload from attachment" is enabled, the algorithm for creating aggregate reports for a number of invoices selects only those that don't have an attachment to generate a pdf for. These are copied into a separate list "res_ids_wo_stream". When the pdfs streams are generated, they're put back into the return value "collected_streams. However, this was done from the original ids list "res_ids" rather than the selected one, which resulted in an indexing issue. opw-3827700 Closes #157975 Forward-Port-Of: odoo/odoo#164558 Forward-Port-Of: odoo/odoo#160670
In case there is an entry in ir_defaults that forces `store=False` Steps to reproduce: add such default and try to install analytic. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164386
Original PR description
In case there is an entry in ir_defaults that forces `store=False` Steps to reproduce: add such default and try to install analytic. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164386
Description of the issue/feature this PR addresses: The module l10n_generic_coa was removed from version 17.0 but the __init__.py file is still there. I am not sure if this file is necessary or not, maybe for migration, but it looks like a mistake leaving it. 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#164474
Original PR description
Description of the issue/feature this PR addresses: The module l10n_generic_coa was removed from version 17.0 but the __init__.py file is still there. I am not sure if this file is necessary or not, maybe for migration, but it looks like a mistake leaving it. 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#164474
Problem --- When an RFQ order-line is auto-generated from a sale order for a subcontracted service, the discount from `supplierinfo` does not get applied. Steps --- * install `sale_management` and `purchase` * create a service product, and in the purchase tab set a vendor for it * set a discount for this vendor (still in purchase tab; unhide the column) * create a sale order for this product and confirm it * click the `purchase` stat button * On the generated RFQ line, the discount i
Original PR description
Problem --- When an RFQ order-line is auto-generated from a sale order for a subcontracted service, the discount from `supplierinfo` does not get applied. Steps --- * install `sale_management` and `purchase` * create a service product, and in the purchase tab set a vendor for it * set a discount for this vendor (still in purchase tab; unhide the column) * create a sale order for this product and confirm it * click the `purchase` stat button * On the generated RFQ line, the discount is not applied opw-3829675 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163095
[Commit 1] made sure uploaded media are not duplicated if they already exist. The media library and Unsplash were not taken into account. This commit makes sure only one attachment is created for each image fetched from the media library or Unsplash, and adds a test. Note: the test is marked 'external' as it calls the Undraw API (twice: once to search the images, a second time to save the selected image as an attachment). The 2nd call cannot be mocked, as it would not test the fix withi
Original PR description
[Commit 1] made sure uploaded media are not duplicated if they already exist. The media library and Unsplash were not taken into account. This commit makes sure only one attachment is created for…
[Commit 1] made sure uploaded media are not duplicated if they already exist. The media library and Unsplash were not taken into account. This commit makes sure only one attachment is created for each image fetched from the media library or Unsplash, and adds a test. Note: the test is marked 'external' as it calls the Undraw API (twice: once to search the images, a second time to save the selected image as an attachment). The 2nd call cannot be mocked, as it would not test the fix within `save_library_media()` which makes sure the same image is not saved twice. Steps to reproduce: - Open the media dialog on an image - Make a dummy search to show the media library images - Quickly click multiple times on the same image - Reopen the media dialog => The image is saved multiple times. Note: it is also uploaded multiple times if you reopen the dialog and reselect the same image. [Commit 1]: https://github.com/odoo/odoo/commit/1990f2209d6f89e91618896cd6bbae50d0228369 task-3798504 Forward-Port-Of: odoo/odoo#164312 Forward-Port-Of: odoo/odoo#162597
In the refactoring of hr_holidays in odoo@cf33b80aca81, there was a typo in the loop, with the recordset self instead of the record allocation. Fixes #164259 Forward-Port-Of: odoo/odoo#164414
Original PR description
In the refactoring of hr_holidays in odoo@cf33b80aca81, there was a typo in the loop, with the recordset self instead of the record allocation. Fixes #164259 Forward-Port-Of: odoo/odoo#164414
The analytic distribution widget previously triggered one server request per line when it was used in a list view. Depending on the number of workers, this approach could quickly overwhelm a server. This commit introduces the `batchedOrm` service. This new service optimizes data retrieval by batching and caching requests for analytic account details, thereby reducing the load on the server and improving performance. opw-3867461 opw-3813783 opw-3892785 opw-3894448 Forward-Port-Of: odo
Original PR description
The analytic distribution widget previously triggered one server request per line when it was used in a list view. Depending on the number of workers, this approach could quickly overwhelm a server. This commit introduces the `batchedOrm` service. This new service optimizes data retrieval by batching and caching requests for analytic account details, thereby reducing the load on the server and improving performance. opw-3867461 opw-3813783 opw-3892785 opw-3894448 Forward-Port-Of: odoo/odoo#163111
Problem: The error occurs when the user creates a bill with a product quantity of 0 Steps to reproduce: - Install "Accounting", "Inventory", "Purchase" and "Sales" apps - Navigate to Sales > Products > Products and create a new product - Configure the product to be storable - Navigate to the "Purchase" tab and set the control policy to "On ordered quantities" - Navigate back to the "General Information" tab and create a new product category for this product - Set the "Inventory Val
Original PR description
Problem:
The error occurs when the user creates a bill with a product quantity of 0
Steps to reproduce:
- Install "Accounting", "Inventory", "Purchase" and "Sales" apps
- Navigate to Sales > Products > Products and create a new product
- Configure the product to be storable
- Navigate to the "Purchase" tab and set the control policy to "On ordered quantities"
- Navigate back to the "General Information" tab and create a new product category for this product
- Set the "Inventory Valuation" to "Automated"
- Set the "Price Difference Account"
- Navigate to Accounting > Vendors > Bills
- Create a new vendor bill and add the lately created product with a quantity of 0
- Confirm the bill
Cause:
The quantity of the product is 0 and is the denominator of a fraction
opw-3806378
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#164323
Forward-Port-Of: odoo/odoo#161825In payment status template, do not translate `alert_type` otherwise the wrong class and icon will be shown For ex. in french, in case of a successful payment we were showing no background color and a warning icon instead of a check mark. [OPW-3900040](https://www.odoo.com/web#id=3900040&model=project.task&view_type=form&menu_id=) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164079 Forward-Port-Of: odoo/odoo#163958
Original PR description
In payment status template, do not translate `alert_type` otherwise the wrong class and icon will be shown For ex. in french, in case of a successful payment we were showing no background color and a warning icon instead of a check mark. [OPW-3900040](https://www.odoo.com/web#id=3900040&model=project.task&view_type=form&menu_id=) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164079 Forward-Port-Of: odoo/odoo#163958
[FIX] web_editor, *: create attachment on hover effect modification *: website Steps to reproduce: - Add an image on the website. - Add an "On Hover" animation. - Save and edit. - Change the animation effect (i.e. from "Overlay" to "Outline"). - Save. -> Problem: although the image options have been modified, there is no new attachment created for this modified image and its src is still the raw data. The problem appears since [1] as the `_reapplyCurrentShape()` method replac
Original PR description
[FIX] web_editor, *: create attachment on hover effect modification *: website Steps to reproduce: - Add an image on the website. - Add an "On Hover" animation. - Save and edit. - Change the…
[FIX] web_editor, *: create attachment on hover effect modification *: website Steps to reproduce: - Add an image on the website. - Add an "On Hover" animation. - Save and edit. - Change the animation effect (i.e. from "Overlay" to "Outline"). - Save. -> Problem: although the image options have been modified, there is no new attachment created for this modified image and its src is still the raw data. The problem appears since [1] as the `_reapplyCurrentShape()` method replaces `_applyOptions()`. Due to this, the `o_modified_image_to_save` class is not added anymore on the image when changing hover effect options such as "effect", "color", "intensity", and "stroke width". To solve the problem, the class is added back on the image when changing such options. Thanks to it, the system creates a new attachment linked to the modified image at the editor save. [1]: https://github.com/odoo/odoo/commit/5d83672e0aac40d3484ee45f348dfca5de8f186a task-3820127 -------------------------------------------------------------------------------------------------------------------------------------------------------------- [FIX] website: reapply original source on hovered image in edit mode Steps to reproduce the bug: - Add an image on the website and add an animation of type "On Hover" on it. - Save and edit. - Click on the image to load its options. - Save. -> Problem, the image src is the raw data. When the user clicks on the image, the `ImageHandlerOption` snippet option is started. Because the image has an hover effect, the `_refreshPublicWidgets()` method is called. Due to it, the `ImageShapeHoverEffet` public widget is restarted. The problem is that because the src of the image has been modified in the `_applyOptions()` method of the `ImageHandlerOption`, the src of the image will not be replaced by the original one at the `destroy()` of the `ImageShapeHoverEffet` public widget. At the re start of this public widget, `this.originalImgSrc` will be set to a base 64 source. At the save of the editor, the public widget is destroyed and the image source is set to those raw data. Because the image has not been modified, it keeps it as a src after the save of the editor. To solve the problem, the `destroy()` method of the `ImageShapeHoverEffet` has been adapted to correctly set the source of the image when it has not been modified. To do so, the `originalSrcBeforeHover` attribute is used to keep track of the original image src. It is needed for example if a user applies a filter on the animated image and then clicks on 'undo'; at the filter application, `ImageShapeHoverEffet` is destroyed. Because the image has been modified, the src of the image will not be replaced by the original one. Without the `originalSrcBeforeHover` attribute, the original src would be lost and it would not be possible to reset the src to the original if the user clicks on 'undo' and then save. task-3820127 Forward-Port-Of: odoo/odoo#158515
Before this fix, when updating recurrence events in "This and future events" mode, some events vanished. This happened because we were removing all the attendees from the occurrences, and then no event was being shown in the calendar. Additionally, when creating recurrences from Google with the "UNTIL" option, one extra event was being added at the end because the rrule on their side finished on the next day after the end at 23:59:59. After this fix, we no longer delete all attendees when rec
Original PR description
Before this fix, when updating recurrence events in "This and future events" mode, some events vanished. This happened because we were removing all the attendees from the occurrences, and then no event was being shown in the calendar. Additionally, when creating recurrences from Google with the "UNTIL" option, one extra event was being added at the end because the rrule on their side finished on the next day after the end at 23:59:59. After this fix, we no longer delete all attendees when receiving updates from Google. Instead, we update the current attendees for not recreating all of them every time. Thus, when updating recurrent events, they no longer vanished anymore. Creating recurrent events in Google with the "UNTIL" option also no longer adds an extra day at the end because we are subtracting the extra day. Task-id: 3731542 Forward-Port-Of: odoo/odoo#156077
Before this commit, free shipping rewards were ignored when customers used Express Checkout to pay for their orders. Now, Express Checkout will consider free shipping rewards when `loyalty` is installed. opw-3822059 Forward-Port-Of: odoo/odoo#164364 Forward-Port-Of: odoo/odoo#164176
Original PR description
Before this commit, free shipping rewards were ignored when customers used Express Checkout to pay for their orders. Now, Express Checkout will consider free shipping rewards when `loyalty` is installed. opw-3822059 Forward-Port-Of: odoo/odoo#164364 Forward-Port-Of: odoo/odoo#164176
Some nightly builds are failing with a message hinting that the expected combination was not correctly archived. runbot issue 61115 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164054 Forward-Port-Of: odoo/odoo#164003
Original PR description
Some nightly builds are failing with a message hinting that the expected combination was not correctly archived. runbot issue 61115 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164054 Forward-Port-Of: odoo/odoo#164003
Steps to reproduce: - Go to a website page (in "edit" mode) > Drop a "Form" block. - Drop a "Text" snippet above the form. - Change text layout into two columns. - Drag and drop one column inside the form (between two fields). - Click inside the text > You can't edit it. The text column was considered as “editable” (its editability was inherited from its parent element). And right after the drag & drop, the code in the form option will set the whole snippet as non-editable (`[content
Original PR description
Steps to reproduce: - Go to a website page (in "edit" mode) > Drop a "Form" block. - Drop a "Text" snippet above the form. - Change text layout into two columns. - Drag and drop one column inside the form (between two fields). - Click inside the text > You can't edit it. The text column was considered as “editable” (its editability was inherited from its parent element). And right after the drag & drop, the code in the form option will set the whole snippet as non-editable (`[contentEditable=false]`) and only allow some specific elements to be edited (buttons, description...). The goal of this commit is to fix this issue by simply including the columns "that are not fields" in the list of form editable elements. task-3702824 Forward-Port-Of: odoo/odoo#164076 Forward-Port-Of: odoo/odoo#153894
opw-3869944 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164170
Original PR description
opw-3869944 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164170
## Issue: - In Germany companies that don't have a VAT ID, make their VAT declarations based on their Tax Identification Number (TIN). However, when the Tax Identification Number is entered as a VAT ID, it is not accepted by Odoo. ## Steps To Reproduce: - Go to a fiscal position - Add a new fiscal position with germany in country and '133/8150/8159' in the Foreign VAT ID field. - Odoo expects another format. ## Solution: - The process begins with the addition of `vat`, which triggers
Original PR description
## Issue: - In Germany companies that don't have a VAT ID, make their VAT declarations based on their Tax Identification Number (TIN). However, when the Tax Identification Number is entered as a VAT…
## Issue: - In Germany companies that don't have a VAT ID, make their VAT declarations based on their Tax Identification Number (TIN). However, when the Tax Identification Number is entered as a VAT ID, it is not accepted by Odoo. ## Steps To Reproduce: - Go to a fiscal position - Add a new fiscal position with germany in country and '133/8150/8159' in the Foreign VAT ID field. - Odoo expects another format. ## Solution: - The process begins with the addition of `vat`, which triggers the `check_vat` method. - This method, in turn, calls `_run_vat_test`, wherein `check_func` is set to `self.simple_vat_check`, indicating the default validation function. - The `simple_vat_check` performs the VAT validation. It proceeds with standard validation if no specific `check_func` is defined for the given `check_func_name`. - For Germany, I implemented `check_func_de`, to specifically check and validate German VAT numbers when a TIN is provided. opw-3792306 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163571 Forward-Port-Of: odoo/odoo#159690
Ever since the refactoring of the steps snippet with SVG connectors (see [commit 1]), it only works with icons. Since its behavior is quite rigid (it forces a single height/width on the icons), we simply apply the same styles to images. [commit 1]: https://github.com/odoo/odoo/commit/aba31e9f2d8a44ce1586403f2a621a6caeed57b4 opw-3863703 Forward-Port-Of: odoo/odoo#163472
Original PR description
Ever since the refactoring of the steps snippet with SVG connectors (see [commit 1]), it only works with icons. Since its behavior is quite rigid (it forces a single height/width on the icons), we simply apply the same styles to images. [commit 1]: https://github.com/odoo/odoo/commit/aba31e9f2d8a44ce1586403f2a621a6caeed57b4 opw-3863703 Forward-Port-Of: odoo/odoo#163472
opw-3863423 Forward-Port-Of: odoo/odoo#164161
Original PR description
opw-3863423 Forward-Port-Of: odoo/odoo#164161
If we rename the tax to '[old] taxname' everytime we detect a modification then we will run into a unique name violation. Taking account of how many other taxes with the same name there already are will bypass this constraint. The problem appears during upgrades --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164025
Original PR description
If we rename the tax to '[old] taxname' everytime we detect a modification then we will run into a unique name violation. Taking account of how many other taxes with the same name there already are will bypass this constraint. The problem appears during upgrades --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164025
**Steps to reproduce the issue:** - Install the `website_event_sale` module (for test purpose) - Create an event with a paid ticket - Go to the website and register to the event - Go to backend and confirm the sale order if pending payment - Go to the event and open the new registration **Issue:** No mail send to the attendee. **Cause:** Since the following commit, the registration state is overwritten in the `event_sale` module where we added a compute method to the state fie
Original PR description
**Steps to reproduce the issue:** - Install the `website_event_sale` module (for test purpose) - Create an event with a paid ticket - Go to the website and register to the event - Go to backend and…
**Steps to reproduce the issue:** - Install the `website_event_sale` module (for test purpose) - Create an event with a paid ticket - Go to the website and register to the event - Go to backend and confirm the sale order if pending payment - Go to the event and open the new registration **Issue:** No mail send to the attendee. **Cause:** Since the following commit, the registration state is overwritten in the `event_sale` module where we added a compute method to the state field: `_compute_registration_status`, compute method already used by the `sale_status` field (compute method was renamed) and depending on the `sale_order_id.state` field. https://github.com/odoo/odoo/commit/4a20cb320b8e251c3670c4fb25ee1b6ba9d2d19b When confirming the sale order, the registration state is computed but the mail scheduler is not run (scheduler executed only in `create` and `write` method). **Solution:** Run the mail scheduler for open registrations in the `action_confirm` method of the `sale.order` model. opw-3820441 Forward-Port-Of: odoo/odoo#159232
Before this commit, when inserting an event in Google side, we were throwing away the insertion values returned by Google and keeping only the event id. This was not a good practice because we could already write important values such as meeting URL and then spare future write calls. Additionaly, when writing values from google, we were sending through the context the 'write_dates' key, that would only be used once but would be kept in the context (when it is not needed). After this commit, a
Original PR description
Before this commit, when inserting an event in Google side, we were throwing away the insertion values returned by Google and keeping only the event id. This was not a good practice because we could…
Before this commit, when inserting an event in Google side, we were throwing away the insertion values returned by Google and keeping only the event id. This was not a good practice because we could already write important values such as meeting URL and then spare future write calls. Additionaly, when writing values from google, we were sending through the context the 'write_dates' key, that would only be used once but would be kept in the context (when it is not needed). After this commit, a callback function was added to write the event information right after the 'insert' function is executed, alongside of a function to get the desired post sync values describing which fields will be written in the event. Thus, we can write in the event right away after its creation. Since we are in a stable branch, this strategy was the only option to avoid changing the 'insert' function return and, by consequence possibly breaking custom code. In addition, now we delete the recently used 'write_dates' context key from the context in order to prevent future misuse of it. task-3893827 Forward-Port-Of: odoo/odoo#163364
Steps: - Go to Accounting/Customers/Amounts to Settle or Accounting/Vendors/Amounts to Settle - The credit notes are displayed instead of the invoices/bills This is due to a wrong domain in the window action. opw-3858520 Forward-Port-Of: odoo/odoo#163719
Original PR description
Steps: - Go to Accounting/Customers/Amounts to Settle or Accounting/Vendors/Amounts to Settle - The credit notes are displayed instead of the invoices/bills This is due to a wrong domain in the window action. opw-3858520 Forward-Port-Of: odoo/odoo#163719
Steps: - Install and configure Razorpay provider. - Install sales app. - Enable wallet india PM. - Create quote and try to pay it via wallet india. Issue: - User error when trying to pay via wallet india. Cause: - `orders` API does not take `wallet_india` as method key of payload also I tried other like `wallet` and `wallets` but they are not also working even though Razorpay response with method `wallet` when we pay via wallets so `wallet` is right value but `orders` API does
Original PR description
Steps: - Install and configure Razorpay provider. - Install sales app. - Enable wallet india PM. - Create quote and try to pay it via wallet india. Issue: - User error when trying to pay via wallet…
Steps: - Install and configure Razorpay provider. - Install sales app. - Enable wallet india PM. - Create quote and try to pay it via wallet india. Issue: - User error when trying to pay via wallet india. Cause: - `orders` API does not take `wallet_india` as method key of payload also I tried other like `wallet` and `wallets` but they are not also working even though Razorpay response with method `wallet` when we pay via wallets so `wallet` is right value but `orders` API does not count it as one. Fix: - Do not pass any method in payload when user select `wallet` and open Razorpay form with all PM so user can pay via whichever method they want and if selected method exist in the odoo then set that PM to transaction. For master: - Add `Pay later` payment method so we can store all transaction with proper payment method in odoo. - Change code of wallet PM from `wallets_india` to `wallet` so when razorpay fix code issue it'll work automatically without any issues and we don't need to pass mapping to get proper PM via `_get_from_code`. opw-3867594 Forward-Port-Of: odoo/odoo#163290
The reconciliation of journal items imported from Winbooks is done when all those items are posted. However if one of the imported items to reconcile have zero as balance, it will trigger an error "You are trying to reconcile some entries that are already reconciled." because Odoo consider zero balance lines as reconciled and block the user of posting the entries. This fix removes the reconciliation data when the Winbooks file is imported if the item has a zero balance since this item does no
Original PR description
The reconciliation of journal items imported from Winbooks is done when all those items are posted. However if one of the imported items to reconcile have zero as balance, it will trigger an error "You are trying to reconcile some entries that are already reconciled." because Odoo consider zero balance lines as reconciled and block the user of posting the entries. This fix removes the reconciliation data when the Winbooks file is imported if the item has a zero balance since this item does not need to be reconciled in the future. opw-3830355 Forward-Port-Of: odoo/enterprise#61743
…igher rules Have rules such as: 1. no domain, notification order: 1 2. no domain, notification order: 2 3. a domain that doesn't match the record, notification order: 2 Manually validate the rule 1, that is, do not hit the button of the action, rather, enter the popup of the approvals, and validate the rule. The spec of the flow is that, when all rules from a level (or notification order) have been validated, rules that have a higher order will trigger an activity and a notification
Original PR description
…igher rules Have rules such as: 1. no domain, notification order: 1 2. no domain, notification order: 2 3. a domain that doesn't match the record, notification order: 2 Manually validate the rule 1, that is, do not hit the button of the action, rather, enter the popup of the approvals, and validate the rule. The spec of the flow is that, when all rules from a level (or notification order) have been validated, rules that have a higher order will trigger an activity and a notification to their responsible. After all, those rules are "next in line". Before this commit, both rule 2 and 3 sent a notification and created an activity for the current record. This was wrong as rule 3 should not be considered, because its domain doesn't match the record. After this commit, only rule 2 sends a notification and creates an activity. opw-3815732 Forward-Port-Of: odoo/enterprise#61746
Functionality was removed during the refactor of the voip module between 16 and 17 where you could enter any number through the phone keypad on voip or receive a call and have access to the information on the customer with the associated phone number. This was a functionality that the customer on the ticket was using prior to upgrade. I have added back this functionality through a non blocking call to a new function in res.partner that will search up the contact based on the phone nu
Original PR description
Functionality was removed during the refactor of the voip module between 16 and 17 where you could enter any number through the phone keypad on voip or receive a call and have access to the information on the customer with the associated phone number. This was a functionality that the customer on the ticket was using prior to upgrade. I have added back this functionality through a non blocking call to a new function in res.partner that will search up the contact based on the phone number entered in the softphone. When the data comes back from the back end the UI will be updated with the partner information if it found it. This also has a side effect of fixing the customer wizard button as well. opw-3770625 Forward-Port-Of: odoo/enterprise#60383
Forward-Port-Of: odoo/enterprise#61025
Original PR description
Forward-Port-Of: odoo/enterprise#61025
The query defined `_l10n_pe_get_txt_11_data` does not define an order. It can result in an undeterministic order. We define it based on the date then id. Linked to runbot error 63997 Forward-Port-Of: odoo/enterprise#61867
Original PR description
The query defined `_l10n_pe_get_txt_11_data` does not define an order. It can result in an undeterministic order. We define it based on the date then id. Linked to runbot error 63997 Forward-Port-Of: odoo/enterprise#61867
Configure 'Cash Discount Tax Reduction' on 'On early payment' Have a payment term configured with 2% discount for early payment Create an invoice with the said payment terms and the following lines: 1) qty 1, price unit 468, discount 28, tax 19% 2) qty 1, price unit 480, discount 28, tax 19% 3) qty 1, price unit 85, discount 28, tax 19% 4) qty 1, price unit 6, discount 0, tax 19% 5) qty 2, price unit 6, discount 0, tax 19% Register the payment with the early payment discount Check the
Original PR description
Configure 'Cash Discount Tax Reduction' on 'On early payment' Have a payment term configured with 2% discount for early payment Create an invoice with the said payment terms and the following lines:…
Configure 'Cash Discount Tax Reduction' on 'On early payment' Have a payment term configured with 2% discount for early payment Create an invoice with the said payment terms and the following lines: 1) qty 1, price unit 468, discount 28, tax 19% 2) qty 1, price unit 480, discount 28, tax 19% 3) qty 1, price unit 85, discount 28, tax 19% 4) qty 1, price unit 6, discount 0, tax 19% 5) qty 2, price unit 6, discount 0, tax 19% Register the payment with the early payment discount Check the payment Early payment lines amount are 15.23 + 2.90 (tax discount) = 18.13 Go to General Ledger Export "DATEV (ZIP)" and check accounting_entries.csv Early payment line amount will be 18.12 This occurs because when exporting the system recompute the tax amount due for each line with tax, so we give just a line with the gross amount. However, when the payment is created, the system check for rounding errors and adjust the computed tax amount. This is not done when exporting data and we have a 0.01 difference with the payment entry opw-3801374 Forward-Port-Of: odoo/enterprise#61968 Forward-Port-Of: odoo/enterprise#60927
This commit removes the write override of calendar.event records, since this override was doing unnecessary requests on Google side when synchronizing again events that were just synchronized. After this commit, the function get_post_sync_values() will reuse the values returned by the insertion in Google and write in the event right away, saving requests to Google. The objective of the previous write override was to write the google meet URL in the event, and now this is still being done
Original PR description
This commit removes the write override of calendar.event records, since this override was doing unnecessary requests on Google side when synchronizing again events that were just synchronized. After this commit, the function get_post_sync_values() will reuse the values returned by the insertion in Google and write in the event right away, saving requests to Google. The objective of the previous write override was to write the google meet URL in the event, and now this is still being done correctly by means of the new strategy. related-to: https://github.com/odoo/odoo/pull/163364 task-389382 Forward-Port-Of: odoo/enterprise#61465
This will fix the computation of the double holiday pay recovery to match legal requirements. Task: 3893867 Forward-Port-Of: odoo/enterprise#61540
Original PR description
This will fix the computation of the double holiday pay recovery to match legal requirements. Task: 3893867 Forward-Port-Of: odoo/enterprise#61540