Thursday, December 12, 2024
14 changes · 18.0
Enhancements to existing features
Currency translation adjustments now use the exchange rate from the end of the fiscal year instead of the current rate, making balance sheet reporting more accurate for past periods. The update also corrects average exchange rate calculations when a period begins without a recorded currency rate, preventing understated values.
Original PR description
The way we initially implemented CTA, it was using the current rate for all the balance sheet accounts. Instead, we actually want to consider the closing rate ; that is, the rate of each currency at the end of the fiscal year the operation was made in. Current rate currency translation is still applied like before when CTA is not enabled on the report. task-4270102 ================================= [FIX] account: currency table: fix average rate for a period starting with no res.currency.rate If a period containing some res.currency.rate object starts by some sub-period without any range, the average rate computation considered this sub-period as having a rate of 0. It's wrong; it should be 1.
The messaging menu now presents notifications with clearer wording, better spacing, and more readable previews. Users can more easily distinguish installation prompts, push notification requests, chat messages, and delivery failures, especially on mobile.
Original PR description
Before <img width="480" alt="Screenshot 2024-12-12 at 12 53 27" src="https://github.com/user-attachments/assets/31e6def5-5899-4947-b3e2-5fddd73284d1" /> After <img width="481" alt="Screenshot 2024-12-12 at 12 58 59" src="https://github.com/user-attachments/assets/055cd267-fbc1-407b-b544-72b9cfcebb53" />
Opening the mail template list is now more reliable for companies with very large numbers of templates. The filtering process has been optimized to avoid memory issues and improve performance.
Original PR description
Before this commit, databases with thousands of mail templates could trigger a MemoryError when opening the mail template list. This issue occurred because the default filter on base templates required processing all records batch by batch in Python. With this commit, the computation is rewritten to use domain / SQL, eliminating the Python overhead.
When users open the full email composer from the chatter, their email signature is now automatically added to the message. This lets users review and adjust their signature before sending, improving consistency and control over outgoing emails.
Original PR description
When the user opens the full mail composer from the chatter, their signature will now automatically be inserted at the end of the email. This change allows the user to view and edit the signature when writing an email. task-4273520 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Sales commissions can now be calculated from invoices and recurring subscription plans, not only from subscription MRR logs. This helps ensure salespeople can receive commission for renewals or unchanged contracts even when no new subscription log is created.
Original PR description
Before this PR, it was not possible to override achievement report sql request.
Before this PR, subscription achievements were only available
throught MRR (sale.order.log) analysis. It would prevent to provide
commission when no log was created during a period. This could happen
when an important contract is renewed at the same conditions.
This commit allows to compute commissions based on
invoices and recurring plans.
Task 4398351Financial reports now use the year-end exchange rate for CTA calculations, making balance sheet currency translation more aligned with accounting expectations. Additional checks improve rate handling and Trial Balance consistency so report figures remain reliable across periods.
Original PR description
The way we initially implemented CTA, it was using the current rate for all the balance sheet accounts. Instead, we actually want to consider the closing rate ; that is, the rate of each currency at…
The way we initially implemented CTA, it was using the current rate for all the balance sheet accounts. Instead, we actually want to consider the closing rate ; that is, the rate of each currency at the end of the fiscal year the operation was made in. Current rate currency translation is still applied like before when CTA is not enabled on the report. task-4270102 ========================================================================== [IMP] account_reports: currency table: add test case If a period containing some res.currency.rate object starts by some sub-period without any range, the average rate computation considered this sub-period as having a rate of 0. It's wrong; it should be 1. The fix itself is in the corresponding community commit ; this one adds a check ensuring this doesn't break again in the future. Fixing this also revealed an issue in the Trial Balance, where the initial balance column group was computed with different rates than the rest of the report, which is not what we want for this instance. We fix that by properly setting the period_key on all of its column groups and ensuring the initial balance dates have no impact on the currency table.
Businesses can now choose whether UrbanPiper point-of-sale requests go to the live production service or the integration testing environment. This makes it safer to test setup changes before using them with real orders.
Original PR description
In this commit: === - Added `pos_urban_piper.is_production_mode` parameter to toggle between production and integration environments.
Resolved issues and error corrections
This update fixes an issue where scanning a product barcode in the self-ordering flow caused an error. It also improves the product details popup so quantity changes are shown only when appropriate for combo or configurable products.
Original PR description
Before this commit, scanning a product barcode would result in an error. Additionally, the product info popup did not check for combo and configurable correctly to show the quantity change option. opw-4393761 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Job applications from the same email address now reuse an existing candidate instead of creating a separate duplicate candidate each time. This helps recruitment teams keep applicant records cleaner and avoid confusion when reviewing multiple applications from the same person.
Original PR description
In 18.0 multiple job application from the same email address would create a new candidate for each email received. This PR aims to prevent this by only creating candidates if one does not already exist for the given email address. task-4397959 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue in the HTML editor where Firefox users could lose the last typed character when pressing backspace after a space. Backspace now removes only the intended space, reducing accidental text loss while editing content.
Original PR description
Steps to reproduce: - Open Firefox. - Type a few characters. - Add a space after the characters. - Press backspace. - Observe that both the space and the last visible character are removed.…
Steps to reproduce: - Open Firefox. - Type a few characters. - Add a space after the characters. - Press backspace. - Observe that both the space and the last visible character are removed. Description of the issue/feature this PR addresses: - In Chrome, pressing space inserts a ` ` (non-breaking space, `U+00A0`), which is treated as a visible character by `isVisibleChar`. Thus, only the whitespace is removed when backspace is pressed. - In Firefox, pressing space inserts a regular space (`U+0020`), which `isVisibleChar` identifies as invisible. As a result, the backspace action incorrectly calculates the range and removes both the space and the preceding character. Character details: - Chrome: `char.charCodeAt(0).toString(16)` → `U+00A0` - Firefox: `char.charCodeAt(0).toString(16)` → `U+0020` Desired behavior after PR is merged: - In Firefox, pressing backspace after a whitespace removes only the invisible character without affecting the preceding visible character. task-4363847
This fixes an error that prevented Hungarian companies from printing customer invoices issued in currencies other than HUF. The invoice report now consistently includes the required VAT amount in HUF, while preserving the correct handling for refunds and credit notes.
Original PR description
Problem --------- 1 - Open Odoo 18.0 2 - install l10n_hu_edi 3 - switch to "HU Company" 4 - create an outgoing normal invoice with other than HUF currency 5 - put items, taxes, select partner, etc. 6…
Problem --------- 1 - Open Odoo 18.0 2 - install l10n_hu_edi 3 - switch to "HU Company" 4 - create an outgoing normal invoice with other than HUF currency 5 - put items, taxes, select partner, etc. 6 - print the invoice -> KeyError: 'formatted_total_vat_amount_in_huf' The issue occurs because, in multi-currency, the method `_l10n_hu_get_invoice_totals_for_report` is expected to add `total_vat_amount_in_huf` to the tax dictionary as required by the invoice template. However, currently, the said method only adds `total_vat_amount_in_huf` for credit notes / refunds, in other cases, it stops early and does not add the required key-value pair in the dictionary. Solution --------- Make sure the method always adds `total_vat_amount_in_huf` to the tax dictionary, while making sure that it only reverses the tax values when it is rendering a credit note / refund like before. task-4391659 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an error when shoppers use product comparison with product specifications shown in an accordion. It avoids a naming conflict so eCommerce product pages and comparison features work reliably together.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Go to eCommerce; 2. go to a product with attributes; 3. open the editor; 4. set specification to display in accordion; 5. enable "Compare" option on Cart.…
Versions -------- - 18.0+ Steps ----- 1. Go to eCommerce; 2. go to a product with attributes; 3. open the editor; 4. set specification to display in accordion; 5. enable "Compare" option on Cart. Issue ----- > 500: Internal Server Error > Error while render the template > TypeError: tuple indices must be integers or slices, not product.public.category > Template: website_sale_comparison.specifications_table Cause ----- The `categories` value set in this template contains an ordered dict with `product.attribute.category` records as keys, and `product.template.attribute.line` records as values. When inserting its logic into the `website_sale` template, its variable name conlficts with the `categories` value returned by the `WebsiteSale` controller, which contains `product.public.category` records. The issue occurs when it tries to use a `product.attribute.category` record to index a `product.public.category` recordset. Solution -------- Rename the `categories` variable to `attrib_categories` in the `website_sale_comparison` template. opw-4356669
This fixes invoice accounting totals when Avalara returns multiple distinct taxes that Odoo displays under the same short tax name. Instead of replacing one tax amount with another, Odoo now adds them together so invoice totals match the journal entries.
Original PR description
In rare cases there can be more than one tax on the same line with the same taxName and rate. These taxes are different e.g.: ``` Charleston Co Educational Capital Improvements Tax (Special) at 1%…
In rare cases there can be more than one tax on the same line with the same taxName and rate. These taxes are different e.g.: ``` Charleston Co Educational Capital Improvements Tax (Special) at 1% Charleston Co Tt (Special) at 1% ``` But `find_or_create_tax()` maps both of them to SC SPECIAL 1%. This doesn't cause issues for invoice_line_ids, those amounts are correct. But the journal items are not because there's only one tax journal item for this tax and its summary total gets overwritten instead of added to. This leads to the total on the invoice not matching the sum of debits/credits in the journal items tab. Fix it by adding to the summary total instead of overwriting it. PS. An alternative solution is to create unique tax names by incorporating the jurisCode and possibly other relevant fields. This approach would enhance the accuracy of tax representation on invoices. However, historically, we have prioritized brevity over accuracy [1]. [1] https://github.com/odoo/enterprise/pull/68549
SEPA credit transfer XML files now include the required country code in postal address details. This helps ensure batch vendor payment files meet banking format expectations and avoids validation issues caused by missing address information.
Original PR description
### Steps to reproduce: - Install 'account_iso20022' - Accounting > Vendors > Payments - Create a new payment with "SEPA Credit Transfer" as the payment method, confirm - Duplicate it and confirm - Back to the payment list view, select the two and click "Create Batch Payment" - Validate and check the generated XML - `Ctry` is missing in the `PstlAdr` ### Cause: The ´_get_PstlAdr´ method in `account_journal_sepa_ct.py` is returning the whole `PstlAdr` element but the country code is missing. Previously the country code was always added (https://github.com/odoo/enterprise/blob/saas-17.4/account_sepa/models/account_journal.py#L322-L329), this is no longer the case in this situation. ### Solution: Add the country to the list of fields to add. opw-4287100