Daily updates from Odoo
Monday, December 2, 2024
8 changes · master
Enhancements to existing features
Luxembourg payroll now calculates meal voucher contributions more accurately, deducting only the employee contribution when applicable and supporting cases where that contribution is treated as taxable benefit in kind. It also handles vouchers above the allowed daily limit so excess amounts are included correctly for tax and social contribution purposes.
Original PR description
An employee contributes €2.8 per day towards meal vouchers. The total of €2.8 multiplied by the number of workdays is either subtracted from the employee's net salary or added to their gross salary…
An employee contributes €2.8 per day towards meal vouchers. The total of €2.8 multiplied by the number of workdays is either subtracted from the employee's net salary or added to their gross salary as a benefit in kind (BIK). This amount is then considered part of the taxable and contributory base. Currently, only the 'Subtracted from net' scenario is implemented. Additionally, if the daily meal voucher value exceeds the maximum limit (e.g., €15 for 2024), the difference between the daily voucher amount and this maximum should also be treated as BIK, similar to the case where the employee's meal voucher contribution is added to the gross salary. This commit: 1. Fixes a bug in the 'Subtracted from net' case, where the full meal voucher amount was incorrectly deducted from the employee's net salary, instead of only the employee's contribution. 2. Adds handling for the case where €2.8 times the number of workdays is added to the gross salary. 3. Implements handling for situations where the daily meal voucher amount exceeds the set maximum. 4. Makes minor adjustments to the meal vouchers section in the contract view. task-4310359
The Luxembourg payroll localization removes duplicate work entry setup data to simplify maintenance and avoid redundant configuration. It also drops an unused wage supplement entry type, reducing clutter without changing normal payroll workflows.
Original PR description
Removed duplicate file for work entry type data in Luxembourg localization task-4212665
Businesses can now use FEC import and export capabilities in any country when the relevant module is installed, instead of being limited to French companies. This makes the accounting data exchange workflow more flexible for international deployments that need the same format.
Original PR description
*: reports, fec_import The FEC import/export feature could be useful for other countries and should be allowed even if the country is not French as long as the module is installed. task-4181556
Miscellaneous changes
Forward-Port-Of: odoo/enterprise#74971
Original PR description
Forward-Port-Of: odoo/enterprise#74971
…ayslip form Steps: • Install the payroll app. • Install l10n_au_hr_payroll module. • Open payslip and remove the employee from the form and click outside to apply changes. • It will cause the traceback error. Cause of the issue: • After removing the employee name corresponding contract will become empty. • The issue is due to empty record set of contract. Fix: • Added a check to ensure contract is present. task-4341523 Forward-Port-Of: odoo/enterprise#74238
Original PR description
…ayslip form Steps: • Install the payroll app. • Install l10n_au_hr_payroll module. • Open payslip and remove the employee from the form and click outside to apply changes. • It will cause the traceback error. Cause of the issue: • After removing the employee name corresponding contract will become empty. • The issue is due to empty record set of contract. Fix: • Added a check to ensure contract is present. task-4341523 Forward-Port-Of: odoo/enterprise#74238
**Steps to reproduce:** - Install Accounting - Activate "Budget Management" in Accounting settings - Create an analytic account: * Plan: [any] - Create a Budget: * Budget Type: Expense * Period: [the current month] * A budget line with the created analytic account and any budgeted amount - Open the budget - Create a bill: * Vendor: [any] * Bill Date: [a date in the current month] * An invoice line with the analytic account - Confirm the bill - Check the Budget R
Original PR description
**Steps to reproduce:** - Install Accounting - Activate "Budget Management" in Accounting settings - Create an analytic account: * Plan: [any] - Create a Budget: * Budget Type: Expense * Period: [the…
**Steps to reproduce:**
- Install Accounting
- Activate "Budget Management" in Accounting settings
- Create an analytic account:
* Plan: [any]
- Create a Budget:
* Budget Type: Expense
* Period: [the current month]
* A budget line with the created analytic account and any
budgeted amount
- Open the budget
- Create a bill:
* Vendor: [any]
* Bill Date: [a date in the current month]
* An invoice line with the analytic account
- Confirm the bill
- Check the Budget Report
=> The committed and achieved amounts of the budget is correctly set to the amount of the bill
- Create a credit note
- Check the Budget Report again
**Issue:**
The amount is unchanged.
The credit note is not taken into account.
**Cause:**
The computation is only taking into account the analytic lines with a negative amount for an expense budget and those with a
positive amount for a revenue budget, which is not correct.
In this case, the credit note has positive amount and therefore it is excluded from the expense budget.
**Solution:**
1) An expense budget should take into account all the analytic lines in an expense account and a revenue budget should do the same with all the analytic lines in an income account.
2) Analytic lines with an account that is not an income or an expense one should be ignored.
3) Analytic lines without an account should be taken into account for an expense-type budget if:
- the category is not "other" (the default category)
- the category is "other" and the amount is negative
4) Analytic lines without an account should be taken into account for a revenue-type budget if the category is "other" and the amount is positive.
opw-4214599
Forward-Port-Of: odoo/enterprise#74235With the current links generated for the hashtags in Linkedin, there's a few corner cases that are not being handled by Linkedin side as we expect it to (ex #FLD), so from 18.0 onwards we should follow the same formatting Linkedin is using nowadays. Previous link: https://www.linkedin.com/feed/hashtag/FLD2024 Link after the change: https://www.linkedin.com/feed/hashtag/?keywords=FLD2024 In the previous links you can see the differences between them. opw-4326960 Forward-Port-Of: odoo/
Original PR description
With the current links generated for the hashtags in Linkedin, there's a few corner cases that are not being handled by Linkedin side as we expect it to (ex #FLD), so from 18.0 onwards we should follow the same formatting Linkedin is using nowadays. Previous link: https://www.linkedin.com/feed/hashtag/FLD2024 Link after the change: https://www.linkedin.com/feed/hashtag/?keywords=FLD2024 In the previous links you can see the differences between them. opw-4326960 Forward-Port-Of: odoo/enterprise#74611
[link to broken tests](https://runbot.odoo.com/web#id=68972&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) since [this pr](https://github.com/odoo/enterprise/pull/62136), a lot of things changed in swiss payroll localization. One of the changes was introduction of new module, l10n_ch_hr_payroll_elm. This affected one of the assertQueryCount tests checking compute_sheet function, which is also overwriten in said module. Therefore, we need to increase the query count acc
Original PR description
[link to broken tests](https://runbot.odoo.com/web#id=68972&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) since [this pr](https://github.com/odoo/enterprise/pull/62136), a lot of things changed in swiss payroll localization. One of the changes was introduction of new module, l10n_ch_hr_payroll_elm. This affected one of the assertQueryCount tests checking compute_sheet function, which is also overwriten in said module. Therefore, we need to increase the query count accordingly. Flamegraph of function _get_base_local_dict before above mentioned pr:  Flamegraph of same function after the pr:  Forward-Port-Of: odoo/enterprise#73831