Friday, September 6, 2024
64 changes
33 changes
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
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
28 changes
Enhancements to existing features
This update streamlines India-specific accounting, asset, and GST report screens by removing unnecessary hidden fields from the interface setup. It helps keep these business forms easier to maintain without changing day-to-day workflows for users.
Original PR description
see https://github.com/odoo/odoo/pull/178572
3 changes
Resolved issues and error corrections
This update fixes a compatibility issue with the latest Chrome 128 browser version that affects the payroll dashboard testing. The fix ensures that the payroll dashboard tests run correctly by properly handling browser events in the newer Chrome version, maintaining system reliability and test accuracy.
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
Odoo Enterprise modules were updated so test-only code is no longer loaded during normal operation. This keeps runtime startup cleaner while leaving test execution to the testing framework, with no expected change for everyday users.
Original PR description
There is no need to import the module `tests`, it will be done by the testing framework and we do not need it during runtime. odoo/odoo#177671
The favorite button in marketing automation mailings has been moved from the subject field to the form header. This makes the control easier to find and keeps the subject area focused on message content.
Original PR description
Purpose ======= Move the favorite button from the subject field to the header. Task-3877116
This update prevents temporary record identifiers from being used in filtering logic, reducing the risk of errors while editing or creating records. It helps make HR contracts, payroll payslips, employee signing flows, and field service reports behave more reliably before records are fully saved.
Original PR description
odoo/odoo#177331
This update aligns several Odoo Enterprise apps with a newer shared way of searching records by display name. It should keep search behavior consistent across accounting, documents, knowledge, sign, WhatsApp, and localization features while reducing future maintenance work.
Original PR description
odoo/odoo#174967
Resolved issues and error corrections
When users add a new field to a report in Studio without a default value, it now appears immediately instead of being invisible due to having no size. This makes report editing clearer and prevents confusion when inserting fields through the powerbox.
Original PR description
With the powerbox, insert a new field in the report, without setting a default value. Before this commit, the new field is not visible, it has no size. After this commit, we make it have a size by using the oe-expression-readable attribute. task-4166586
This fix removes an empty placeholder paragraph that could appear in subscription automation rule forms when its related message was not needed. The form now uses space more cleanly, making the interface slightly tidier for users managing subscriptions.
Original PR description
Since [1] the subscriptions automations rules were extending the view_base_automation_form view by - among other changes - displaying a paragraph of text, but only under a certain condition. **Before this commit** This paragraph is present as an empty paragraph when the condition is not met, taking up a bit of space in the form view. **After this commit** The empty paragraph is no more added to the DOM. [1]: https://github.com/odoo/enterprise/commit/bbfcf24728a90b97999ce359a9d5dbf0916fa8c2
Code cleanup and technical improvements
The Point of Sale IoT and preparation display modules were updated to align with recent underlying platform test changes. This is an internal cleanup that helps keep development and quality checks consistent without changing day-to-day user workflows.
Original PR description
In this commit we adapt the code to reflect the change in the corresponding community commit. https://github.com/odoo/odoo/pull/177754
Miscellaneous changes
Add the Colombian E-Commerce localization module that includes: * Add fields to the checkout form: City, Identification Type, Fiscal Regimen, and Obligation Type. * Validate new fields. * Change the label name for 'Vat' to 'Identification Number' * Show obligation type and fiscal regimen blocks only when the identification type is 'NIT'. * Take into account the identification type when validating the VAT in the checkout form. related: https://github.com/odoo/odoo/pull/169205 task-28
Original PR description
Add the Colombian E-Commerce localization module that includes: * Add fields to the checkout form: City, Identification Type, Fiscal Regimen, and Obligation Type. * Validate new fields. * Change the label name for 'Vat' to 'Identification Number' * Show obligation type and fiscal regimen blocks only when the identification type is 'NIT'. * Take into account the identification type when validating the VAT in the checkout form. related: https://github.com/odoo/odoo/pull/169205 task-2856566 Forward-Port-Of: odoo/enterprise#69007 Forward-Port-Of: odoo/enterprise#64786
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
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#69587
Forward-Port-Of: odoo/enterprise#69369Draft 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#69615 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#69615 Forward-Port-Of: odoo/enterprise#69529
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
When validating a payment for a subscription and the sale's setting `sale.automatic_invoice` is enabled, the invoice is send twice to the customer on subscription renewal; first with the normal template then a second time with the subscription specific template. To reproduce: - As Administrator: - Enable the "Automatic Invoice" option in the setting - Install/enable the `demo` payment provider and method - Log-in as `portal` user - Go the /shop and add the `Office Cleaning Service
Original PR description
When validating a payment for a subscription and the sale's setting `sale.automatic_invoice` is enabled, the invoice is send twice to the customer on subscription renewal; first with the normal…
When validating a payment for a subscription and the sale's setting `sale.automatic_invoice` is enabled, the invoice is send twice to the customer on subscription renewal; first with the normal template then a second time with the subscription specific template. To reproduce: - As Administrator: - Enable the "Automatic Invoice" option in the setting - Install/enable the `demo` payment provider and method - Log-in as `portal` user - Go the /shop and add the `Office Cleaning Service (SUB)` to you cart - Pay your order using the `Demo` payment method => The invoice is send once - Go to your subscription (/my/subscriptions) - Click on your new subscription - Scroll to the `Anticipate payment` section and pay for it (again choose the `Demo` payment method) - You get back the the subscription page, click on the last invoice (2nd invoice you created) => Scroll to the history section and see that the invoice is sent twice This commit ensure we're only sending invoice with the subscription specific template on renewal. OPW-3900040 Forward-Port-Of: odoo/enterprise#69376 Forward-Port-Of: odoo/enterprise#61838
Currently, when generating a DIAN document for an invoice related to a sale order, the system creates a `cac:OrderReference` tag but fails to include it's required `cbc:ID` child tag. ### Fix The `order_reference` and `sales_order_id` fields correspond to the `<cbc:ID>` and `<cbc:SalesOrderID>` tags, respectively: https://github.com/odoo/odoo/blob/72e312815f372de88388c47c612bb5f44b4d8b4e/addons/account_edi_ubl_cii/data/ubl_20_templates.xml#L438-L441 The previous code modified the standa
Original PR description
Currently, when generating a DIAN document for an invoice related to a sale order, the system creates a `cac:OrderReference` tag but fails to include it's required `cbc:ID` child tag. ### Fix The `order_reference` and `sales_order_id` fields correspond to the `<cbc:ID>` and `<cbc:SalesOrderID>` tags, respectively: https://github.com/odoo/odoo/blob/72e312815f372de88388c47c612bb5f44b4d8b4e/addons/account_edi_ubl_cii/data/ubl_20_templates.xml#L438-L441 The previous code modified the standard UBL format by setting `order_reference=False`, which caused the `<cbc:ID>` tag to be omitted from the `<cac:OrderReference>` element. However, based on official documentation, it seems that the `<cbc:SalesOrderID>` tag should be removed instead, as it is never mentioned there. Therefore, this update changes the logic to set `sales_order_id=False` instead of `order_reference=False`. opw-4124291 Forward-Port-Of: odoo/enterprise#69145
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#69590 Forward-Port-Of: odoo/enterprise#60597
Added `pos_iot` module icon. Forward-Port-Of: odoo/enterprise#69329 Forward-Port-Of: odoo/enterprise#69289
Original PR description
Added `pos_iot` module icon. Forward-Port-Of: odoo/enterprise#69329 Forward-Port-Of: odoo/enterprise#69289
**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#69614 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#69614 Forward-Port-Of: odoo/enterprise#68887
… 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: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to 0.0001 - In debug: Settings > Technical > Database Structure > Decimal Accuracy - Change the Decimal Accuracy to 4 Digits - Create and mark as to do a delivery order for 1 unit of a product 1 that you have in stock - Barcode > Operations > Delivery Orders > "your delivery" - Click on the pencil
Original PR description
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to…
### Steps to reproduce: - Enable "Units of Measure" in the settings - Inventory > Configuration > Units of Measures > UomCategories - Click on Unit and change the rounding precision from 0.01 to 0.0001 - In debug: Settings > Technical > Database Structure > Decimal Accuracy - Change the Decimal Accuracy to 4 Digits - Create and mark as to do a delivery order for 1 unit of a product 1 that you have in stock - Barcode > Operations > Delivery Orders > "your delivery" - Click on the pencil to change the quantity of the move line to 0.0153 > You are redirected to the view of the picking and the line is displayed as: **0.015300000000000001/1.0** Cause of the issue: The float system of Odoo introduce inaccuracies at high rounding precision. When you set the qty_done of the `stock.move.line` to 0.0153 the framework is going to format this float value to be written as 0.015300000000000001. Fix: To not alter comparison using backend values we format the float in the view. opw-4110401 Forward-Port-Of: odoo/enterprise#68811
We are currently using websockets for every report action. We will now use longpolling first, then websocket if it fails. It will help reduce the amount of websockets communicating with Odoo. Task: 4106745 Forward-Port-Of: odoo/enterprise#69439 Forward-Port-Of: odoo/enterprise#68325
Original PR description
We are currently using websockets for every report action. We will now use longpolling first, then websocket if it fails. It will help reduce the amount of websockets communicating with Odoo. Task: 4106745 Forward-Port-Of: odoo/enterprise#69439 Forward-Port-Of: odoo/enterprise#68325
**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
This will add rules for the payroll in Alabama, Nevada, Washington and Colorado. Task: 3923285 Forward-Port-Of: odoo/enterprise#69443 Forward-Port-Of: odoo/enterprise#63481
Original PR description
This will add rules for the payroll in Alabama, Nevada, Washington and Colorado. Task: 3923285 Forward-Port-Of: odoo/enterprise#69443 Forward-Port-Of: odoo/enterprise#63481
Steps to reproduce: - Have a FEC file (see ticket) - Import it on a brand new db Issue: Crash. We try to create account move line with an xml id that does not exist because we didn't create the partner associated to the correct ref The second issue is that we will link the move to the wrong customer since the second one is not created Cause: The first issue is caused because we bypass the creation of the second partner with the same name "PARTNER 01" but different ref "PARTNER02" `
Original PR description
Steps to reproduce: - Have a FEC file (see ticket) - Import it on a brand new db Issue: Crash. We try to create account move line with an xml id that does not exist because we didn't create the partner associated to the correct ref The second issue is that we will link the move to the wrong customer since the second one is not created Cause: The first issue is caused because we bypass the creation of the second partner with the same name "PARTNER 01" but different ref "PARTNER02" `ValueError: External ID not found in the system: l10n_fr_fec_import.89_partner_PARTNER02` The reason is, when creating the move line, we assign the `partner_id` with an xml_id based on the partner_ref https://github.com/odoo/enterprise/blob/ae3820059f6ff46b0dbcd64eabb2aae5caa98e18/l10n_fr_fec_import/wizard/import_wizard.py#L474-L490 Which of course does not exist. opw-3932234 Forward-Port-Of: odoo/enterprise#69303 Forward-Port-Of: odoo/enterprise#69148
Forward-Port-Of: odoo/enterprise#69445 Forward-Port-Of: odoo/enterprise#67980
Original PR description
Forward-Port-Of: odoo/enterprise#69445 Forward-Port-Of: odoo/enterprise#67980
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
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: due to regulations, we might need to preserve an audit trail to have auditable journal entries After this commit the system would unlink only draft entries and reverse already posted move, similar to what we do for expenses opw-4075244 Forward-Port-Of:
Original PR description
Create a new payslip Select Employee and contract Compute Sheet Create Draft Entry > Post Draft Entry Cancel payslip Issue: The system will attempt to reset to draft and unlink the associated invoice In some cases this is not ideal: due to regulations, we might need to preserve an audit trail to have auditable journal entries After this commit the system would unlink only draft entries and reverse already posted move, similar to what we do for expenses opw-4075244 Forward-Port-Of: odoo/enterprise#69031 Forward-Port-Of: odoo/enterprise#68044
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69320 Forward-Port-Of: odoo/enterprise#69278
Original PR description
Before this commit, as soon as this module is installed, the button to generate the Libros Registro de IVA was the main button for all the companies. Instead of having a new handler, just add the code in the default handler, and manage the buttons based on the country of the current company. Forward-Port-Of: odoo/enterprise#69320 Forward-Port-Of: odoo/enterprise#69278
Fixed an issue where customers could open the date picker and select new rental dates even when a rental product was already in their cart, which had no effect since rental periods can only be modified from the cart. The calendar button remains visible to display helpful information, but the date picker is now disabled in this scenario to prevent confusion.
Original PR description
Issue ----- [website_sale_renting] In case there is already a rental product in the cart, it is still possbile to open the date range picker by clicking the calendar button and selecting a new period, which will have no effect as the rental period can only be changed from the cart. Change ----- Disable the date picker but keep the calendar button as it contains a help message. opw-4076088
This update corrects an incorrect documentation link displayed on the helpdesk team form view. Users will now see the correct knowledge base reference when accessing team settings, ensuring they have access to the right support resources.
Original PR description
This PR fixes a wrong documentation link in the helpdesk team form view. Task-4102472