Friday, September 6, 2024
51 changes · saas-17.2
Resolved issues and error corrections
Creating foreign taxes for a fiscal position could fail for some countries when a tax group had no child taxes defined. The accounting setup now handles this case correctly, preventing an error and allowing users to complete the foreign tax configuration.
Original PR description
Create a new Fiscal Position and set Country: Austria Foreign Tax ID: ATU79284409 Click "here" to create the taxes for this country. Traceback will raise "KeyError: 'children_tax_ids'" This occurs because the system tries to load the children tax of a tax group with no child defined opw-4134352
Miscellaneous changes
This commit adds the missing neutralization necessary for the l10n_uy_edi module introduced in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is ma
Original PR description
This commit adds the missing neutralization necessary for the l10n_uy_edi module introduced in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] https://github.com/odoo/enterprise/pull/51266 Forward-Port-Of: odoo/enterprise#69555
Problem: When a model is selected that the user doesn't have access to, a traceback is shown instead of a clear error message. Steps to reproduce: - Install Data Cleaning. - Go to Data Cleaning > Configuration > Duplication. - In the Model field, select "Account Chart Template". - A traceback occurs. opw-4113923 Forward-Port-Of: odoo/enterprise#68634
Original PR description
Problem: When a model is selected that the user doesn't have access to, a traceback is shown instead of a clear error message. Steps to reproduce: - Install Data Cleaning. - Go to Data Cleaning > Configuration > Duplication. - In the Model field, select "Account Chart Template". - A traceback occurs. opw-4113923 Forward-Port-Of: odoo/enterprise#68634
missed one during odoo/enterprise#69630
Original PR description
missed one during odoo/enterprise#69630
Steps to reproduce: - Subscriptions > New > Set recurrence - Set 'Date of next invoice' in the future - Renew This should raise a ValidationError because renewing a subscription which was never started (no invoice) is invalid, as specified in the error message "You cannot upsell or renew a subscription that has not been invoiced yet". opw-4116538 Forward-Port-Of: odoo/enterprise#69361
Original PR description
Steps to reproduce: - Subscriptions > New > Set recurrence - Set 'Date of next invoice' in the future - Renew This should raise a ValidationError because renewing a subscription which was never started (no invoice) is invalid, as specified in the error message "You cannot upsell or renew a subscription that has not been invoiced yet". opw-4116538 Forward-Port-Of: odoo/enterprise#69361
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a backorder - Create a product P (no need for a bom) - Create and confirm a manufacturing order for 2 units of the product - Go to the barcode module > operations > manufacturing > the MO - Register only one unit of P and produce #### > A backorder is automatically created but you are redirected to t
Original PR description
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a…
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a backorder - Create a product P (no need for a bom) - Create and confirm a manufacturing order for 2 units of the product - Go to the barcode module > operations > manufacturing > the MO - Register only one unit of P and produce #### > A backorder is automatically created but you are redirected to the backend. ### Note: If you were in "ask" on create backorder or if your product had a bom and you did not register the quantities of consumed components, a pop up would appear and resolving the pop up would redirect you to the kanban view of mrp.production in the barcode module. ### Cause of the issue: The issue was originally solved by commit d90acab by overriding the `action_backorder` however, since commit 1e5c82f the action_backorder is no more part of the flow in "always" flows. opw-3890886 Forward-Port-Of: odoo/enterprise#69229 Forward-Port-Of: odoo/enterprise#69169
We need TaxClosingNonPostedDependingMovesError inside account because it is now also used there to catch it when confirming batch of moves. Forward-Port-Of: odoo/enterprise#69430 Forward-Port-Of: odoo/enterprise#69206
Original PR description
We need TaxClosingNonPostedDependingMovesError inside account because it is now also used there to catch it when confirming batch of moves. Forward-Port-Of: odoo/enterprise#69430 Forward-Port-Of: odoo/enterprise#69206
Scanned barcodes were not saved (setting field in record do not register the change). Continue Production did not take advantage of saveModel parameter of doActionAndClose Forward-Port-Of: odoo/enterprise#69544
Original PR description
Scanned barcodes were not saved (setting field in record do not register the change). Continue Production did not take advantage of saveModel parameter of doActionAndClose Forward-Port-Of: odoo/enterprise#69544
Note that the Swiss payroll modules haven't been translated into any other language than French so far, so that's why only the fr.po is fw-ported.
Original PR description
Note that the Swiss payroll modules haven't been translated into any other language than French so far, so that's why only the fr.po is fw-ported.
Steps to reproduce ================== - Open studio - Edit any report - Make some changes - Click on discard - Click on cancel => UncaughtPromiseError Cause of the issue ================== When clicking on cancel, the promise is rejected https://github.com/odoo/odoo/blob/1ffcea337ba463c383483ca53ff57aa6b725b5a2/addons/web_editor/static/src/js/wysiwyg/wysiwyg.js#L1112 Solution ======== Instead of rejecting the promise, resolve it with the confirmation status opw-414
Original PR description
Steps to reproduce ================== - Open studio - Edit any report - Make some changes - Click on discard - Click on cancel => UncaughtPromiseError Cause of the issue ================== When clicking on cancel, the promise is rejected https://github.com/odoo/odoo/blob/1ffcea337ba463c383483ca53ff57aa6b725b5a2/addons/web_editor/static/src/js/wysiwyg/wysiwyg.js#L1112 Solution ======== Instead of rejecting the promise, resolve it with the confirmation status opw-4141192 Forward-Port-Of: odoo/enterprise#69127
Steps to reproduce ================== - Open inventory > Reporting > Valuation - Open studio - Select a column - Click on "Conditionnal" next to "Invisible", "Required" or "Readonly" => crash Cause of the issue ================== Fields declared inside a groupby node are not part of the main model ```xml <groupby name="product_id"> <field name="cost_method" invisible="1" /> <field name="quantity_svl" invisible="1" /> <button name="action_revaluation" icon="fa-
Original PR description
Steps to reproduce
==================
- Open inventory > Reporting > Valuation
- Open studio
- Select a column
- Click on "Conditionnal" next to "Invisible", "Required" or "Readonly"
=> crash
Cause of the issue
==================
Fields declared inside a groupby node are not part of the main model
```xml
<groupby name="product_id">
<field name="cost_method" invisible="1" />
<field name="quantity_svl" invisible="1" />
<button name="action_revaluation" icon="fa-plus" title="Add Manual Valuation" type="object" invisible="cost_method == 'standard' or quantity_svl <= 0" />
</groupby>
```
opw-4147138
Forward-Port-Of: odoo/enterprise#69369**Version**: 17, master **Description of the issue/feature this PR addresses**: It is necessary to restrict the fields lenght that are used to create Renewal Request to argentinean goverment. For example: It is received an error and not downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. **Video showing how to replicate the error**: https://drive.google.
Original PR description
**Version**: 17, master **Description of the issue/feature this PR addresses**: It is necessary to restrict the fields lenght that are used to create Renewal Request to argentinean goverment. For…
**Version**: 17, master **Description of the issue/feature this PR addresses**: It is necessary to restrict the fields lenght that are used to create Renewal Request to argentinean goverment. For example: It is received an error and not downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. **Video showing how to replicate the error**: https://drive.google.com/file/d/1JB39Njjfpf9nJExyixaBLSvcL19Ig49X/view **Steps to reproduce**: 1) Log in with admin on runbot odoo enterprise 17 instance and install l10n_ar_edi (Argentinean Electronic Invoicing) module. 2) Take position on company "Responsable Inscripto". 3) Change company name to a name with lenght more than 64 characters. 4) Go to "Accounting / Configuration / Settings" and click on "Generate Renewal Request" on "Argentinean Localization" section. It will be received this message: _"Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application."_ **Current behavior before PR**: It is received an error and not downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. **Desired behavior after PR is merged**: It is downloaded "Renewal Request" file if the company name lenght has more than 64 characters or if the company has a Contact with state name or city name lenght more than 128 characters. _Ticket Adhoc side_: 78650 _Task latam_: 1246 Forward-Port-Of: odoo/enterprise#68264
Description: - This accommodates scenarios where the main customer raises a ticket for a delivery partner. Changes: - Code modification for improved flexibility in handling cases where the main customer raises a ticket for the delivery partner. task-3623707 Forward-Port-Of: odoo/enterprise#69538 Forward-Port-Of: odoo/enterprise#52864
Original PR description
Description: - This accommodates scenarios where the main customer raises a ticket for a delivery partner. Changes: - Code modification for improved flexibility in handling cases where the main customer raises a ticket for the delivery partner. task-3623707 Forward-Port-Of: odoo/enterprise#69538 Forward-Port-Of: odoo/enterprise#52864
Steps to reproduce ================== - Install project,web_studio - Go to project - Open studio > Automations - Create a new rule - Click on the top left icon to go back to the home menu - Customizations > Export - Go back to project and delete the newly create automation - Click on the top left icon to go back to the home menu - Import > Upload the generated zip => It fails because a few required fields are missing opw-4073631 Forward-Port-Of: odoo/enterprise#69427
Original PR description
Steps to reproduce ================== - Install project,web_studio - Go to project - Open studio > Automations - Create a new rule - Click on the top left icon to go back to the home menu - Customizations > Export - Go back to project and delete the newly create automation - Click on the top left icon to go back to the home menu - Import > Upload the generated zip => It fails because a few required fields are missing opw-4073631 Forward-Port-Of: odoo/enterprise#69427
Versions: ----------- 15.0 Steps to Reproduce -------------- - Install industry_fsm_sale - Create a new user with these access rights. Project -> user Field Service -> user Timesheets -> User: own timesheets only - Create a new task, and assign it to the created user. - Login as user - Open the task Issue ---------- - The 'New quotation' button is visible even user has no sales access rights. Cause --------- - The user is getting access to the button from the field service g
Original PR description
Versions: ----------- 15.0 Steps to Reproduce -------------- - Install industry_fsm_sale - Create a new user with these access rights. Project -> user Field Service -> user Timesheets -> User: own timesheets only - Create a new task, and assign it to the created user. - Login as user - Open the task Issue ---------- - The 'New quotation' button is visible even user has no sales access rights. Cause --------- - The user is getting access to the button from the field service group. Fix --------- - We remove the group from the button. - We only show 'New Quotation' button if user have sales access rights. task-3827319 Forward-Port-Of: odoo/enterprise#69461 Forward-Port-Of: odoo/enterprise#60536
Steps to reproduce: ------------------- - create a storable product tracked by serial number; - create a serial number for this product; - add 1 quantity on hand for it; - create a rental order with the product; - add the created serial number in "Reserved lot"; - confirm and pickup; - create an other rental order; - add the product and the same "Reserved lot"; Issue: ------ There is no warning even if the serial number of the product is already out of stock. Solution: --------
Original PR description
Steps to reproduce: ------------------- - create a storable product tracked by serial number; - create a serial number for this product; - add 1 quantity on hand for it; - create a rental order with the product; - add the created serial number in "Reserved lot"; - confirm and pickup; - create an other rental order; - add the product and the same "Reserved lot"; Issue: ------ There is no warning even if the serial number of the product is already out of stock. Solution: --------- Add a check when the `reserved_lot_ids` field is modified using an onchange method. opw-3839116 Forward-Port-Of: odoo/enterprise#60597
Draft registrations should not receive any periodic notification until they confirm they will be attending. This avoids awkward situations where the reminder contains a ticket but their ticket isn't validated yet. task-4104891 Forward-Port-Of: odoo/enterprise#69529
Original PR description
Draft registrations should not receive any periodic notification until they confirm they will be attending. This avoids awkward situations where the reminder contains a ticket but their ticket isn't validated yet. task-4104891 Forward-Port-Of: odoo/enterprise#69529
… entries Have a studio approvals with minimum 3 rules: - 2 on level 1 - 1 on level 2 Before this commit, if one of level 1 was refused, when approving the other one, the level 2 rule created an activity for the responsible. As we don't want a level to be notified if the lower level is not fully approved, there was a bug. After this commit, we only trigger activity notification on higher level rules if the below level has been fully approved. Forward-Port-Of: odoo/enterprise#69499
Original PR description
… entries Have a studio approvals with minimum 3 rules: - 2 on level 1 - 1 on level 2 Before this commit, if one of level 1 was refused, when approving the other one, the level 2 rule created an activity for the responsible. As we don't want a level to be notified if the lower level is not fully approved, there was a bug. After this commit, we only trigger activity notification on higher level rules if the below level has been fully approved. Forward-Port-Of: odoo/enterprise#69499
**Steps to reproduce:** - Install l10n_mx_reports - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Download "COA SAT (XML)" **Issue:** The certificate is not present in the XML. **Solution:** Add the EDI certificate of the company in the "COA SAT (XML)" as it was done in previous versions and as it is also done in the "SAT (XML)". opw-4076158 Forward-Port-Of: odoo/enterprise#69593 Forward-Port-Of: odoo/e
Original PR description
**Steps to reproduce:** - Install l10n_mx_reports - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Download "COA SAT (XML)" **Issue:** The certificate is not present in the XML. **Solution:** Add the EDI certificate of the company in the "COA SAT (XML)" as it was done in previous versions and as it is also done in the "SAT (XML)". opw-4076158 Forward-Port-Of: odoo/enterprise#69593 Forward-Port-Of: odoo/enterprise#68887
Draft registrations should not receive any periodic email until they confirm they will be attending. This avoids awkward situations where the reminder contains a ticket but their ticket isn't validated yet. reverts part of [1] where we adjusted the sent count to match drafts [1] https://github.com/odoo/odoo/commit/78aea4c0d6d0d60cb355851b28b246be48875e76 task-4104891 Forward-Port-Of: odoo/odoo#179306
Original PR description
Draft registrations should not receive any periodic email until they confirm they will be attending. This avoids awkward situations where the reminder contains a ticket but their ticket isn't validated yet. reverts part of [1] where we adjusted the sent count to match drafts [1] https://github.com/odoo/odoo/commit/78aea4c0d6d0d60cb355851b28b246be48875e76 task-4104891 Forward-Port-Of: odoo/odoo#179306
Enable global rounding Have a company currency with 0 decimal precision digits Have a foreign currency with 2 decimal precision digits Create a Pricelist for the foreign currency Create a Sale Order Set the foreign currency pricelist Add an order line with price 15.31 and 19% tax (not included) Issue: system will compute a price tax of 3.00, price total of the line will be 18.31 Order total is correct (18.22) This occurs because, when `_compute_taxes` aggregates results https://gi
Original PR description
Enable global rounding Have a company currency with 0 decimal precision digits Have a foreign currency with 2 decimal precision digits Create a Pricelist for the foreign currency Create a Sale Order…
Enable global rounding Have a company currency with 0 decimal precision digits Have a foreign currency with 2 decimal precision digits Create a Pricelist for the foreign currency Create a Sale Order Set the foreign currency pricelist Add an order line with price 15.31 and 19% tax (not included) Issue: system will compute a price tax of 3.00, price total of the line will be 18.31 Order total is correct (18.22) This occurs because, when `_compute_taxes` aggregates results https://github.com/odoo/odoo/blob/0e1e7bf9c96b8fe4a06dfe3f858a837a8fdf386d/addons/account/models/account_tax.py#L1159-L1162 it will consider a tax amount that, in global rounding, is rounded according to company currency, that does not have the same precision settings https://github.com/odoo/odoo/blob/0e1e7bf9c96b8fe4a06dfe3f858a837a8fdf386d/addons/account/models/account_tax.py#L1011-L1014 A solution is to directly call `_compute_taxes_for_single_line` is order to get the raw results for the single line opw-4050736 Forward-Port-Of: odoo/odoo#178768 Forward-Port-Of: odoo/odoo#176187
### Issue: Previous fix: odoo/odoo@4c0f03c7a1d1ec1f99dbc8b2202454e4398e386b In CH tax report, tax amounts from Payments of Expenses paid by company are not shown when using taxes with Cash Basis. ### Explanation: The CH report uses tags to fetch taxes. With previous fix, those tags were still not passed through. ### Fix reasoning: We will use the same condition for the `include_caba_tags` parameter as for the `caba_no_transition_account` context key for consistency. opw-394636
Original PR description
### Issue: Previous fix: odoo/odoo@4c0f03c7a1d1ec1f99dbc8b2202454e4398e386b In CH tax report, tax amounts from Payments of Expenses paid by company are not shown when using taxes with Cash Basis. ### Explanation: The CH report uses tags to fetch taxes. With previous fix, those tags were still not passed through. ### Fix reasoning: We will use the same condition for the `include_caba_tags` parameter as for the `caba_no_transition_account` context key for consistency. opw-3946362 Forward-Port-Of: odoo/odoo#179031 Forward-Port-Of: odoo/odoo#177246
When importing a UBL file, we get an error `SyntaxError: prefix 'cac' not found in prefix map` When importing a UBL file Odoo expects the UBL specific namespaces to be in the root element of the file. This is not always the case as these namespaces could exist in every element in the file. When a file is formatted this way, Odoo cannot extract the necessary data from it because it is missing the necessary namespaces. We fix it by using the ubl namespace as nsmap (see https://github.com/o
Original PR description
When importing a UBL file, we get an error `SyntaxError: prefix 'cac' not found in prefix map` When importing a UBL file Odoo expects the UBL specific namespaces to be in the root element of the file. This is not always the case as these namespaces could exist in every element in the file. When a file is formatted this way, Odoo cannot extract the necessary data from it because it is missing the necessary namespaces. We fix it by using the ubl namespace as nsmap (see https://github.com/odoo-dev/odoo/commit/1e24b151c6ad0023769b5a561690cb62bcda1d8a) opw-4142421 Forward-Port-Of: odoo/odoo#178547
Account moves are created for the whole session and are not specific to a pos order. So we shouldn't map the accounts used. This reverts commit 595561fd9b48b5a71bf709b018d25006deb9f12c. opw-4086609 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179117 Forward-Port-Of: odoo/odoo#179084
Original PR description
Account moves are created for the whole session and are not specific to a pos order. So we shouldn't map the accounts used. This reverts commit 595561fd9b48b5a71bf709b018d25006deb9f12c. opw-4086609 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179117 Forward-Port-Of: odoo/odoo#179084
Steps to reproduce: ------------------- - Have xlrd >= 2.0 and openpyxl 3.1.2 - Using the `base_import` module, import an XLSX file with dates - Test -> ValueError unconverted data remains: 00:00:00 Cause: ----- Since xlrd 2.0.0 in (#169245), if we have a date in an XLSX file, we nonetheless always get a datetime with a time value of 00:00:00 instead of a date object. This datetime later fails to be converted to a date because of an "unconverted data remains: 00:00:00" error. Fix:
Original PR description
Steps to reproduce: ------------------- - Have xlrd >= 2.0 and openpyxl 3.1.2 - Using the `base_import` module, import an XLSX file with dates - Test -> ValueError unconverted data remains: 00:00:00 Cause: ----- Since xlrd 2.0.0 in (#169245), if we have a date in an XLSX file, we nonetheless always get a datetime with a time value of 00:00:00 instead of a date object. This datetime later fails to be converted to a date because of an "unconverted data remains: 00:00:00" error. Fix: --- Use is_datetime() from openpyxl.styles.numbers to check cell.number_format instead of depending on object type. Forward-Port-Of: odoo/odoo#177782
### Steps to reproduce: - Enable workorders in the settings - Create a BOM for a product P with an operation: - OP1: Assembly line 1, duration 10 minutes - Create and confirm an MO for 5 units of P - Set a producing quantity of 2 - Validate the MO and create a back order ### Issues: On each of the operations of the MO: 1) The quantity displayed is 0 2) The expected duration is the expected duration corresponding to the full initial demand e.g. 50 minutes Note: Issues 1 is pre
Original PR description
### Steps to reproduce: - Enable workorders in the settings - Create a BOM for a product P with an operation: - OP1: Assembly line 1, duration 10 minutes - Create and confirm an MO for 5 units of P -…
### Steps to reproduce: - Enable workorders in the settings - Create a BOM for a product P with an operation: - OP1: Assembly line 1, duration 10 minutes - Create and confirm an MO for 5 units of P - Set a producing quantity of 2 - Validate the MO and create a back order ### Issues: On each of the operations of the MO: 1) The quantity displayed is 0 2) The expected duration is the expected duration corresponding to the full initial demand e.g. 50 minutes Note: Issues 1 is present even if the produced qty match the full demand of the MO. ### Cause of the issues: 1) The quantity displayed on the operations is the 'qty_remaining' independantly of the state of the MO. However, once the MO is done, this qty is set to 0 because the product have been produced. 2) The expected duration is a computed field that is not updated once the opeartion is done: https://github.com/odoo/odoo/blob/45154cfdb044aea85ad72bb36348af7b77afd844/addons/mrp/models/mrp_workorder.py#L329-L333 However, finishing the operation will change the state to 'done' before the MO is backordered and the `qty_production` updated. In addition, the `_get_duration_expected` relied solely on the qty_production rather than also relying on the actual 'qty_produced': https://github.com/odoo/odoo/blob/45154cfdb044aea85ad72bb36348af7b77afd844/addons/mrp/models/mrp_workorder.py#L786 ### Fix: 1) Since we can not show different columns for each operation depending on their state, we rely on the state of the MO to determine which qty is the most relevant: the qty_remaining or the qty_produced 2) We update the expected duration depending on the qty_produced in case it was not manually set (which can be determined by comparing its current value with the expected value before the workorder is set as done) opw-3873108 opw-4010550 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178094 Forward-Port-Of: odoo/odoo#171771
**Current behavior before PR:** - Pressing Enter after selecting all columns in a row would break the table format. **Desired behavior after PR is merged:** - Now, when the Enter key is pressed, all the contents of the anchor `<td>` will be removed first, and then the Enter process within that `<td>` will be executed. task-3557503 Forward-Port-Of: odoo/odoo#177775 Forward-Port-Of: odoo/odoo#139312
Original PR description
**Current behavior before PR:** - Pressing Enter after selecting all columns in a row would break the table format. **Desired behavior after PR is merged:** - Now, when the Enter key is pressed, all the contents of the anchor `<td>` will be removed first, and then the Enter process within that `<td>` will be executed. task-3557503 Forward-Port-Of: odoo/odoo#177775 Forward-Port-Of: odoo/odoo#139312
It is necessary to wrap the tab names in _lt to make them translatable into the various languages offered by Odoo. Before these changes, the tab names are always in English. After these changes, when translations are added to the terms, they will appear translated into the selected language. cc @Tecnativa --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177889 Forward-Port-Of: odoo/odoo#177724
Original PR description
It is necessary to wrap the tab names in _lt to make them translatable into the various languages offered by Odoo. Before these changes, the tab names are always in English. After these changes, when translations are added to the terms, they will appear translated into the selected language. cc @Tecnativa --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177889 Forward-Port-Of: odoo/odoo#177724
- saas-17.1 ### Steps to reproduce: - Install sales timesheet, accounting, and purchase. - Select Analytic Accounting from the accounting setting. - Create a billable project. - Create a purchase order, select a service product, add a project in analytic distribution, and add quantity 10. - While confirming PO, add received quantity 5. - Open project updates, on the right side under the profitability heading. Observe the expected value of cost. - Click on a new button, in the descripti
Original PR description
- saas-17.1 ### Steps to reproduce: - Install sales timesheet, accounting, and purchase. - Select Analytic Accounting from the accounting setting. - Create a billable project. - Create a purchase order, select a service product, add a project in analytic distribution, and add quantity 10. - While confirming PO, add received quantity 5. - Open project updates, on the right side under the profitability heading. Observe the expected value of cost. - Click on a new button, in the description tab, and check the expected value. - There is a wrong value in the form view. ### Issue: Wrong value of costs expected in project update form view. ### Solution: Calculate the value in the same way in the project update right side. task-3996848 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170266
- Before this commit The ir.asset target field is only displayed when the directive is 'replace', but this field is required for 'after' and 'before' directives too. - After this commit The form view is adapted to fix this issue. Forward-Port-Of: odoo/odoo#178799 Forward-Port-Of: odoo/odoo#178765
Original PR description
- Before this commit The ir.asset target field is only displayed when the directive is 'replace', but this field is required for 'after' and 'before' directives too. - After this commit The form view is adapted to fix this issue. Forward-Port-Of: odoo/odoo#178799 Forward-Port-Of: odoo/odoo#178765
Fixed some missing / incorrect translations of account names in the chart template. Forward-Port-Of: odoo/odoo#174750
Original PR description
Fixed some missing / incorrect translations of account names in the chart template. Forward-Port-Of: odoo/odoo#174750
**Steps:** - Create a few products and e-commerce categories - Go to the shop page - Hover on the eCommerce categories created - A bit displacement is seen in the margin **Issue:** - The margin is given to adjust the height of the scrollbar on hover but it's applied even when scrollbar is not present (when handful of categories are there) resulting in a displacement. **Fix:** - Disabling the margin on hover when there are less categories that is when scrollbar is not present **Aff
Original PR description
**Steps:** - Create a few products and e-commerce categories - Go to the shop page - Hover on the eCommerce categories created - A bit displacement is seen in the margin **Issue:** - The margin is given to adjust the height of the scrollbar on hover but it's applied even when scrollbar is not present (when handful of categories are there) resulting in a displacement. **Fix:** - Disabling the margin on hover when there are less categories that is when scrollbar is not present **Affected version:** 17.0~master opw-4088697 Forward-Port-Of: odoo/odoo#178545
Current behavior before PR: 1. When we attempt to paste an H1 element into a P element, the H1 element gets converted to a P element. 2. When pasting from GDocs, nested UL or OL is a direct child of its parent UL or OL, rather than being child of LI with class `oe-nested`. 3. Copy/pasting multiple paragraphs into a list does not convert it to list. 4. When pasting content that begins with a list and includes other tags below it into a new list, only the list is pasted, resulting in a loss
Original PR description
Current behavior before PR: 1. When we attempt to paste an H1 element into a P element, the H1 element gets converted to a P element. 2. When pasting from GDocs, nested UL or OL is a direct child of…
Current behavior before PR: 1. When we attempt to paste an H1 element into a P element, the H1 element gets converted to a P element. 2. When pasting from GDocs, nested UL or OL is a direct child of its parent UL or OL, rather than being child of LI with class `oe-nested`. 3. Copy/pasting multiple paragraphs into a list does not convert it to list. 4. When pasting content that begins with a list and includes other tags below it into a new list, only the list is pasted, resulting in a loss of the other content. 5. Copy/pasting one list over another bullets does not get transformed. 6. When copying a checklist from Google Docs, the check options are pasted as images. Desired behavior after PR is merged: 1. When we attempt to paste an H1 element onto a P element, the H1 element will remain as an H1 element. 2. When pasting from GDocs, nested UL or OL are contained within an LI element with class `oe-nested`. 3. Copy/pasting multiple paragraphs into a list gets converted to list. 4. Pasting content with a list and other tags should no longer result in the loss of content. 5. Copy/pasting one list over another bullets get transformed. 6. Check options copied as image from Google Docs will no longer be pasted as images; instead the images should be removed and class `o_checklist` should be add to the closest list. task-2956048 Co-authored-by: Deependra Solanki <deso@odoo.com> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178031 Forward-Port-Of: odoo/odoo#115019
This is no longer necessary with the introduction of: https://github.com/odoo/odoo/pull/144652 Forward-Port-Of: odoo/odoo#179149 Forward-Port-Of: odoo/odoo#145284
Original PR description
This is no longer necessary with the introduction of: https://github.com/odoo/odoo/pull/144652 Forward-Port-Of: odoo/odoo#179149 Forward-Port-Of: odoo/odoo#145284
Currently an exception was generated when the user processed an instance refund from Razorpay, and we get notes as a list in notification data (see response here [Ref](https://github.com/razorpay/razorpay-python/blob/master/documents/refund.md#create-an-instant-refund)). error: ``` AttributeError: 'list' object has no attribute 'get' File "odoo/http.py", line 2383, in __call__ response = request._serve_db() File "odoo/http.py", line 1913, in _serve_db return self._transac
Original PR description
Currently an exception was generated when the user processed an instance refund from Razorpay, and we get notes as a list in notification data (see response here…
Currently an exception was generated when the user processed an instance refund from
Razorpay, and we get notes as a list in notification data (see response here [Ref](https://github.com/razorpay/razorpay-python/blob/master/documents/refund.md#create-an-instant-refund)).
error:
```
AttributeError: 'list' object has no attribute 'get'
File "odoo/http.py", line 2383, in __call__
response = request._serve_db()
File "odoo/http.py", line 1913, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1976, 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 1943, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2100, in dispatch
return self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 227, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 757, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/payment_razorpay/controllers/main.py", line 41, in razorpay_webhook
tx_sudo = request.env['payment.transaction'].sudo()._get_tx_from_notification_data(
File "addons/payment_razorpay/models/payment_transaction.py", line 328, in _get_tx_from_notification_data
reference = notification_data.get('notes', {}).get('reference')
```
This commit will fix the above issue by preventing getting the dict data if `notes` in notification data is list type.
sentry-5793000218
Forward-Port-Of: odoo/odoo#179135You shouldn't be able to archive a journal that is used in a payment method. Steps to reproduce: ------------------- * Open a payment method and archive the journal used in it * Open PoS and make an order using this payment method > Observation: Close the PoS session, you will have an error saying you cannot close the session. Why the fix: ------------ We override the `action_archive` function to make sure no payment method is using the journal being archived. opw-4070620 --- I
Original PR description
You shouldn't be able to archive a journal that is used in a payment method. Steps to reproduce: ------------------- * Open a payment method and archive the journal used in it * Open PoS and make an order using this payment method > Observation: Close the PoS session, you will have an error saying you cannot close the session. Why the fix: ------------ We override the `action_archive` function to make sure no payment method is using the journal being archived. opw-4070620 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177751
model.default_get should use a list of field names as input but not a field name 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#179162 Forward-Port-Of: odoo/odoo#179092
Original PR description
model.default_get should use a list of field names as input but not a field name 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#179162 Forward-Port-Of: odoo/odoo#179092
When trying to print the receipt on the Odoo app on a mobile device, the background color of the receipt would be different than the background color of the text Steps to reproduce: ------------------- * Open PoS on the Odoo app * Print receipt > Observation: On the preview the receipt looks like this  Why the fix: ------------ By making the background color transparent we
Original PR description
When trying to print the receipt on the Odoo app on a mobile device, the background color of the receipt would be different than the background color of the text Steps to reproduce: ------------------- * Open PoS on the Odoo app * Print receipt > Observation: On the preview the receipt looks like this  Why the fix: ------------ By making the background color transparent we ensure that it will always be the same for the text and the general background color opw-4094591 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178803
On the invoice tree view we have a possible search on multiple field at once. While this is a good feature for the user as it makes a very practical search, for large databases this is not performant at all, as we're searching on multiple fields at once, some of them not being indexed. To allow for more efficient searches, we added some specific search. task: 4154313 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#
Original PR description
On the invoice tree view we have a possible search on multiple field at once. While this is a good feature for the user as it makes a very practical search, for large databases this is not performant at all, as we're searching on multiple fields at once, some of them not being indexed. To allow for more efficient searches, we added some specific search. task: 4154313 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179125
Issue: When trying to resend a mail authored by any other user as an administrator, we are going to receive a "Delivery Failed" error even though the mail has been sent. Steps to reproduce: - Send any email as Demo, so they stay in queue for seding under mails. - Go to mails as admin now and try to send the mail manually. (You can use a meeting for example to send the mail, create a meeting and send the mail to notify this meeting.) Solution: Since the issue is triggered when we try
Original PR description
Issue: When trying to resend a mail authored by any other user as an administrator, we are going to receive a "Delivery Failed" error even though the mail has been sent. Steps to reproduce: - Send any email as Demo, so they stay in queue for seding under mails. - Go to mails as admin now and try to send the mail manually. (You can use a meeting for example to send the mail, create a meeting and send the mail to notify this meeting.) Solution: Since the issue is triggered when we try to write on the message_id, which is a related field we might want to specify it in 'mail.mail' so we ensure that message_id is available directly on the 'mail.mail' model. This, will also apply properly the related_sudo=True that we need in order to work with it as administrator. opw-3963124 Forward-Port-Of: odoo/odoo#177813 Forward-Port-Of: odoo/odoo#173406
…osting a batch of moves When we tried to confirm a batch of moves during the tax closing in a multi company setup with branches, an error was raised because the dependant closing moves should be posted before the parent move. This error was only catched in the `action_post` method but not on the modal that validates the batch. Original Commit: https://github.com/odoo/enterprise/pull/65645 opw-4148070 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submi
Original PR description
…osting a batch of moves When we tried to confirm a batch of moves during the tax closing in a multi company setup with branches, an error was raised because the dependant closing moves should be posted before the parent move. This error was only catched in the `action_post` method but not on the modal that validates the batch. Original Commit: https://github.com/odoo/enterprise/pull/65645 opw-4148070 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179160 Forward-Port-Of: odoo/odoo#178601
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a backorder - Create a product P (no need for a bom) - Create and confirm a manufacturing order for 2 units of the product - Go to the barcode module > operations > manufacturing > the MO - Register only one unit of P and produce #### > A backorder is automatically created but you are redirected to t
Original PR description
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a…
### Steps to reproduce: - Enable multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Operations types - Click on Manufacturing and put "Always" on create a backorder - Create a product P (no need for a bom) - Create and confirm a manufacturing order for 2 units of the product - Go to the barcode module > operations > manufacturing > the MO - Register only one unit of P and produce #### > A backorder is automatically created but you are redirected to the backend. #### Note: If you were in "ask" on create backorder or if your product had a bom and you did not register the quantities of consumed components, a pop up would appear and resolving the pop up would redirect you to the kanban view of mrp.production in the barcode module. ### Cause of the issue: The issue was originally solved by commit d90acab by overriding the `action_backorder` however, since commit 1e5c82f the action_backorder is no more part of the flow in "always" backorder. opw-3890886 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178674 Forward-Port-Of: odoo/odoo#178492
We add an alias to reset the IoT Box on a dev branch. Forward-Port-Of: odoo/odoo#179175
Original PR description
We add an alias to reset the IoT Box on a dev branch. Forward-Port-Of: odoo/odoo#179175
Allow to send UBL Bis 3 invoices using Peppol to Chorus Pro (B2G plaftorm in France). This requires to send the information contained in the already existing fields `buyer_reference`, `contract_reference`, `purchase_order_reference` in the Bis 3 xmls. task-4147787 opw-4139689 Forward-Port-Of: odoo/odoo#178389
Original PR description
Allow to send UBL Bis 3 invoices using Peppol to Chorus Pro (B2G plaftorm in France). This requires to send the information contained in the already existing fields `buyer_reference`, `contract_reference`, `purchase_order_reference` in the Bis 3 xmls. task-4147787 opw-4139689 Forward-Port-Of: odoo/odoo#178389
Previously, settling a sale.order from the POS of a Belgian company would require the creation of an invoice. This was actually only necessary when the sale contains intra-community (EU) taxes. Those are the taxes that are mapped to (dest_tax_id) by the Intra-Community fiscal position. See https://github.com/odoo-dev/odoo/commit/70f3b748f7098b60e02e8235f2007e4b94f666c3 This commit narrows down the enforcement of the invoice creation to only target sales made with such taxes. opw-[3
Original PR description
Previously, settling a sale.order from the POS of a Belgian company would require the creation of an invoice. This was actually only necessary when the sale contains intra-community (EU) taxes. Those are the taxes that are mapped to (dest_tax_id) by the Intra-Community fiscal position. See https://github.com/odoo-dev/odoo/commit/70f3b748f7098b60e02e8235f2007e4b94f666c3 This commit narrows down the enforcement of the invoice creation to only target sales made with such taxes. opw-[3986443](https://www.odoo.com/odoo/project.task/3986443?cids=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172280 Forward-Port-Of: odoo/odoo#170186
This commit aims to enhance the validation of VAT numbers for Ireland to avoid conflicts with similar numbers like CRNs (Company Registration Numbers). Steps to reproduce: - Create a new contact with Ireland as the country and use "IE393763" for the VAT number. - A traceback occurs. opw-4125865 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177375
Original PR description
This commit aims to enhance the validation of VAT numbers for Ireland to avoid conflicts with similar numbers like CRNs (Company Registration Numbers). Steps to reproduce: - Create a new contact with Ireland as the country and use "IE393763" for the VAT number. - A traceback occurs. opw-4125865 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177375
Steps to reproduce: - Open the 'Outstanding Receipts' account on any DB - Change its code - Notice how `reconcile` changes to False. Analysis: - Since #94171 (merged in 15.5), there is a dependency chain `code` -> `account_type` -> `reconcile`. - As such, changing the code will cause `reconcile` to be recomputed even if the account type was not changed. - Because the Outstanding Receipts has account type `asset_current`, it's changed back to `reconcile=False` any time `code` is changed.
Original PR description
Steps to reproduce: - Open the 'Outstanding Receipts' account on any DB - Change its code - Notice how `reconcile` changes to False. Analysis: - Since #94171 (merged in 15.5), there is a dependency chain `code` -> `account_type` -> `reconcile`. - As such, changing the code will cause `reconcile` to be recomputed even if the account type was not changed. - Because the Outstanding Receipts has account type `asset_current`, it's changed back to `reconcile=False` any time `code` is changed. Solution: - We don't change `reconcile` if the account_type is an asset or liability type different from `asset_receivable` or `liability_payable`. taskid: 4137941 Forward-Port-Of: odoo/odoo#177880
The issue was that when extracting field names from an address, the current implementation only considered fields and spaces. Adding any additional characters would break the field names, resulting in invalid field names. For example, given the address line "%(zip)s, %(city)s", the current code would return the fields ["zip,", "city"], where the first field name is invalid. We should only consider what is between "%(<field_name>)s". Steps to reproduce: - Go to Contact > Configuration > Cou
Original PR description
The issue was that when extracting field names from an address, the current implementation only considered fields and spaces. Adding any additional characters would break the field names, resulting…
The issue was that when extracting field names from an address, the current implementation only considered fields and spaces. Adding any additional characters would break the field names, resulting in invalid field names. For example, given the address line "%(zip)s, %(city)s", the current code would return the fields ["zip,", "city"], where the first field name is invalid. We should only consider what is between "%(<field_name>)s". Steps to reproduce: - Go to Contact > Configuration > Countries (Developer mode must be enabled). - Search for "United States" and then edit. - In "Layout in Reports", add any characters to the 3rd line where there is the "city" field, and save. - Open any contact (you may need to refresh). - The order of fields is now incorrect and does not match the "Layout in Reports". This fix ensures that only valid field names are extracted from the address line, maintaining the correct order as specified in the "Layout in Reports". opw-3920886 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176017
We should only see the accounts matching the code prefix, just like done in `_name_search`. It was the expected result before this fix[^1] but the solution was to remove the feature instead of fix the traceback without explanation. [^1]: 8852ff2767eef111807a3f6efc7cc5376656f45f Forward-Port-Of: odoo/odoo#178947
Original PR description
We should only see the accounts matching the code prefix, just like done in `_name_search`. It was the expected result before this fix[^1] but the solution was to remove the feature instead of fix the traceback without explanation. [^1]: 8852ff2767eef111807a3f6efc7cc5376656f45f Forward-Port-Of: odoo/odoo#178947
Description of the issue this commit addresses: With the change of the taxes in Finland, the default tax was modified but the way it is decided isn't the same as from 17.0. Because of that, in 17.0 and later versions, the default tax remained 24.0%. --- Desired behavior after this commit is merged: The default tax in the company template is 25.5% --- no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#
Original PR description
Description of the issue this commit addresses: With the change of the taxes in Finland, the default tax was modified but the way it is decided isn't the same as from 17.0. Because of that, in 17.0 and later versions, the default tax remained 24.0%. --- Desired behavior after this commit is merged: The default tax in the company template is 25.5% --- no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179516
On the first of september 2024, the official default rate in finland goes from 24.0% to 25.5%. This means that the OSS taxes that were pointing at the old rate need to be updated. --- task-4027773 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179506 Forward-Port-Of: odoo/odoo#177857
Original PR description
On the first of september 2024, the official default rate in finland goes from 24.0% to 25.5%. This means that the OSS taxes that were pointing at the old rate need to be updated. --- task-4027773 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179506 Forward-Port-Of: odoo/odoo#177857