Tuesday, October 15, 2024
30 changes · master
Enhancements to existing features
The planning time-off module's automated tests were moved to a newer testing framework. This helps keep future maintenance more reliable without changing day-to-day user behavior.
Original PR description
Purpose of this PR: This PR aims to convert QUnit tests which rely on mail/test_utils to hoot. Part of task: 3818666
The accounting reports tests now set the country before applying country-based availability rules. This keeps the test process aligned with the latest validation requirements and helps prevent avoidable failures during development.
Original PR description
In the community PR, a constraint on the availability_condition was added, where if availability_condition is set to country, the country_id should be set. Therefore, in tests where the availability condition is set to country, the country should be set before. task-4160643
This update aligns internal Python class names with their corresponding Odoo model names across accounting-related modules. It improves code consistency and maintainability without changing day-to-day business workflows.
Original PR description
see: https://github.com/odoo/odoo/pull/178200
Resolved issues and error corrections
This fix ensures companies are listed in the expected order in account reports, with the main company shown before its branches. This helps keep report results consistent and avoids confusion when reviewing multi-company data.
Original PR description
Companies will be returned main first then branches. reshuffling the expected results
Miscellaneous changes
PoS receipt should show fiskaly information but they are not shown Steps to reproduce: ------------------- * Setup you db with fiskaly * Start a PoS and sell any product > Observation: The receipt doesn't contain any information opw-4216415 Forward-Port-Of: odoo/enterprise#71779
Original PR description
PoS receipt should show fiskaly information but they are not shown Steps to reproduce: ------------------- * Setup you db with fiskaly * Start a PoS and sell any product > Observation: The receipt doesn't contain any information opw-4216415 Forward-Port-Of: odoo/enterprise#71779
This update standardizes the names, categories, and short descriptions of service-related Odoo modules. It makes app listings clearer and more consistent for users browsing project, timesheet, helpdesk, field service, and planning features.
Original PR description
Cleaning of the name, category and summary of every module linked to services applications (project, timesheet, helpdesk, field service, planning) taskid:3524126
1. Create Vendor bill and register payment 2. Create credit note for the vendor bill 4. Open the CABA entry created from vendor bill 5. Reverse Entry 6. Check DIOT report Issue: DIOT report shows negative line, but it not allowed CABA Entries should not be reverted, as the reversal generate a document with negative tax grid. They will revert automatically after the original document is reset to draft. opw-4142232 Forward-Port-Of: odoo/enterprise#71414 Forward-Port-Of: odoo/enterprise#
Original PR description
1. Create Vendor bill and register payment 2. Create credit note for the vendor bill 4. Open the CABA entry created from vendor bill 5. Reverse Entry 6. Check DIOT report Issue: DIOT report shows negative line, but it not allowed CABA Entries should not be reverted, as the reversal generate a document with negative tax grid. They will revert automatically after the original document is reset to draft. opw-4142232 Forward-Port-Of: odoo/enterprise#71414 Forward-Port-Of: odoo/enterprise#70223
The end date on the Holiday Attest (N-1) was wrong. It should be the same as the end of the notice period. Forward-Port-Of: odoo/enterprise#71780 Forward-Port-Of: odoo/enterprise#71642
Original PR description
The end date on the Holiday Attest (N-1) was wrong. It should be the same as the end of the notice period. Forward-Port-Of: odoo/enterprise#71780 Forward-Port-Of: odoo/enterprise#71642
Steps to reproduce: - Any project > Gantt view > Add any groupby filter The weekends are no longer greyed out like they were without the filter. This happens because _gantt_unavailablities in this module defers calls to the super() method which is empty unless the field is user_id. This makes sense since we don't want to get unavailability by employee if the tasks are not sorted by user, we could however use company leaves instead of leaving every day as available under other filters. opw
Original PR description
Steps to reproduce: - Any project > Gantt view > Add any groupby filter The weekends are no longer greyed out like they were without the filter. This happens because _gantt_unavailablities in this module defers calls to the super() method which is empty unless the field is user_id. This makes sense since we don't want to get unavailability by employee if the tasks are not sorted by user, we could however use company leaves instead of leaving every day as available under other filters. opw-4237953 Forward-Port-Of: odoo/enterprise#71841
1. Enable "auto-detect" on the Avatax fiscal position, 2. Go to "Abigail Peterson" contact and set "United States" as country 3. Expenses > My Expenses > New 4. Enter a description, set a total and "Abigail Peterson" as employee 5. "Create Report" > "Submit to Manager" > "Approve" > "Post Journal Entries" Issue: Validation error will raise because of the incomplete address However we only handle customer invoices and customer invoice refunds (aka credit notes) with external tax integr
Original PR description
1. Enable "auto-detect" on the Avatax fiscal position, 2. Go to "Abigail Peterson" contact and set "United States" as country 3. Expenses > My Expenses > New 4. Enter a description, set a total and "Abigail Peterson" as employee 5. "Create Report" > "Submit to Manager" > "Approve" > "Post Journal Entries" Issue: Validation error will raise because of the incomplete address However we only handle customer invoices and customer invoice refunds (aka credit notes) with external tax integrations so the constraint should only show for journal entries of this type. opw-4151193 Forward-Port-Of: odoo/enterprise#71833 Forward-Port-Of: odoo/enterprise#71543
This commit targets to fix two errors: 1. With an invoice that has a sale order related to it, when using the Addenda Autozone a traceback appeared. In attribute t-att-PODATE for the Autozone Addenda we are sending a datetime object to the strptime function of datetime which in reality it needs to receive a string object instead. This raises a TypeError Since the objective is to set a string date, we convert the date_order into a string date using strftime function from datetime mod
Original PR description
This commit targets to fix two errors: 1. With an invoice that has a sale order related to it, when using the Addenda Autozone a traceback appeared. In attribute t-att-PODATE for the Autozone Addenda…
This commit targets to fix two errors: 1. With an invoice that has a sale order related to it, when using the Addenda Autozone a traceback appeared. In attribute t-att-PODATE for the Autozone Addenda we are sending a datetime object to the strptime function of datetime which in reality it needs to receive a string object instead. This raises a TypeError Since the objective is to set a string date, we convert the date_order into a string date using strftime function from datetime module - Install 'Sales' application and 'l10n_mx_edi' module - In a company with mexican localization selected go to Sales > Quotations and create a new Order - Select a contact with the Addenda Autozone selected - Confirm it and create the corresponding invoice - Confirm the invoice and generate the CFDI 2. Traceback with invoice that have multiple sale order linked. In attribute t-att-PODATE for the Autozone Addenda is not expecting a recordset when initializing the value of sale_id, this causes a ValueError: expected singleton error when retrieving value of date_order when we create a invoice for multiple sale orders Initialize sale_id with the first order retrieved to use it task-no Forward-Port-Of: odoo/enterprise#71939 Forward-Port-Of: odoo/enterprise#71875
In migration and init scripts, when loading the chart of accounts or parts of it, we should always start with the parent companies to avoid creating duplicate chart records Forward-Port-Of: odoo/enterprise#71953 Forward-Port-Of: odoo/enterprise#71421
Original PR description
In migration and init scripts, when loading the chart of accounts or parts of it, we should always start with the parent companies to avoid creating duplicate chart records Forward-Port-Of: odoo/enterprise#71953 Forward-Port-Of: odoo/enterprise#71421
…checkout _* = website_sale_renting, website_sale_stock_renting Added the 'tourUtils.confirmOrder(),' to fix the tour. Forward-Port-Of: odoo/enterprise#71618
Original PR description
…checkout _* = website_sale_renting, website_sale_stock_renting Added the 'tourUtils.confirmOrder(),' to fix the tour. Forward-Port-Of: odoo/enterprise#71618
Before this commit the following error was observed: File "/data/build/enterprise/test_sale_subscription/tests/test_subscription_payment_integration.py", line 112, in test_subscription_invoice_automate self.assertInvoicePaid(self.invoice) File "/data/build/enterprise/test_sale_subscription/tests/test_subscription_payment_integration.py", line 66, in assertInvoicePaid self.assertEqual(invoice.amount_paid, invoice.amount_total, "Amount should match") AssertionError: 1206.3700000
Original PR description
Before this commit the following error was observed:
File "/data/build/enterprise/test_sale_subscription/tests/test_subscription_payment_integration.py", line 112, in test_subscription_invoice_automate
self.assertInvoicePaid(self.invoice)
File "/data/build/enterprise/test_sale_subscription/tests/test_subscription_payment_integration.py", line 66, in assertInvoicePaid
self.assertEqual(invoice.amount_paid, invoice.amount_total, "Amount should match")
AssertionError: 1206.3700000000001 != 1206.37 : Amount should match
Runbot errors: 100947, 100946, 100945, 100944, 100944
Forward-Port-Of: odoo/enterprise#71894
Forward-Port-Of: odoo/enterprise#71843When invoicing an order from the PoS the invoice was not signed by the government before rendering the pdf of the invoice. This lead to a missing QR Code on the invoice. Steps to reproduce: ------------------- * Install l10n_pe_edi_pos module * Open the PoS * Make an order and invoice it > Observation: The invoice should contains a QR Code attesting that the document has been signed by the government but it's not Why the fix: ------------ The issue was that the invoice was sent to
Original PR description
When invoicing an order from the PoS the invoice was not signed by the government before rendering the pdf of the invoice. This lead to a missing QR Code on the invoice. Steps to reproduce: ------------------- * Install l10n_pe_edi_pos module * Open the PoS * Make an order and invoice it > Observation: The invoice should contains a QR Code attesting that the document has been signed by the government but it's not Why the fix: ------------ The issue was that the invoice was sent to the government after the invoice was rendered. To fix it we make the call to the government manually instead of waiting for the CRON to send it. We also cancel the CRON for this specific invoice so that it is not called twice. This is based on what is done here : https://github.com/odoo/odoo/blob/647197c0eae7ef786fa3d1aeafeafd1d14fe0fae/addons/l10n_es_pos_tbai/models/pos_order.py#L18-L29 opw-4165399 Forward-Port-Of: odoo/enterprise#71926 Forward-Port-Of: odoo/enterprise#70583
Issue: When a sale order made from the website with a pickup point (for instance using a sendcloud delivery method) is confirmed, a new partner is created to mix the data of the partner making the order and the address of the pickup point. If the partner is named Bob, this new partner will be named Bob, Bob. It woul dbe much clearer if he was named: Bob, pickup point name. opw-4181787 Forward-Port-Of: odoo/enterprise#71674 Forward-Port-Of: odoo/enterprise#71567
Original PR description
Issue: When a sale order made from the website with a pickup point (for instance using a sendcloud delivery method) is confirmed, a new partner is created to mix the data of the partner making the order and the address of the pickup point. If the partner is named Bob, this new partner will be named Bob, Bob. It woul dbe much clearer if he was named: Bob, pickup point name. opw-4181787 Forward-Port-Of: odoo/enterprise#71674 Forward-Port-Of: odoo/enterprise#71567
Description of the issue this commit addresses: Since recently, the <[X] To Pay> and <[X] Late> buttons don't send the user to an account.move.line model view anymore but to an account.move model one but when that change was made, the computation of the number of items on the dashboard was not changed so it was still counting the amount of account.move. line there was in the account.move items that were shown in the view resulting in wrong totals. --- Steps to reproduce: 1. Install a
Original PR description
Description of the issue this commit addresses: Since recently, the <[X] To Pay> and <[X] Late> buttons don't send the user to an account.move.line model view anymore but to an account.move model one…
Description of the issue this commit addresses:
Since recently, the <[X] To Pay> and <[X] Late> buttons don't send the user to an account.move.line model view anymore but to an account.move model one but when that change was made, the computation of the number of items on the dashboard was not changed so it was still counting the amount of account.move. line there was in the account.move items that were shown in the view resulting in wrong totals.
---
Steps to reproduce:
1. Install account
2. Create new Vendor Bill with a split payment term ("30% now, Balance 60 Days" for example) on today's date for Bill Date.
3. Go to the dashboard, click the <[X] To Pay> button.
4. the amount of moves in the view that is opened with the button is one above the value of "X" in the button.
This is due to using a split payment term that creates two installment for a single vendor bill hence counting one more aml than there are moves.
---
Desired behavior after this commit is merged:
The right amount of To Pay and Late moves is shown at all times.
---
Note on the fix:
The fix for this issue is in the community PR of the bundle, the fix modifies a method which was overriden in enterprise and this PR addresses the override to match with the new version of the method.
---
Community PR: https://github.com/odoo/odoo/pull/181535
No task
Forward-Port-Of: odoo/enterprise#70725…ountant *: account_reports, account_online_synchronization Configuration steps on empty Bank, Misc journals should not be shown for users that do not have the Administrator/Accountant rights. They don't have the necessary rights to execute those actions anyway. This commit hide the configuration steps for non-accountant users. task-4149584 Forward-Port-Of: odoo/enterprise#71210
Original PR description
…ountant *: account_reports, account_online_synchronization Configuration steps on empty Bank, Misc journals should not be shown for users that do not have the Administrator/Accountant rights. They don't have the necessary rights to execute those actions anyway. This commit hide the configuration steps for non-accountant users. task-4149584 Forward-Port-Of: odoo/enterprise#71210
Before this commit, when the invoice consolidation option was activated and several user_id were set on subscription invoicing at the same time, a traceback was observed: ``py File "/home/arj/PycharmProjects/worktree/17.0/odoo/addons/mail/models/mail_thread.py", line 276, in create thread._message_auto_subscribe(create_values, followers_existing_policy='update') File "/home/arj/PycharmProjects/worktree/17.0/odoo/addons/mail/models/mail_thread.py", line 4138, in _message_auto_subscr
Original PR description
Before this commit, when the invoice consolidation option was activated and several user_id were set on subscription invoicing at the same time, a traceback was observed: ``py File…
Before this commit, when the invoice consolidation option was activated and several user_id were set on subscription invoicing at the same time, a traceback was observed:
``py
File "/home/arj/PycharmProjects/worktree/17.0/odoo/addons/mail/models/mail_thread.py", line 276, in create
thread._message_auto_subscribe(create_values, followers_existing_policy='update')
File "/home/arj/PycharmProjects/worktree/17.0/odoo/addons/mail/models/mail_thread.py", line 4138, in _message_auto_subscribe
res = self._message_auto_subscribe_followers(updated_values, def_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/arj/PycharmProjects/worktree/17.0/enterprise/sale_subscription/models/account_move.py", line 76, in _message_auto_subscribe_followers
if salesperson and user_id == salesperson.id and user_id != self.env.user.id:
^^^^^^^^^^^^^^
File "/home/arj/PycharmProjects/worktree/17.0/odoo/odoo/fields.py", line 5154, in __get__
raise ValueError("Expected singleton: %s" % record)
ValueError: Expected singleton: res.users(56, 60)
```
Forward-Port-Of: odoo/enterprise#71478
Forward-Port-Of: odoo/enterprise#71188**Current behavior:** If you have a production opened in barcode and consume part of a component line to produce part of the final product, leave the transfer, then re-open it and confirm -> create the backorder, the resulting backorder will have split the remaining raw moves in an unintuitive manner. **Expected behavior:** The backorder should have one move for the remaining component quantity. **Steps to reproduce:** 1. Create a production for 10 of some final product consuming 1
Original PR description
**Current behavior:** If you have a production opened in barcode and consume part of a component line to produce part of the final product, leave the transfer, then re-open it and confirm -> create…
**Current behavior:**
If you have a production opened in barcode and consume part of a
component line to produce part of the final product, leave the
transfer, then re-open it and confirm -> create the backorder,
the resulting backorder will have split the remaining raw moves
in an unintuitive manner.
**Expected behavior:**
The backorder should have one move for the remaining component
quantity.
**Steps to reproduce:**
1. Create a production for 10 of some final product consuming 10
some component -> Confirm
2. Open the production in barcode, add 5 of the final product to
its line and 5 of the component to its line -> exit the
transfer view
3. Reopen the production and validate it -> create backorder
4. Open the backorder to see the odd split of the component
product's moves
**Cause of the issue:**
When creating the backorder we normally expect each component
product to be encapsulated by a single line- so the split that
occurs when we leave the transfer initially without validating
which creates 2 moves for the same product means we get 2 moves
for the component for half of the remaining quantity for that
component.
**Fix:**
Incomplete barcode lines for production transfers should get
split into additional move lines as opposed to moves.
opw-4148050
Forward-Port-Of: odoo/enterprise#71636
Forward-Port-Of: odoo/enterprise#69149Various v18 bugfixes for MRP before the feature freeze. Current behaviour: 1. Entering the Shop Floor from a WO searches the WOs in that workcenter by state by default. 2. The timer field is blank if the WO is in ready or pending states. 3. The month substring in the weekly MPS display column header shows the month of the starting date if the given period straddles two months. Desired behaviour: 1. Entering the Shop Floor from a WO reflects the same behaviour as entering from MO, which i
Original PR description
Various v18 bugfixes for MRP before the feature freeze. Current behaviour: 1. Entering the Shop Floor from a WO searches the WOs in that workcenter by state by default. 2. The timer field is blank if the WO is in ready or pending states. 3. The month substring in the weekly MPS display column header shows the month of the starting date if the given period straddles two months. Desired behaviour: 1. Entering the Shop Floor from a WO reflects the same behaviour as entering from MO, which is the suppression of the default filter. (Depends on #68419) 2. 'Pending' text is displayed if the WO is in pending state. 3. It shows the month of the end date instead. Task ID: [4154879](https://www.odoo.com/odoo/966/tasks/4154879) Forward-Port-Of: odoo/enterprise#69897
### [FIX] account_report: fix indentation in xlsx export Currently the indentation of XLSX export of reports was sometimes broken. The current implementation only supported up to three levels of indentation in the export as well. This fix supports a virtually infinite number of indentation levels and fixes the indentation in the XLSX exports. ### [I18N] account_reports: update terms ### [IMP] account_reports: move account code column to the right in xlsx Currently, when exporting an a
Original PR description
### [FIX] account_report: fix indentation in xlsx export Currently the indentation of XLSX export of reports was sometimes broken. The current implementation only supported up to three levels of indentation in the export as well. This fix supports a virtually infinite number of indentation levels and fixes the indentation in the XLSX exports. ### [I18N] account_reports: update terms ### [IMP] account_reports: move account code column to the right in xlsx Currently, when exporting an accounting report as XLSX file, we add a column for the account codes on the very left of the sheet. This looks a bit weird and is not the most important information to have as a first column. In this commit, we move the column to the right so the name of the line will be first, followed by the account code (if applicable). We also add a column name for the account codes. task-3986483 Forward-Port-Of: odoo/enterprise#71866 Forward-Port-Of: odoo/enterprise#67111
Hide temporarily withhold subtotals widget in withhold wizard and form view There is an JS error about account-tax-totals-field-for-withhold widget Forward-Port-Of: odoo/enterprise#71806
Original PR description
Hide temporarily withhold subtotals widget in withhold wizard and form view There is an JS error about account-tax-totals-field-for-withhold widget Forward-Port-Of: odoo/enterprise#71806
- Replicate error in runbot v18: 1. Create a Vendor Bill with partner 'Instituto Ecuatoriano de Seguridad Social' 2. Add a reimbursement line with all the fields set up 3. Press the save button - Solution: Call the method _round_base_lines_tax_details before the _get_tax_totals_summary method to add the raw base amount in the base lines dictionary - Screenshot 18.0 runbot  Forward-Port-Of: od
Original PR description
- Replicate error in runbot v18: 1. Create a Vendor Bill with partner 'Instituto Ecuatoriano de Seguridad Social' 2. Add a reimbursement line with all the fields set up 3. Press the save button - Solution: Call the method _round_base_lines_tax_details before the _get_tax_totals_summary method to add the raw base amount in the base lines dictionary - Screenshot 18.0 runbot  Forward-Port-Of: odoo/enterprise#71705
In v18 I installed the EC localization and the first EC company was created. I try to create the second EC company. Cannot create and I get the following error Solution Use `@template` annotation to create journals in l10n_ec_edi Additionally, we call the method `_l10n_ec_configure_default_withhold_accounts` in load() to set accounts by default  Forward-Port-Of: odoo/enterprise#71495
Original PR description
In v18 I installed the EC localization and the first EC company was created. I try to create the second EC company. Cannot create and I get the following error Solution Use `@template` annotation to create journals in l10n_ec_edi Additionally, we call the method `_l10n_ec_configure_default_withhold_accounts` in load() to set accounts by default  Forward-Port-Of: odoo/enterprise#71495