Tuesday, November 5, 2024
31 changes · saas-17.2
Resolved issues and error corrections
Companies in countries without a dedicated accounting template will now receive the generic chart of accounts instead of being blocked by country matching rules. This helps new company setup work correctly in places such as Fiji while still allowing country-specific localizations to take precedence when available.
Original PR description
A previous fix[^1] prevents installing a wrong l10n if the country doesn't match. But it should still match if the template is not for a specific country. For instance, Fiji should instanciate the generic CoA. If a better one should be installed instead, the hook will be overridden when the module will be installed thanks to the `countries` flag of the l10n manifests. [^1]: 7f3a094a117477833b2814f0cfd3d574c6c22b53
Miscellaneous changes
The problem: In the accounting reports, filter options were not being translated. Steps to reproduce: Install and change to the Danish language. Navigate to Accounting > Reporting > Partner ledger (Kontoudtog) Activate the filter "Only Show Unreconciled Entries" (Vis kun ikke udlignede posteringer) Generate the PDF report. Why it was happening: The array `extra_options` was built dynamically by concatenating raw python strings to it. Those raw strings will not be translated. The f
Original PR description
The problem: In the accounting reports, filter options were not being translated. Steps to reproduce: Install and change to the Danish language. Navigate to Accounting > Reporting > Partner ledger (Kontoudtog) Activate the filter "Only Show Unreconciled Entries" (Vis kun ikke udlignede posteringer) Generate the PDF report. Why it was happening: The array `extra_options` was built dynamically by concatenating raw python strings to it. Those raw strings will not be translated. The fix: Now, we create local variables for each string, using the syntax `<t t-set="label_raw_string">Raw String</t>` which makes the string label_raw_string translatable, then we append it to `extra_options`. opw-4213562 Forward-Port-Of: odoo/enterprise#72870
Before this PR: - POS order lines were matched without sorting `tax_ids`, which could cause mismatches when the tax IDs were in a different order between `details_pos_line` and `account_move_line`. After this PR: - POS order lines are matched by comparing `tax_ids` in sorted order, ensuring consistent matching regardless of the order of tax IDs. Forward-Port-Of: odoo/enterprise#73268
Original PR description
Before this PR: - POS order lines were matched without sorting `tax_ids`, which could cause mismatches when the tax IDs were in a different order between `details_pos_line` and `account_move_line`. After this PR: - POS order lines are matched by comparing `tax_ids` in sorted order, ensuring consistent matching regardless of the order of tax IDs. Forward-Port-Of: odoo/enterprise#73268
after this [FIX](https://github.com/odoo/enterprise/commit/ffcc8c425b53df94d79ace17fb444504df8acd52), the access to answers of feedbacks is restricted to the manager of appraisals, but the officer should have access too. this commit fixes this issue. opw-4128638 Forward-Port-Of: odoo/enterprise#72357
Original PR description
after this [FIX](https://github.com/odoo/enterprise/commit/ffcc8c425b53df94d79ace17fb444504df8acd52), the access to answers of feedbacks is restricted to the manager of appraisals, but the officer should have access too. this commit fixes this issue. opw-4128638 Forward-Port-Of: odoo/enterprise#72357
Steps to reproduce ================== - Install account_accountant,web_studio - Go to an invoice - Set the partner's language to French - Print the Invoice without Paiement PDF - Open studio - Edit that report - Add a new text below the invoice header - Save the report and exit studio - Print the same report => Some fields aren't translated Cause of the issue ================== When editing the report, ```xml <strong>Due Date:</strong><br/> ``` is converted to ```xml
Original PR description
Steps to reproduce ================== - Install account_accountant,web_studio - Go to an invoice - Set the partner's language to French - Print the Invoice without Paiement PDF - Open studio - Edit that report - Add a new text below the invoice header - Save the report and exit studio - Print the same report => Some fields aren't translated Cause of the issue ================== When editing the report, ```xml <strong>Due Date:</strong><br/> ``` is converted to ```xml <strong>Due Date:</strong> <br/> ``` This no longer matches the translation key. opw-3730267 Forward-Port-Of: odoo/enterprise#72393
small fix related to following bugfix: https://github.com/odoo/enterprise/pull/72526 Forward-Port-Of: odoo/enterprise#73081
Original PR description
small fix related to following bugfix: https://github.com/odoo/enterprise/pull/72526 Forward-Port-Of: odoo/enterprise#73081
The error Avalara returns for this is too generic to be useful: Rejeição: Evento não atende o Schema XML específico We found out by contacting Avalara support that the error in this case was a reason that was too short. Let's prevent this from re-occuring. opw-4298175 Forward-Port-Of: odoo/enterprise#73209
Original PR description
The error Avalara returns for this is too generic to be useful: Rejeição: Evento não atende o Schema XML específico We found out by contacting Avalara support that the error in this case was a reason that was too short. Let's prevent this from re-occuring. opw-4298175 Forward-Port-Of: odoo/enterprise#73209
This commit is a backport of https://github.com/odoo/enterprise/commit/e2da8c4fbbfb50ddc033cf30885fef4394cbe2dc It enables printing receipts in the kiosk using the iot which was not supported before. opw-4120145 Forward-Port-Of: odoo/enterprise#69906
Original PR description
This commit is a backport of https://github.com/odoo/enterprise/commit/e2da8c4fbbfb50ddc033cf30885fef4394cbe2dc It enables printing receipts in the kiosk using the iot which was not supported before. opw-4120145 Forward-Port-Of: odoo/enterprise#69906
- Added 'post_install' and '-at_install' tags to ensure the test is executed after all modules are installed, necessary for `test_skill_search_on_ocr_results` to run fully. - Fixed the test to detect when no skills were being added to the applicant, even though some should have been. - Updated the skills search regex: replaced `\s` tags with `\b` tags to correctly detect the first and last words in `ocr_tokens`. Forward-Port-Of: odoo/enterprise#70862
Original PR description
- Added 'post_install' and '-at_install' tags to ensure the test is executed after all modules are installed, necessary for `test_skill_search_on_ocr_results` to run fully. - Fixed the test to detect when no skills were being added to the applicant, even though some should have been. - Updated the skills search regex: replaced `\s` tags with `\b` tags to correctly detect the first and last words in `ocr_tokens`. Forward-Port-Of: odoo/enterprise#70862
**Steps to reproduce:** - Install l10n_pk_reports - Switch to a Pakistani company (e.g. PK Company) - Create a Journal entry crediting an account of "Other Income" type (e.g. 3112003 Misc Income) - Post the journal entry - Go to "Accounting / Reporting / Statement Reports / Profit and Loss" - Select "Profit and Loss (PK)" report **Issue:** The created journal entry is negative in the "Other Income" section and its value is subtracted from "Gross Profit" section, reducing "Profit of the
Original PR description
**Steps to reproduce:** - Install l10n_pk_reports - Switch to a Pakistani company (e.g. PK Company) - Create a Journal entry crediting an account of "Other Income" type (e.g. 3112003 Misc Income) - Post the journal entry - Go to "Accounting / Reporting / Statement Reports / Profit and Loss" - Select "Profit and Loss (PK)" report **Issue:** The created journal entry is negative in the "Other Income" section and its value is subtracted from "Gross Profit" section, reducing "Profit of the Year" section, which is not correct. On the other hand, if the normal "Profit and Loss" report is selected, the created journal entry is positive and its value is added to "Gross Profit" section, increasing "Net Profit" section, which is correct. opw-4185212 Forward-Port-Of: odoo/enterprise#72378
…anys Have a ir.default that sets one line into a one2many on some models. In studio, edit the form view of the main model, then navigate to edit the one2many, with the ir.default having been triggered (there is one virual line in the one2many). Before this commit there was a crash because "false" is not a valid id for the staticlist. After this commit, there is no crash, and the virtual record doesn't appear. opw-4289233 Forward-Port-Of: odoo/enterprise#73220
Original PR description
…anys Have a ir.default that sets one line into a one2many on some models. In studio, edit the form view of the main model, then navigate to edit the one2many, with the ir.default having been triggered (there is one virual line in the one2many). Before this commit there was a crash because "false" is not a valid id for the staticlist. After this commit, there is no crash, and the virtual record doesn't appear. opw-4289233 Forward-Port-Of: odoo/enterprise#73220
Fixed onboarding Email Marketing tour which is not working properly. Reason ====== We're not getting this `'input[name="subject"]',` trigger for some reasons, & there is no `name` attribute with input. we do have `id` in input, but in v16 we got id as `subject` and v17+ gets `subject_0` so that can't be used. Also, the next trigger should be after user click on input field not when they write. One more point, sometimes it got stuck after selecting a theme and did not shows the pointer
Original PR description
Fixed onboarding Email Marketing tour which is not working properly. Reason ====== We're not getting this `'input[name="subject"]',` trigger for some reasons, & there is no `name` attribute with input. we do have `id` in input, but in v16 we got id as `subject` and v17+ gets `subject_0` so that can't be used. Also, the next trigger should be after user click on input field not when they write. One more point, sometimes it got stuck after selecting a theme and did not shows the pointer. Fixed/Improved that & used common classes that works on all version. Task-4210376 Forward-Port-Of: odoo/odoo#185028 Forward-Port-Of: odoo/odoo#182034
Steps to reproduce: ==== - Create a promotion program - Rule: Condition --> Select combo product, Reward --> type - discount specific product - Combo product - Open POS and add combo product. - Click on reward button and select on available reward. Issue: === - Promotion is not applied if combo product is added. Fix: === - Previously, when a specific combo product was added as a loyalty reward, it wasn’t properly handled in promotions. This update ensures that combo products in
Original PR description
Steps to reproduce: ==== - Create a promotion program - Rule: Condition --> Select combo product, Reward --> type - discount specific product - Combo product - Open POS and add combo product. - Click on reward button and select on available reward. Issue: === - Promotion is not applied if combo product is added. Fix: === - Previously, when a specific combo product was added as a loyalty reward, it wasn’t properly handled in promotions. This update ensures that combo products included in loyalty rewards and promotion is applied. task-4285895 Forward-Port-Of: odoo/odoo#185780
When an iFrame and its parent document are from different origins, contentDocument is null. See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentDocument This will cause an error when interacting with an iFrame that contains a Google Slide, which is from a different origin. Due to this, we need to check that there's a contentDocument before trying to use its content. opw-4240622 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com
Original PR description
When an iFrame and its parent document are from different origins, contentDocument is null. See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/contentDocument This will cause an error when interacting with an iFrame that contains a Google Slide, which is from a different origin. Due to this, we need to check that there's a contentDocument before trying to use its content. opw-4240622 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185107
This PR aims to solve an old issue that was not fixed with the Milk redesign. Prior to this PR, there were different layout issues including colors, sizes, or dark mode adaptations. These issues were making the view looking different from the other one, resulting in consistencies issues. This PR tweaks some CSS in order to handle most of these issues. task-3713647 | /// | 17.0 | This PR | |--------|--------|--------| | LM | <img alt="image" src="https://github.com/user-attachments/
Original PR description
This PR aims to solve an old issue that was not fixed with the Milk redesign. Prior to this PR, there were different layout issues including colors, sizes, or dark mode adaptations. These issues were…
This PR aims to solve an old issue that was not fixed with the Milk redesign. Prior to this PR, there were different layout issues including colors, sizes, or dark mode adaptations. These issues were making the view looking different from the other one, resulting in consistencies issues. This PR tweaks some CSS in order to handle most of these issues. task-3713647 | /// | 17.0 | This PR | |--------|--------|--------| | LM | <img alt="image" src="https://github.com/user-attachments/assets/09eba47a-8d9e-4a4b-af73-f8f83321a454"> | <img alt="image" src="https://github.com/user-attachments/assets/bea7c02c-2118-4262-9433-52cddd99e7e7"> | | DM | <img alt="image" src="https://github.com/user-attachments/assets/416bd1a5-9c7f-44d7-a78d-f479074f5f42"> | <img width="1530" alt="image" src="https://github.com/user-attachments/assets/9fb77db6-7752-403a-82de-9d03b9fe46e6"> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186156
[MOV] web_editor, website: move isImageCorsProtected function in utils The goal of this commit is to move the `isImageCorsProtected()` function in the `web_editor` utils as it is will be needed in the next commit. opw-3959983 ---------------------------------------------------------------------------------------------------------------------------------------------- [FIX] web_editor,*: forbid the change of image field by webp CORS image *: website_sale The goal of this commit
Original PR description
[MOV] web_editor, website: move isImageCorsProtected function in utils The goal of this commit is to move the `isImageCorsProtected()` function in the `web_editor` utils as it is will be needed in…
[MOV] web_editor, website: move isImageCorsProtected function in utils The goal of this commit is to move the `isImageCorsProtected()` function in the `web_editor` utils as it is will be needed in the next commit. opw-3959983 ---------------------------------------------------------------------------------------------------------------------------------------------- [FIX] web_editor,*: forbid the change of image field by webp CORS image *: website_sale The goal of this commit is to avoid that a user replaces an image field by a webp CORS protected image (e.g. https://www.gstatic.com/webp/gallery/1.webp). There are two main reasons for that: - As explained in [1], the resized images have to be generated when a webp image has been uploaded. This is something that we are currently not able to do for CORS protected images. - As explained in [2], a jpeg image has to be generated when a webp image has been uploaded. This is also something that we are currently not able to do for CORS protected images. We also apply the same logic for the addition of extra product images. Indeed, in this case, when choosing an image among the existing attachments or when uploading new images, we can not rely on DOM information to determine if the changed image is an image field as the image is not already part of the DOM. [1]: https://github.com/odoo/odoo/commit/0ba3617f9dacf2a63288b30245a610782d943c5a [2]: https://github.com/odoo/odoo/commit/c035d0003d09289fde0aabcb21849c2914524c01 opw-3959983 ----------------------------------------------------------------------------------------------------------------------------------------------------------- [FIX] website_sale: avoid converting some extra images to webp Steps to reproduce the bug: - Go on a product page. - Enter in edit mode and click on "Add Extra Images". - Click on "Add URL" and upload an external CORS protected image (e.g. https://tinyjpg.com/images/social/website.jpg). - Click on "Add" to use this image as an external image. -> Error. Since [3], images uploaded through the website builder that are neither gif nor svg are converted to the webp format by default except if those images are CORS protected. The goal of this commit is to adapt [4] to follow the same logic and not convert uploaded product extra image to webp if the image is CORS protected. [3]: https://github.com/odoo/odoo/commit/0449fe85cb0e1d639a4e1aeba26e90906f79254d [4]: https://github.com/odoo/odoo/commit/b284293c18b6bcdafe2bda989c5e0a084d1acbd1 opw-3959983 Forward-Port-Of: odoo/odoo#169628
Previously, reordering the child menu of a newly added menu item didn't reflect immediately in the UI, and was only shown once saved. This fix ensures that new menu and its child items are updated correctly after reordering, both visually and functionally, without requiring a save action. The `addMenu` function now adds new menu item to the state before updating the internal map. The internal map is then updated with a reference to the state.This ensures that changes to the menu are immedi
Original PR description
Previously, reordering the child menu of a newly added menu item didn't reflect immediately in the UI, and was only shown once saved. This fix ensures that new menu and its child items are updated correctly after reordering, both visually and functionally, without requiring a save action. The `addMenu` function now adds new menu item to the state before updating the internal map. The internal map is then updated with a reference to the state.This ensures that changes to the menu are immediately reflected in the UI, as the internal map have reference to the updated state. task-3969045 Forward-Port-Of: odoo/odoo#180180
Currently, when a discount is applied on a specific pos order line, the receipt does not reflect the original price of the article. Steps to reproduce: ------------------- * Open shop session * Add any product to the order * Apply a discount on that order line * Validate and pay order > Observation: The original price of the order is not reflected Why the fix: ------------ We now show the original price, without the discount, on the receipt. opw-4179118 Before: ---------
Original PR description
Currently, when a discount is applied on a specific pos order line, the receipt does not reflect the original price of the article. Steps to reproduce: ------------------- * Open shop session * Add any product to the order * Apply a discount on that order line * Validate and pay order > Observation: The original price of the order is not reflected Why the fix: ------------ We now show the original price, without the discount, on the receipt. opw-4179118 Before: ---------  After: -------  Forward-Port-Of: odoo/odoo#183506
Steps to reproduce ================== - Install crm - Go to CRM - Open a record - Open actions menu (cog icon next to breadcrumbs) - Add Properties - Set a value to the new property - Go back to kanban view - Switch to list view - Check the property field in optional columns menu to show the column - Remove "My Pipeline" filter - Add "My Pipeline" filter - The property column does not exist anywhere anymore Cause of the issue ================== The relational model adds mod
Original PR description
Steps to reproduce ================== - Install crm - Go to CRM - Open a record - Open actions menu (cog icon next to breadcrumbs) - Add Properties - Set a value to the new property - Go back to kanban view - Switch to list view - Check the property field in optional columns menu to show the column - Remove "My Pipeline" filter - Add "My Pipeline" filter - The property column does not exist anywhere anymore Cause of the issue ================== The relational model adds model info in a global shared field definition object and then list renderer uses these info for properties fields. The search bar also uses this object and adds properties fields info. Both are adding and using incompatible info. Solution ======== Define correctly the minimum acceptable of the properties definitions when needed in the model and do not add model info in these definitions. opw-4264560 Forward-Port-Of: odoo/odoo#185828
To reproduce: ============= - with service product S with create project & task - create sale order with that product - with another service product E with Re-invoice Expenses at cost - create expense with this product and link it to the first sale order - go back to sale order, we find product E added to sale order - create invoice and post it Problem: ======== on project updates we have the expense + the customer invoice which gives wrong profits in stats Solution: ========= e
Original PR description
To reproduce: ============= - with service product S with create project & task - create sale order with that product - with another service product E with Re-invoice Expenses at cost - create expense with this product and link it to the first sale order - go back to sale order, we find product E added to sale order - create invoice and post it Problem: ======== on project updates we have the expense + the customer invoice which gives wrong profits in stats Solution: ========= exclude the customer invoice from the revenues when it's linked to an expense, as the expense is already included in the revenues opw-4000095 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186078 Forward-Port-Of: odoo/odoo#182165
Versions -------- - 16.0 - 17.0 - saas-17.2 Backport of https://github.com/odoo/odoo/pull/185169, which fixed this in saas-17.4. Steps ----- 1. Set eCommerce prices to display tax included; 2. have a discount code program; 3. add a deliverable product to cart; 4. apply discount code; 5. click "Proceed to Checkout"; 6. open web inspector on the discount amount in the cart summary. Issue ----- The `span` element doesn't have the `data-reward-type="discount"` attribute. Cau
Original PR description
Versions -------- - 16.0 - 17.0 - saas-17.2 Backport of https://github.com/odoo/odoo/pull/185169, which fixed this in saas-17.4. Steps ----- 1. Set eCommerce prices to display tax included; 2. have a discount code program; 3. add a deliverable product to cart; 4. apply discount code; 5. click "Proceed to Checkout"; 6. open web inspector on the discount amount in the cart summary. Issue ----- The `span` element doesn't have the `data-reward-type="discount"` attribute. Cause ----- The template adding the attribute, only adds it to the first child element, which displays the price tax excluded. Solution -------- Add an `xpath` template to also add it to the second one. opw-4284046 Forward-Port-Of: odoo/odoo#186074 Forward-Port-Of: odoo/odoo#185440
Issue: When printing an employee badge for an employee without a job position, the default title was set to "Software Developer." Steps to Reproduce: -Create an employee with an empty job position. -Alternatively, remove the job position of an existing employee. -Generate and print a badge (in HR settings). Explanation: In `hr_employee_badge.xml`, the default value was set to "Software Developer." opw-4255102 --- I confirm I have signed the CLA and read the PR guidelines at www.
Original PR description
Issue: When printing an employee badge for an employee without a job position, the default title was set to "Software Developer." Steps to Reproduce: -Create an employee with an empty job position. -Alternatively, remove the job position of an existing employee. -Generate and print a badge (in HR settings). Explanation: In `hr_employee_badge.xml`, the default value was set to "Software Developer." opw-4255102 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185458
Description of the issue/feature this PR addresses: TestAPIKeys.test_delete creates an user, which might trigger an automated action. However that action would fail [here](https://github.com/odoo/odoo/blob/17.0/addons/base_automation/models/base_automation.py#L67), since the mockup request that is set up in the test does not include a function request.get_json_data() nor request.httprequest.args Current behavior before PR: The test fails on databases that have an automated action triggered
Original PR description
Description of the issue/feature this PR addresses: TestAPIKeys.test_delete creates an user, which might trigger an automated action. However that action would fail [here](https://github.com/odoo/odoo/blob/17.0/addons/base_automation/models/base_automation.py#L67), since the mockup request that is set up in the test does not include a function request.get_json_data() nor request.httprequest.args Current behavior before PR: The test fails on databases that have an automated action triggered on user creation Desired behavior after PR is merged: This test should not fail on such databases This issue has been discussed [here](https://discord.com/channels/678381219515465750/687339689522364423/1300410221482479636) Forward-Port-Of: odoo/odoo#185493
Apart from the wrong domain, the performance issues are also huge. Description of the issue/feature this PR addresses: Wrong code. Wrong domain, affecting also performance 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#179683
Original PR description
Apart from the wrong domain, the performance issues are also huge. Description of the issue/feature this PR addresses: Wrong code. Wrong domain, affecting also performance 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#179683
* line._origin can be empty recordset so when line._origin.name it will return False then we compare it to result of inner function get_name which will be wrong because '\n'.join(values) will return empty string '' because line is empty so values is empty also . This commit correctly set the correct return value for inner function which introduce in [1]. This will allow custom module can recompute the label by different api.depends [1]: https://github.com/odoo/odoo/pull/182136/commits/2dee06
Original PR description
* line._origin can be empty recordset so when line._origin.name it will return False then we compare it to result of inner function get_name which will be wrong because '\n'.join(values) will return empty string '' because line is empty so values is empty also . This commit correctly set the correct return value for inner function which introduce in [1]. This will allow custom module can recompute the label by different api.depends [1]: https://github.com/odoo/odoo/pull/182136/commits/2dee061cb022e15c60539b987a87f8225cdc4881 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#183891
The test was failing in winter because of the offset is -005 and not -004. The test is mainly there to check that a non migrated tz will behave as the replacement tz. Making the expected offset dynamic solve the issue. Runbot error: 105674 Forward-Port-Of: odoo/odoo#186108
Original PR description
The test was failing in winter because of the offset is -005 and not -004. The test is mainly there to check that a non migrated tz will behave as the replacement tz. Making the expected offset dynamic solve the issue. Runbot error: 105674 Forward-Port-Of: odoo/odoo#186108
### Steps to reproduce the issue: 1. Activate Italian Localization 2. Create a contact in any country but Italy 3. Assign VAT number starting with 'IT' (Tax ID or Identification Number) 4. Save and receive error: > Invalid Codice Fiscale '[VAT number]': should be like 'MRTMTT91D08F205J' for physical person and '12345670546' for businesses. ### Explanation: When `country_id` or `vat` is changing, `_l10n_it_onchange_vat` will try to create a `l10n_it_codice_fiscale` if `res.part
Original PR description
### Steps to reproduce the issue: 1. Activate Italian Localization 2. Create a contact in any country but Italy 3. Assign VAT number starting with 'IT' (Tax ID or Identification Number) 4. Save and…
### Steps to reproduce the issue: 1. Activate Italian Localization 2. Create a contact in any country but Italy 3. Assign VAT number starting with 'IT' (Tax ID or Identification Number) 4. Save and receive error: > Invalid Codice Fiscale '[VAT number]': should be like 'MRTMTT91D08F205J' for physical person and '12345670546' for businesses. ### Explanation: When `country_id` or `vat` is changing, `_l10n_it_onchange_vat` will try to create a `l10n_it_codice_fiscale` if `res.partner` respects some conditions. Those conditions are flawed because if `country_id` is not Italy but `vat` starts with "IT", it will enter the condition. (Kind of a hack: if `country_id` is set after a `l10n_it_codice_fiscale` has been added to `res.partner`, the first condition will not be met but the second will, and `l10n_codice_fiscale` will turn back to False.) ### Fix reasoning: We will only check conditions related to `vat` and `country_id` and always perform changes to avoid inconsistencies where `vat` is no longer correct but `l10n_it_codice_fiscale` did not change and is still valid. opw-4261959 Forward-Port-Of: odoo/odoo#185604 Forward-Port-Of: odoo/odoo#184406
…Exempt tax for sale and purchase Description of the issue/feature this PR addresses: The current GST/HST report tax report (Canada) have a missing lines for 90 and 91 as per the Canada Revenue agency Instructions of tax report Added Exempt tax which is 0% in the Exempt category: More info found at: https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4022/general-information-gst-hst-registrants.html#H1_106 More details for lines 90, 91, and 101: https:
Original PR description
…Exempt tax for sale and purchase Description of the issue/feature this PR addresses: The current GST/HST report tax report (Canada) have a missing lines for 90 and 91 as per the Canada Revenue agency Instructions of tax report Added Exempt tax which is 0% in the Exempt category: More info found at: https://www.canada.ca/en/revenue-agency/services/forms-publications/publications/rc4022/general-information-gst-hst-registrants.html#H1_106 More details for lines 90, 91, and 101: https://www.canada.ca/en/revenue-agency/services/tax/businesses/topics/gst-hst-businesses/complete-file-instructions.html#lines909102 Current behavior before PR: Current Tax report missing line 90 and 91: Desired behavior after PR is merged: The tax report should have lines 90 and 91 and line 101 computed based on lines 90 and 91. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#184597
Steps ----- - Install l10n_fr_hr_holidays - Use french company and be in a timezone different than UTC - Set your user's employee to use a different working hours schedule than the french company - Take a day of paid time off -> Two days of paid time off appear on the Dashboard (if not in an UTC timezone). Cause ----- For full days leaves, the hours are set to min and max to avoid calculation issues https://github.com/odoo/odoo/blob/24e100a5acf7531787a646ff1473c4b027d1ad12/addons/l
Original PR description
Steps ----- - Install l10n_fr_hr_holidays - Use french company and be in a timezone different than UTC - Set your user's employee to use a different working hours schedule than the french company - Take a day of paid time off -> Two days of paid time off appear on the Dashboard (if not in an UTC timezone). Cause ----- For full days leaves, the hours are set to min and max to avoid calculation issues https://github.com/odoo/odoo/blob/24e100a5acf7531787a646ff1473c4b027d1ad12/addons/l10n_fr_hr_holidays/models/hr_leave.py#L39-L40 But is not converted to UTC time, leading to the leave being displayed over several days if not created by a user in UTC time. Change ----- For full days leaves, adjust the start and end time of the leave in the same way that is currently done for half days. This also makes the leave's hours closer to reality. opw-4203972 Forward-Port-Of: odoo/odoo#182816
This commits fixes the display of the kiosk mode for smaller resolutions (welcome screen, PIN code screen). opw-4264565 Forward-Port-Of: odoo/odoo#185309
Original PR description
This commits fixes the display of the kiosk mode for smaller resolutions (welcome screen, PIN code screen). opw-4264565 Forward-Port-Of: odoo/odoo#185309
Steps to reproduce ------------------ 1. Create a SO with a product with with the "Prepaid" Invoice Policy and "Hours" unit that creates a task in a project. 2. Create a new billable project and a task in that project, and set the partner of the SO created earlier on the new task. 3. Set the SOL of the SO from step 1 on the task. 4. Check that in the Timesheets notebook, you see a value for "Time Remaining on SO". 5. Go to the reporting and group by project, and display the "Time Remaining
Original PR description
Steps to reproduce ------------------ 1. Create a SO with a product with with the "Prepaid" Invoice Policy and "Hours" unit that creates a task in a project. 2. Create a new billable project and a task in that project, and set the partner of the SO created earlier on the new task. 3. Set the SOL of the SO from step 1 on the task. 4. Check that in the Timesheets notebook, you see a value for "Time Remaining on SO". 5. Go to the reporting and group by project, and display the "Time Remaining on SO". 6. There is a value for the project generated by the SO, but not for the one created manually. --- This bug occurs because we only account for the task generated by a SOL of the SO when computing the remaining hours on SO in the reporting. This PR fixes the way it is computed. Task-4280965 Forward-Port-Of: odoo/odoo#184915