Wednesday, September 11, 2024
29 changes · saas-17.4
Resolved issues and error corrections
Fixed an issue where guided product tours could stop unexpectedly when a backup step target only appeared after hovering. This prevents blocked tours and browser errors, making onboarding and walkthroughs more reliable for users.
Original PR description
Steps to reproduce: - use alt_trigger with an element that appears only on hover. - tour blocked and console error appears. Source: - altAnchorEl is undefined and trying to access properties from it. task-4141027
The web editor now handles rare timing issues where another user's selection refers to content that is no longer on the page. This prevents crashes and keeps collaborative editing more reliable for users.
Original PR description
Prior to this commit, attempting to draw a peer's selection within an element that was not present in the DOM would result in a crash. Under certain race conditions, it is possible for an element to exist outside of the DOM. To enhance resilience and prevent crashes, this commit adjusts the selection as necessary to ensure it can be drawn correctly. task-4143889
The point of sale loyalty partner screen has been corrected so users can use the 'Search More' option without encountering an error. This helps staff continue customer lookup smoothly during sales workflows.
Original PR description
Before this commit: --------- - A traceback occurs when we click on the 'Search More' button in partner screen. After this commit: --------- - Traceback fixed on the search more button. task - 4179346 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The guided timesheet walkthrough no longer gets stuck when users click the cell to enter hours. This keeps the onboarding and training flow working as expected for users learning the timesheet grid.
Original PR description
Steps to reproduce: - Start timesheets tour - When reaching step "Click on the cell to set the number of hours you spent on this project.", and clicking on the cell, tour stay at the same step. Source: - When hovering the cell, a new html element came to superpose above the trigger. so the click is done on the new element and not the trigger. Fix: - Add alt_trigger with the new Element. task-4141027
The Belgian salary configurator now checks whether a submit button is present before trying to disable it. This prevents public users from encountering an error when using the configurator without a submit button.
Original PR description
When the salary configurator is in public, there is no submit button, so it raises a traceback. To avoid this we check the button exists beore disabling it
Miscellaneous changes
When the product has the "continue selling" box when "out-of-stock" checked, and you add the product to the wishlist from ecommerce, "Temporarily out of stock" message/warning will appear in the wishlist. To Reproduce on Runbot: 1. Make sure ecommerce module is installed 2. Go to storable product (for example: Cable Management Box) 3. In the sales tab, make sure the option "Continue Selling" for Out-of-Stock field is checked 4. Go to ecommerce, search for the product (here, let's search f
Original PR description
When the product has the "continue selling" box when "out-of-stock" checked, and you add the product to the wishlist from ecommerce, "Temporarily out of stock" message/warning will appear in the…
When the product has the "continue selling" box when "out-of-stock" checked, and you add the product to the wishlist from ecommerce, "Temporarily out of stock" message/warning will appear in the wishlist. To Reproduce on Runbot: 1. Make sure ecommerce module is installed 2. Go to storable product (for example: Cable Management Box) 3. In the sales tab, make sure the option "Continue Selling" for Out-of-Stock field is checked 4. Go to ecommerce, search for the product (here, let's search for Cable Management Box), click on it 5. Click on add to wishlist 6. Go to wishlist. 7. We'll see "Temporarily out of stock" message. But, we don't want this because we want to continue selling even if it's out of stock, and don't want to customer to get confused with the message. So, since the message/warning doesn't align with the concept of continue selling when out of stock, we want to get rid of the message/warning if the product has "continue selling" box checked. opw-4121929 Forward-Port-Of: odoo/odoo#177993
When printing order changes that contains a product with a really long name, the product name would overlap on the kitchen receipt. Steps to reproduce: ------------------- * Modify the name of a product so that it is really long * Setup a kitchen printer on a PoS restaurant * Add some product on an order and send the order in preparation > Observation: The kitchen receipt has overlapping lines Why the fix: ------------ We make sure to hide the overflowing text so that it is not over
Original PR description
When printing order changes that contains a product with a really long name, the product name would overlap on the kitchen receipt. Steps to reproduce: ------------------- * Modify the name of a product so that it is really long * Setup a kitchen printer on a PoS restaurant * Add some product on an order and send the order in preparation > Observation: The kitchen receipt has overlapping lines Why the fix: ------------ We make sure to hide the overflowing text so that it is not overlapping on other lines. opw-4136775 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179549
When you made a downpayment on an order that contains different products with different unique tax combination, each invoice line would show that it's linked to all the sale order lines. Steps to reproduce: ------------------- * Create some taxes T1 T2 and T3 * Create an order with 3 lines and put one tax on each line * Open the PoS and make a downpayment for the order * Pay and invoice the order > Observation: Each line in the invoice show that it is applying the downpayment to the co
Original PR description
When you made a downpayment on an order that contains different products with different unique tax combination, each invoice line would show that it's linked to all the sale order lines. Steps to reproduce: ------------------- * Create some taxes T1 T2 and T3 * Create an order with 3 lines and put one tax on each line * Open the PoS and make a downpayment for the order * Pay and invoice the order > Observation: Each line in the invoice show that it is applying the downpayment to the complete sale order Why the fix: ------------ We make sure to only show the sale order line that have the same tax combination opw-4089408 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179541 Forward-Port-Of: odoo/odoo#178061
### Current Behavior: When scanning a barcode like attached, ascii 29 (FNC1) will be added to the beginning of the final code. ### Expected Behavior: FNC1 should be removed from the final code. ### Steps to Reproduce 1. With barcode installed, set the barcode nomenclature in settings to "Default GS1 Nomenclature" 2. Attempt to scan this barcode  3. If you debug [here](https://github.com/
Original PR description
### Current Behavior: When scanning a barcode like attached, ascii 29 (FNC1) will be added to the beginning of the final code. ### Expected Behavior: FNC1 should be removed from the final code. ###…
### Current Behavior: When scanning a barcode like attached, ascii 29 (FNC1) will be added to the beginning of the final code. ### Expected Behavior: FNC1 should be removed from the final code. ### Steps to Reproduce 1. With barcode installed, set the barcode nomenclature in settings to "Default GS1 Nomenclature" 2. Attempt to scan this barcode  3. If you debug [here](https://github.com/odoo-dev/odoo/blob/b387345f557adace35767ec2ca7ada271cca8423/addons/barcodes_gs1_nomenclature/models/barcode_nomenclature.py#L101), you will find that `barcode` starts with ascii 29, but it isn't removed. ### Details This commit adds ascii code 29 (FNC1) to the list of strings to be escaped from in gs1 decomposition. In PR #163404, logic was added to escape barcode scan results that start with FNC1. This is only specifically checking ']C1', but it is possible for the literal ascii code 29 to be present in the beginning of the string as well. This should also be escaped. You can see that ascii 29 is added in `zxing-library.js` [here](https://github.com/odoo-dev/odoo/blob/b387345f557adace35767ec2ca7ada271cca8423/addons/web/static/lib/zxing-library/zxing-library.js#L12308) in this case. It also could potentially be added in several other places such as [here](https://github.com/odoo-dev/odoo/blob/b387345f557adace35767ec2ca7ada271cca8423/addons/web/static/lib/zxing-library/zxing-library.js#L6932) opw-3965925 Forward-Port-Of: odoo/odoo#177958
Versions -------- - saas-17.2+ Steps ----- 1. Enable analytic accounting; 2. create a project with a new analytic account; 3. create a purchase order with a line linked to the analytic account; 4. confirm order; 5. create bill, add bill date, confirm bill; 6. click the "Credit Note" button; 7. confirm the credit note to reverse the bill; 8. go to project profitability panel. Issue ----- Instead of reversing the project's costs, the credit note doubled them. Cause ----- Co
Original PR description
Versions -------- - saas-17.2+ Steps ----- 1. Enable analytic accounting; 2. create a project with a new analytic account; 3. create a purchase order with a line linked to the analytic account; 4. confirm order; 5. create bill, add bill date, confirm bill; 6. click the "Credit Note" button; 7. confirm the credit note to reverse the bill; 8. go to project profitability panel. Issue ----- Instead of reversing the project's costs, the credit note doubled them. Cause ----- Commit 9c14dfdf2302 changed the retrieval of profitability costs from purchase orders to vendor bills. In doing so, it assumed each move line's listed amount to be a cost. Solution -------- If the line has `is_refund` set, multiply the cost by -1. opw-4100220 Forward-Port-Of: odoo/odoo#179764
Currently, when applying two discounts (from loyalty programs) that are applied on specific products, the second discount value does not match with the setup of the reward. Steps to reproduce: ------------------- * Go to the **Point of Sale** App * Create a new product, P -> Price 100$, no tax applied * Under **Products** select **Discount & loyalty** * Create a new loyalty program * Rule 10 points per $ spent * Reward 1: 10$ on P for 10 points * Reward 2: 50$ on P for 40 points
Original PR description
Currently, when applying two discounts (from loyalty programs) that are applied on specific products, the second discount value does not match with the setup of the reward. Steps to reproduce:…
Currently, when applying two discounts (from loyalty programs) that are applied on specific products, the second discount value does not match with the setup of the reward. Steps to reproduce: ------------------- * Go to the **Point of Sale** App * Create a new product, P -> Price 100$, no tax applied * Under **Products** select **Discount & loyalty** * Create a new loyalty program * Rule 10 points per $ spent * Reward 1: 10$ on P for 10 points * Reward 2: 50$ on P for 40 points * Open shop session * Add P to the order * Add reward 1 * Add reward 2 > Observation: The first reward is 10$ but the second is 55$ Why the fix: ------------ We will use the example from the given steps to explain what happens. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1376-L1377 On the first line of the above `discountable` and `discountablePerTax` will be 100. On the second line `discountable` will be 90 as the order total is 90, as the discount is counted here. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1417 Here we have `masDiscount` being 50 (`reward.discount`). Thus we end up with `discountFactor = min(1, 0.555)`. This factor is later on used to set the price of the discount line. The price is set up as follow. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1426 Where entry one corresponds to the value of `discountablePerTax` which is 100. Thus the discount is valued at `0.555 * 100 = 55.5$`. To solve this we make `discountable` and `discountablePerTax` account for the discounts that aleady apply on the same product. We then look at what happens in the function `_getDiscountableOnSpecific` as in our case it corresponds to `getDiscountable`. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1250-L1251 As this comment says we don't want to discount more than what is available. In our case only 90$ are available since we have already applied the 10$ discount. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1269-L1273 We see that when we scan through the order lines, only discount from the same reward as the one we are trying to apply are counted. In short, if we were trying to apply another 10$ discount instead of the 50, then the line would be counted. But since the 10$ and 50$ discounts apply on the same product, they should both be counted. We want to add more discount lines to `linesToDisount` because at the end, it is used compute `discountable` and `discountablePerTax`. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1331-L1341 We want to add the discount lines that applies to at least one product of the current reward. But we also need to check if that common product is on the order. If we imagine reward 1 applied on P1, reward 2 applied on P1 and P2 but we only have P2 in the order then reward 1 should not count when applying reward 2. We filter on the `reward_type` to exclude lines that are related to free products rewards. With the current change there is a difference in behaviors when the discount is a percentage or a fixed amount. Since we now count the discounts at the end, we can remove this part of the code as it would count twice the discounts that are percentages. https://github.com/odoo/odoo/blob/e01df041b9428cf14cb150bdb0803c6f5ff2d80f/addons/pos_loyalty/static/src/js/Loyalty.js#L1298-L1309 opw-4083557 Forward-Port-Of: odoo/odoo#179561 Forward-Port-Of: odoo/odoo#178352
Steps to reproduce ================== - Use Epiphany (a webkit based browser, like Safari) - Add `time.sleep(3)` inside `action_get_share_url` to simulate a slow network as it isn't possible inside the epiphany devtools - Go to dashboard - Click on Share => NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission. Cause of the issue ================== The delay between the user click
Original PR description
Steps to reproduce ================== - Use Epiphany (a webkit based browser, like Safari) - Add `time.sleep(3)` inside `action_get_share_url` to simulate a slow network as it isn't possible inside the epiphany devtools - Go to dashboard - Click on Share => NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission. Cause of the issue ================== The delay between the user click and the actual copy is to slow for the trused event to be recognized as the origin of the copy. It is thus not allowed. Note that it also fails in Chrome if the document is out of focus in the meantime. Solution ======== Wrap the copy in a try catch. If it fails, the user can always use the copy button. opw-4144551 Forward-Port-Of: odoo/odoo#178852
Version : 17 Steps to Reproduce: Install the Stripe or Adyen Payment Provider. Activate the CashApp payment method. Attempt to make a payment using CashApp at checkout. Issue: Users encounter an error when selecting the CashApp payment method during payment. The error is caused by the use incorrect code of Cash App Pay payment method, resulting in a traceback. Cause: The error occurs because Cash App Pay payment method not mapped with correct code. Fix: Add the correct co
Original PR description
Version : 17 Steps to Reproduce: Install the Stripe or Adyen Payment Provider. Activate the CashApp payment method. Attempt to make a payment using CashApp at checkout. Issue: Users encounter an error when selecting the CashApp payment method during payment. The error is caused by the use incorrect code of Cash App Pay payment method, resulting in a traceback. Cause: The error occurs because Cash App Pay payment method not mapped with correct code. Fix: Add the correct code 'cashapp' to the 'PAYMENT_METHODS_MAPPING' variable of stripe and ayden. opw-4132745 Forward-Port-Of: odoo/odoo#178496
Some keys were named using `-` to separate words some place and `_` some other place. Forward-Port-Of: odoo/odoo#179772
Original PR description
Some keys were named using `-` to separate words some place and `_` some other place. Forward-Port-Of: odoo/odoo#179772
pos: point_of_sale, pos_hr, pos_restaurant, pos_self_order Due to changes needed to comply to the belgian certification, the pos has been adapted to support the new requirements. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177859
Original PR description
pos: point_of_sale, pos_hr, pos_restaurant, pos_self_order Due to changes needed to comply to the belgian certification, the pos has been adapted to support the new requirements. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177859
### Steps to reproduce issue: 1. Create new Expense 2. Give a positive Total Amount, add a Tax and Save 3. Set Total Amount to 0 4. Tax Amount did not nullify 5. In the List view, Total Amount still has the previous value ### Explanation: In `_convert_to_tax_base_line_dict`, `price_unit` is only passed if it has a strictly positive value, otherwise `total_amount_company` is used instead. Since `total_amount_company` is computed using this method, it can never be reset to 0. https:
Original PR description
### Steps to reproduce issue: 1. Create new Expense 2. Give a positive Total Amount, add a Tax and Save 3. Set Total Amount to 0 4. Tax Amount did not nullify 5. In the List view, Total Amount still has the previous value ### Explanation: In `_convert_to_tax_base_line_dict`, `price_unit` is only passed if it has a strictly positive value, otherwise `total_amount_company` is used instead. Since `total_amount_company` is computed using this method, it can never be reset to 0. https://github.com/odoo/odoo/blob/72b84435d69d098d615284d84ef136e8bcd2aaa0/addons/hr_expense/models/hr_expense.py#L226-L232 ### Suggested Fix: The fallback to `total_amount_company` is unnecessary. For `quantity`, the fallback to 1 should only be observed if the quantity is not set. Correcting `_inverse_total_amount` to avoid division by 0. opw-4049853 Forward-Port-Of: odoo/odoo#179099 Forward-Port-Of: odoo/odoo#174484
Steps to reproduce : - Install pos_restaurant - Go to products - Set 2 pos_categories in a product - Open restaurant and add that product to order Issue : Both categories will be shown in order button and also not in correct sequence. Cause : Trying to show all categories and not the dominant once. Fix : Showing only the dominant once to make it more relatable. task: 3976224 Forward-Port-Of: odoo/odoo#170078
Original PR description
Steps to reproduce : - Install pos_restaurant - Go to products - Set 2 pos_categories in a product - Open restaurant and add that product to order Issue : Both categories will be shown in order button and also not in correct sequence. Cause : Trying to show all categories and not the dominant once. Fix : Showing only the dominant once to make it more relatable. task: 3976224 Forward-Port-Of: odoo/odoo#170078
Before this commit, when user duplicate pricelist then new pricelist is created with same name. After this commit, add sufix '(copy)' in newly created pricelist when user duplicate pricelist. task-4035473 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178891 Forward-Port-Of: odoo/odoo#173082
Original PR description
Before this commit, when user duplicate pricelist then new pricelist is created with same name. After this commit, add sufix '(copy)' in newly created pricelist when user duplicate pricelist. task-4035473 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178891 Forward-Port-Of: odoo/odoo#173082
Since 4dfb9259762de we tokenize subscription payment when amount is sufficient, in some case that test was not true because the sum of order's recurring line was greater by an epsilon. This commit compare the two amounts relative the order's currency (rounding). opw-4176380 opw-4162841 opw-4117553 opw-4152609 Forward-Port-Of: odoo/enterprise#69808
Original PR description
Since 4dfb9259762de we tokenize subscription payment when amount is sufficient, in some case that test was not true because the sum of order's recurring line was greater by an epsilon. This commit compare the two amounts relative the order's currency (rounding). opw-4176380 opw-4162841 opw-4117553 opw-4152609 Forward-Port-Of: odoo/enterprise#69808
When there is no article to load, the form view creates a virtual record and saves it when the user closes the page or reloads it. To avoid creating empty articles, we will trigger an urgent save only if the record is dirty. Steps to reproduce the issue: 1. Delete all articles from the database 2. Open the Knowledge editor (you should see the no-content helper) 3. Reload the page (F5) => The system creates a new "Untitled" article (see the list view). TO BE: The system should not cre
Original PR description
When there is no article to load, the form view creates a virtual record and saves it when the user closes the page or reloads it. To avoid creating empty articles, we will trigger an urgent save only if the record is dirty. Steps to reproduce the issue: 1. Delete all articles from the database 2. Open the Knowledge editor (you should see the no-content helper) 3. Reload the page (F5) => The system creates a new "Untitled" article (see the list view). TO BE: The system should not create any article when reloading the view. task-4167335 Forward-Port-Of: odoo/enterprise#69560
### Steps to reproduce: - Install eCommerce and Subscription modules - Create a recurring product - Add a comparison price in the product's form - Have only one plan for the recurrence - Go to the product's page in eCommerce ### Current behavior before PR: If you set a comparison price for a recurring product that has only one plan it won't be shown at the product's page in eCommerce this starts happening after this commit https://github.com/odoo/enterprise/pull/53591/commits/325e9
Original PR description
### Steps to reproduce: - Install eCommerce and Subscription modules - Create a recurring product - Add a comparison price in the product's form - Have only one plan for the recurrence - Go to the product's page in eCommerce ### Current behavior before PR: If you set a comparison price for a recurring product that has only one plan it won't be shown at the product's page in eCommerce this starts happening after this commit https://github.com/odoo/enterprise/pull/53591/commits/325e9fa35486b1fa0c3622e93eef5eac54b22cf1 ### Desired behavior after PR is merged: We are now showing the striked price if we only have one plan for recurrency. opw-3990890 Forward-Port-Of: odoo/enterprise#69582
Before this commit, assignment emails are sent when an account.move is created with a different user_id than the current one. For subscriptions it can send thousands of email depending on the database size. The user_id on the account.move is the same salesperson than the one in charge of the sale.order. It helps the consistency of communication between the customer and the company. taskid: 4096474 Forward-Port-Of: odoo/enterprise#68752
Original PR description
Before this commit, assignment emails are sent when an account.move is created with a different user_id than the current one. For subscriptions it can send thousands of email depending on the database size. The user_id on the account.move is the same salesperson than the one in charge of the sale.order. It helps the consistency of communication between the customer and the company. taskid: 4096474 Forward-Port-Of: odoo/enterprise#68752
Before this commit, in studio, the editorMenu was not updated when clicking on a different tab (views, automations etc...) After this commit, the menu is updated. Forward-Port-Of: odoo/enterprise#69809 Forward-Port-Of: odoo/enterprise#69795
Original PR description
Before this commit, in studio, the editorMenu was not updated when clicking on a different tab (views, automations etc...) After this commit, the menu is updated. Forward-Port-Of: odoo/enterprise#69809 Forward-Port-Of: odoo/enterprise#69795
Changes were required to make the version 17.2 of the PoS certified by the Belgian government. This commit includes the necessary changes to the pos_blackbox_be module. A summary of these can be found below: - Added the global discount option in certified pos - Added fields to the log of orders - Correct loging of orders - Remove the option to download the receipt - Automatic work in/out for the employees - Remove the possibility to refund work in/out - Precision made to the sales re
Original PR description
Changes were required to make the version 17.2 of the PoS certified by the Belgian government. This commit includes the necessary changes to the pos_blackbox_be module. A summary of these can be found below: - Added the global discount option in certified pos - Added fields to the log of orders - Correct loging of orders - Remove the option to download the receipt - Automatic work in/out for the employees - Remove the possibility to refund work in/out - Precision made to the sales report - Added some restriction on the settings of a pos_config - Remove the possibility of multi-company when using a certified pos - Corrected some behavior that were not meeting requirements (split,...) Forward-Port-Of: odoo/enterprise#68838
Currently, an exception is generated when the user tries to open the "Cash Flow Statement" report. Steps to produce an error: - install 'Accounting Reports' - Open Accounting > Configuration > Accounting > Journals - Now delete all journals except "Miscellaneous Operations" - change type of "Miscellaneous Operations" to sales > sale - Click Reporting > click "Cash Flow Statement" >>> exception occurs Stack Trace: ``` SyntaxError: syntax error at or near ")" LINE 28: ...
Original PR description
Currently, an exception is generated when the user tries to open the "Cash Flow Statement" report. Steps to produce an error: - install 'Accounting Reports' - Open Accounting > Configuration >…
Currently, an exception is generated when the user tries to open the "Cash Flow Statement" report.
Steps to produce an error:
- install 'Accounting Reports'
- Open Accounting > Configuration > Accounting > Journals
- Now delete all journals except "Miscellaneous Operations"
- change type of "Miscellaneous Operations" to sales > sale
- Click Reporting > click "Cash Flow Statement" >>> exception occurs
Stack Trace:
```
SyntaxError: syntax error at or near ")"
LINE 28: ... AND account_move_line.account_id NOT IN ((), ())
^
File "odoo/http.py", line 2373, in __call__
response = request._serve_db()
File "odoo/http.py", line 1903, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1966, 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 1933, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2177, 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 754, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 459, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 4872, in get_report_information
'lines': self._get_lines(options, all_column_groups_expression_totals=all_column_groups_expression_totals, warnings=warnings),
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 2275, in _get_lines
dynamic_lines = self._get_dynamic_lines(options, all_column_groups_expression_totals, warnings=warnings)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 2705, in _get_dynamic_lines
rslt = self.env[self.custom_handler_model_name]._dynamic_lines_generator(self, options, all_column_groups_expression_totals, warnings=warnings)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_cash_flow_report.py", line 16, in _dynamic_lines_generator
report_data = self._get_report_data(report, options, layout_data)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_cash_flow_report.py", line 57, in _get_report_data
for aml_groupby_account in self._get_liquidity_moves(report, options, currency_table_query, payment_account_ids, cashflow_tag_ids):
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_cash_flow_report.py", line 365, in _get_liquidity_moves
self._cr.execute(SQL(' UNION ALL ').join(queries))
File "odoo/sql_db.py", line 347, in execute
res = self._obj.execute(query, params)
```
This is because at the time of query building for getting liquidity moves, it gets an empty tuple from line [1] as we do not have any journals with the type 'bank', 'cash', or 'general'.
This commit will fix the above issue by returning empty report_data when payment_account_ids is empty.
[1] - https://github.com/odoo/enterprise/blob/8fa01948610809d191b75260772782e25ea3a737/account_reports/models/account_cash_flow_report.py#L195
sentry-5555757610
Forward-Port-Of: odoo/enterprise#67928eBay recently changed the URL they send in the viewitemURL. We found 3 different ways they send it, but there might be more. And the new ones can only be matched to the product template, not variant. We shouldn't have relied on this URL to match products in the beginning, but we can't refactor this flow in stable, instead, we fallback on the name of the variant, as it was created from eBay. opw-3934127 Forward-Port-Of: odoo/enterprise#69152
Original PR description
eBay recently changed the URL they send in the viewitemURL. We found 3 different ways they send it, but there might be more. And the new ones can only be matched to the product template, not variant. We shouldn't have relied on this URL to match products in the beginning, but we can't refactor this flow in stable, instead, we fallback on the name of the variant, as it was created from eBay. opw-3934127 Forward-Port-Of: odoo/enterprise#69152
no task Forward-Port-Of: odoo/enterprise#69643
Original PR description
no task Forward-Port-Of: odoo/enterprise#69643
…g from it How to reproduce: - Install documents_hr - Open Employee -> "Abigail Peterson" -> stats button Documents - Upload a file The document is not linked to the employee record "Abigail Peterson". With this fix, it is and you can see it in the inspector of that document: "Employee Abigail Peterson" Task-4122377 Forward-Port-Of: odoo/enterprise#68959 Forward-Port-Of: odoo/enterprise#68541
Original PR description
…g from it How to reproduce: - Install documents_hr - Open Employee -> "Abigail Peterson" -> stats button Documents - Upload a file The document is not linked to the employee record "Abigail Peterson". With this fix, it is and you can see it in the inspector of that document: "Employee Abigail Peterson" Task-4122377 Forward-Port-Of: odoo/enterprise#68959 Forward-Port-Of: odoo/enterprise#68541
This commit fix a design issue in the hr_payroll where the "Availability in Structure" field was incorrectly positioned among other input types. task-4050183 Forward-Port-Of: odoo/enterprise#69761 Forward-Port-Of: odoo/enterprise#67532
Original PR description
This commit fix a design issue in the hr_payroll where the "Availability in Structure" field was incorrectly positioned among other input types. task-4050183 Forward-Port-Of: odoo/enterprise#69761 Forward-Port-Of: odoo/enterprise#67532