Monday, March 31, 2025
22 changes · master
Resolved issues and error corrections
This change removes unnecessary default permission groups from shared accounting test setup and adds them only where individual tests need them. It helps keep automated tests more accurate and easier to maintain without changing customer-facing behavior.
Original PR description
Followup to https://github.com/odoo/odoo/pull/203271 This PR removes the groups that have little to no effects on the test, and fix the tests that get broken by them. Further groups require more work.
A payroll expense test now consistently uses the same accounting journal as the base setup. This prevents failures when demo data is not installed, improving reliability for development and validation environments.
Original PR description
[FIX] hr_payroll_expense: fix test failure in non-demo mode In `test_no_expense_rule_means_no_linkage` we create a new salary structure to test the case where a missing rule shouldn't link expenses to the payslip. In the copy of the base setup structure we didn't mention a journal, this lead to the use of another journal that worked because demo data would ensure it was properly setup. Without demo data, this test would fail. This commit ensures the journal used in the test is the one from the base setup.
A spreadsheet edition error message in the global filter editor is now properly prepared for translation. This helps users working in different languages see clearer, localized guidance when an error occurs.
Original PR description
Task-4680832
The Gantt view now calculates column widths correctly when some columns are folded. This prevents layout issues and helps users read schedules and timelines more reliably.
Original PR description
This commit fixes an issue introduced in https://github.com/odoo/enterprise/commit/4f3682b4edf88f5423bb4111b4f1e0d2fc42e627, where a confusion between the number of hidden columns and the actual number of folded columns led to incorrect width calculations for non-folded columns. This fix resolves the ambiguity and ensures accurate column width.
Miscellaneous changes
…putation To allow people with low gross wages to take mobility budget, we allow iterative computation to reduce it until minimum gross wage is obtained task-4647060 Forward-Port-Of: odoo/enterprise#81336
Original PR description
…putation To allow people with low gross wages to take mobility budget, we allow iterative computation to reduce it until minimum gross wage is obtained task-4647060 Forward-Port-Of: odoo/enterprise#81336
Test that resetting a statement line that was merged with a batch payment also resets the payments, especially for payments without an outstanding account. It wasn't the case because there is no real link between the batch payment and the statement line, and neither between the statement line and the payment itself. The fix is in community. Forward-Port-Of: odoo/enterprise#81911 Forward-Port-Of: odoo/enterprise#81839
Original PR description
Test that resetting a statement line that was merged with a batch payment also resets the payments, especially for payments without an outstanding account. It wasn't the case because there is no real link between the batch payment and the statement line, and neither between the statement line and the payment itself. The fix is in community. Forward-Port-Of: odoo/enterprise#81911 Forward-Port-Of: odoo/enterprise#81839
When drag-and-dropping a CSV in the bank journal, the statements lines don't get reconciled directly while they should (if a reco model allows it). Users have to wait for the auto-reconcile cron to run. After the statement and its lines have been created through import, we now trigger the cron computation. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4545446) opw-4545446 Forward-Port-Of: odoo/enterprise#82006 Forward-Port-Of: odoo/enterprise#81587
Original PR description
When drag-and-dropping a CSV in the bank journal, the statements lines don't get reconciled directly while they should (if a reco model allows it). Users have to wait for the auto-reconcile cron to run. After the statement and its lines have been created through import, we now trigger the cron computation. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4545446) opw-4545446 Forward-Port-Of: odoo/enterprise#82006 Forward-Port-Of: odoo/enterprise#81587
Forward-Port-Of: odoo/enterprise#82398
Original PR description
Forward-Port-Of: odoo/enterprise#82398
Certain reports were incorrectly referring to DIAN, even though the Industry and Commerce Tax (ICA) is administered at the district level. According to Colombian regulations (e.g., Decree 807 of 1993, Agreement 65 of 2002 for Bogotá), the collection and administration of ICA falls under the local Secretariat of Finance, not DIAN. This commit adds logic so that if the report is for ICA, it shows the correct reference to the Secretariat of Finance; otherwise, it preserves the reference to DIAN.
Original PR description
Certain reports were incorrectly referring to DIAN, even though the Industry and Commerce Tax (ICA) is administered at the district level. According to Colombian regulations (e.g., Decree 807 of 1993, Agreement 65 of 2002 for Bogotá), the collection and administration of ICA falls under the local Secretariat of Finance, not DIAN. This commit adds logic so that if the report is for ICA, it shows the correct reference to the Secretariat of Finance; otherwise, it preserves the reference to DIAN. Forward-Port-Of: odoo/enterprise#82218 Forward-Port-Of: odoo/enterprise#79630
Purpose ======= Currently, we need a write access on a document to post message in it. We want the reader of the documents to be able to post. Task-4677687 Forward-Port-Of: odoo/enterprise#82375 Forward-Port-Of: odoo/enterprise#82302
Original PR description
Purpose ======= Currently, we need a write access on a document to post message in it. We want the reader of the documents to be able to post. Task-4677687 Forward-Port-Of: odoo/enterprise#82375 Forward-Port-Of: odoo/enterprise#82302
This commit adds the possibility to access multiple attachment inside the salary rule while having the total amount of the recordset if amount is access directly task-4640076 Forward-Port-Of: odoo/enterprise#82226
Original PR description
This commit adds the possibility to access multiple attachment inside the salary rule while having the total amount of the recordset if amount is access directly task-4640076 Forward-Port-Of: odoo/enterprise#82226
Somehow we lost the frontend interface to the backend-ready downloading of folder. Also fix testing helpers to make the details panel usable without crashing, and to make non-root folders appear as children of their parents in the search panel. While we're here, linting test code introduced in this version allows to be ready to limit diffs in future fixes & FW ports. Task-4677814 Forward-Port-Of: odoo/enterprise#82505 Forward-Port-Of: odoo/enterprise#82310
Original PR description
Somehow we lost the frontend interface to the backend-ready downloading of folder. Also fix testing helpers to make the details panel usable without crashing, and to make non-root folders appear as children of their parents in the search panel. While we're here, linting test code introduced in this version allows to be ready to limit diffs in future fixes & FW ports. Task-4677814 Forward-Port-Of: odoo/enterprise#82505 Forward-Port-Of: odoo/enterprise#82310
Forward-Port-Of: odoo/enterprise#82463
Original PR description
Forward-Port-Of: odoo/enterprise#82463
Since 17.0, and before this commit, when the user navigates from an account report to another page and then comes back to the report through the breadcrumb, the user is brought to the top of the report. In 16.0, the user would be brought to the same position they were looking at. This commit brings this behavior back. task-4578468 Forward-Port-Of: odoo/enterprise#82496 Forward-Port-Of: odoo/enterprise#82072
Original PR description
Since 17.0, and before this commit, when the user navigates from an account report to another page and then comes back to the report through the breadcrumb, the user is brought to the top of the report. In 16.0, the user would be brought to the same position they were looking at. This commit brings this behavior back. task-4578468 Forward-Port-Of: odoo/enterprise#82496 Forward-Port-Of: odoo/enterprise#82072
- Adjusting fetchmail_server behavior to read specific fuel taxes from vendor bills, which can be extended for other taxes. - Adding the functionality of manually uploading CL EDI documents to account_move. Unrecognized documents are parsed as vendor bills. - Adjusting fetchmail_server methods to work with manual upload process. - Adding relevant tests for specific fuel taxes. task-4359365 Forward-Port-Of: odoo/enterprise#82386 Forward-Port-Of: odoo/enterprise#76630
Original PR description
- Adjusting fetchmail_server behavior to read specific fuel taxes from vendor bills, which can be extended for other taxes. - Adding the functionality of manually uploading CL EDI documents to account_move. Unrecognized documents are parsed as vendor bills. - Adjusting fetchmail_server methods to work with manual upload process. - Adding relevant tests for specific fuel taxes. task-4359365 Forward-Port-Of: odoo/enterprise#82386 Forward-Port-Of: odoo/enterprise#76630
Version: 18.0 When the invoice is a refund, it should reduce the achievement's amount and not increase it. opw-4610960 Forward-Port-Of: odoo/enterprise#82111 Forward-Port-Of: odoo/enterprise#81671
Original PR description
Version: 18.0 When the invoice is a refund, it should reduce the achievement's amount and not increase it. opw-4610960 Forward-Port-Of: odoo/enterprise#82111 Forward-Port-Of: odoo/enterprise#81671
The MRR log amount was stored in the currency of the SO. Before this commit, that amount was assumed to be in the currency of the plan before being converted into the currency of the current company. This commit reuse the mechanism of the MRR report to convert the amount from the SO currency to the current company currency directly. taskid: 4652771 Forward-Port-Of: odoo/enterprise#82175
Original PR description
The MRR log amount was stored in the currency of the SO. Before this commit, that amount was assumed to be in the currency of the plan before being converted into the currency of the current company. This commit reuse the mechanism of the MRR report to convert the amount from the SO currency to the current company currency directly. taskid: 4652771 Forward-Port-Of: odoo/enterprise#82175
Currently, a traceback occurs when the user tries to create a Export to Group S report. To reproduce this issue: 1) Install `l10n_be_hr_payroll_group_s` without demo data 2) Shift to the Belgium company 3) Create a running contract from payroll with stating date should be in past 4) Now create a Work Entry from payroll with the From date also be in the past 5) Now create a new `Export to Group S report` report from payroll/reporting 6) Make sure the date and moth are also in the pas
Original PR description
Currently, a traceback occurs when the user tries to create a Export to Group S report. To reproduce this issue: 1) Install `l10n_be_hr_payroll_group_s` without demo data 2) Shift to the Belgium…
Currently, a traceback occurs when the user tries to create a Export to Group S report. To reproduce this issue: 1) Install `l10n_be_hr_payroll_group_s` without demo data 2) Shift to the Belgium company 3) Create a running contract from payroll with stating date should be in past 4) Now create a Work Entry from payroll with the From date also be in the past 5) Now create a new `Export to Group S report` report from payroll/reporting 6) Make sure the date and moth are also in the past and click the `Populate` 7) Now click the `Generate Export File` Error:- ``` TypeError: can only concatenate str (not "bool") to str ``` The error is occurring because there is no `group_s_code` value by default in the company. The user has to give the value from the settings. If there is no `group_s_code` in the company, It leads to the above exception when concatenation is done between False and a string. Also, a userError was already raised from the very next life. https://github.com/odoo/enterprise/blob/eb1eff85d2119a34997067fedb602e963a5d6f02/l10n_be_hr_payroll_group_s/models/hr_payroll_export_group_s.py#L41-L43 So by making an extra check of the presence of the `group_s_code` in the company. We can resolve this issue and also make the code more robust. sentry-6289053708 Forward-Port-Of: odoo/enterprise#79334
When accountant is not installed, valid_payment_states includes both "paid" and "in payment" options, which means that amount_residual and amount_residual_currency have the same value as amount. original commit for the test: https://github.com/odoo/enterprise/commit/8faa7fccd296aab290f96b05832f1152cc2d4b1c [runbot-errors](https://runbot.odoo.com/odoo/error/161370) Forward-Port-Of: odoo/enterprise#82158
Original PR description
When accountant is not installed, valid_payment_states includes both "paid" and "in payment" options, which means that amount_residual and amount_residual_currency have the same value as amount. original commit for the test: https://github.com/odoo/enterprise/commit/8faa7fccd296aab290f96b05832f1152cc2d4b1c [runbot-errors](https://runbot.odoo.com/odoo/error/161370) Forward-Port-Of: odoo/enterprise#82158
Forward-Port-Of: odoo/enterprise#82209
Original PR description
Forward-Port-Of: odoo/enterprise#82209
Versions -------- - 18.0+ Steps ----- 1. Have purchase & sale_stock_renting installed; 2. create a 2nd company; 3. enable inter-company transactions for Sale/Purchase Orders for both; 4. enable Warehouse storage locations; 5. enable multi-step routes; 5. enable dropshipping; 6. enable rental transfers; 7. create a dropshipping route assigned to the 1st company; 8. create a purchasable, rental product, tracked by quantity; 9. add dropship route to its operations; 10. add 2nd comp
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Have purchase & sale_stock_renting installed; 2. create a 2nd company; 3. enable inter-company transactions for Sale/Purchase Orders for both; 4. enable…
Versions -------- - 18.0+ Steps ----- 1. Have purchase & sale_stock_renting installed; 2. create a 2nd company; 3. enable inter-company transactions for Sale/Purchase Orders for both; 4. enable Warehouse storage locations; 5. enable multi-step routes; 5. enable dropshipping; 6. enable rental transfers; 7. create a dropshipping route assigned to the 1st company; 8. create a purchasable, rental product, tracked by quantity; 9. add dropship route to its operations; 10. add 2nd company as vendor; 11. create a rental order with the product; 12. confirm the rental order; 13. go to the generated purchase order via the smart button; 14. confirm the purchase order; 15. switch to the 2nd company; 16. try to open the generated sale order. Issue ----- > TypeError: '>' not supported between instances of 'datetime.datetime' and 'bool' Cause ----- On confirming the purchase order, the sale order it generates gets created as a rental order, due to the `in_rental_app` context value being set. When trying to open the rental order, it attempts to compute the quantity available for the tracked rental products during the rental period. The rental order was generated based on purchase order data, which lacks any kind of rental information, hence the rental order doesn't have a rental period set. The lack of rental dates is what causes the error when trying to partition the lines based on rental period. Solution -------- When creating a sale order via a purchase order, pass the `in_rental_app=False` context value to ensure it won't be created as a rental order. opw-4583210 Forward-Port-Of: odoo/enterprise#82220
How to reproduce the issue: - Create an analytic distribution model. - In the bank reconciliation, create a new transaction. In manual operations, remove the analytic. If you reload the reconciliation, the analytic distribution is not deleted. In the `bank_rec_widget` of account_accountant, the method `_line_value_changed_analytic_distribution` is triggered when the analytic field is modified. However it does not save the new value of the analytic on the account.move.line. opw-446
Original PR description
How to reproduce the issue: - Create an analytic distribution model. - In the bank reconciliation, create a new transaction. In manual operations, remove the analytic. If you reload the reconciliation, the analytic distribution is not deleted. In the `bank_rec_widget` of account_accountant, the method `_line_value_changed_analytic_distribution` is triggered when the analytic field is modified. However it does not save the new value of the analytic on the account.move.line. opw-4460079 Forward-Port-Of: odoo/enterprise#82256 Forward-Port-Of: odoo/enterprise#78732