Wednesday, April 6, 2022
9 changes · master
Enhancements to existing features
The mail attachment viewer was simplified by removing an obsolete internal download handler. This helps keep the messaging experience easier to maintain without changing how business users work with attachments.
Original PR description
Task-2579306
Odoo now handles payments and invoices in different currencies more accurately during reconciliation. This keeps exchange-rate differences visible as payments are matched, helping invoices close correctly and supporting local reporting requirements such as payment EDI in Mexico.
Original PR description
==== PURPOSE ==== The current reconciliation is made to support two distinct kind of reconciliation: 1) Everything is expressed in foreign currency, then perform the reconciliation using this…
==== PURPOSE ==== The current reconciliation is made to support two distinct kind of reconciliation: 1) Everything is expressed in foreign currency, then perform the reconciliation using this currency: Suppose EUR is the foreign currency and USD is the company currency. Reconciling: L1: 120 EUR 60 USD (rate 2:1) L2: 240 EUR 80 USD (rate 3:1) ..leads to a partial of 120 EUR and min(80, 60) = 60 USD After the reconciliation, L1 is fully matched but L2 is still open with 120 EUR but only 20 USD. This is the first problem is the current reconciliation because L2 is supposed to have a rate 3:1 so the residual amount should be 120 / 3 = 40 USD. Since the rate is no longer consistent on L2, the user will probably close the reconciliation by using another line in EUR or will close manually the reconciliation with 20 USD but without any additional exchange difference journal items explaining where this unconsistency comes from. 2) Is the current lines are mixing multiple currencies, the reconciliation is made using the company's currency. In some countries like Mexico, Ethiopia or Costa Rica, the customer is free to pay an invoice using the company's currency instead of the foreign one. So, suppose USD is the foreign currency and MXN is the company currency. The invoice is expressed by: L1: 120 USD 60 MXN (rate 2:1) Is the customer is paying at a date in which the rate is 3:1, he is free to pay either L2: 120 USD 40 MXN (rate 3:1), either L2: 40 MXN. In the second case, he is expecting the invoice to be fully paid because its paiement is equivalent to 120 USD at the payment date. In Odoo, the second case leads to an open balance of 20 MXN and the invoice is not completely paid. Even this situation could be easily fixed by a manual write-off, this makes the Mexican payment EDI very complicated to fullfil correctly because the government is expecting a complete matching between the invoice and the payment. When the customer is paying multiple invoices or the invoices are paid using multiple payments, the currently generated EDI file in Odoo is wrong. ==== IMPLEMENTATION ==== An exchange difference journal entry could be now created directly at each partial to ensure the rate between amount_residual_currency and amount_residual. Also, when reconciling two lines, one with a foreign currency and one expressed in company currency, the reconciliation is made in foreign currency. github issue: https://github.com/odoo/odoo/issues/37469 task: 2669371 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
This update standardizes how Odoo searches records by name across many business areas, making results more consistent and reliable. It also simplifies older search logic, reducing the chance of missed matches or incorrect exclusions when users search in forms and lists.
Original PR description
Most of the extensions of `_name_get` are very similar and only want to search for the given string in multiple fields. A lot of extensions also don't take into account the negative operators. Some implementations were also really outdated and needlessly complicated. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change improves the internal mail app test setup so tests no longer alter shared model definitions while running. It helps keep automated checks more reliable and reduces the risk of test-only side effects affecting development quality.
Original PR description
enterprise: https://github.com/odoo/enterprise/pull/25928 task-2792108
This update standardizes how records are searched by name across several Odoo Enterprise apps. It should make search behavior more consistent for users while simplifying future maintenance of these features.
Original PR description
Linked to https://github.com/odoo/odoo/pull/86588
User pictures in referral and subscription-related screens now use the shared avatar service, so a standard avatar appears when no personal photo is available. This creates a more consistent and complete experience across affected portal and employee-facing views.
Original PR description
Description of the issue/feature this PR addresses: With the addition of the web/avatar API in odoo/odoo#64868, some enterprise modules had to change their web/image API call to web/avatar for consistency matters. Current behavior before PR: If the user had no image set, no avatar was shown in the portal subscriptions and lunch module. Desired behavior after PR is merged: Changes the picture URLs in subscription and lunch module to point to the new avatar API. task-2404630
This update adjusts internal automated tests for the Documents-related apps to use a newer server setup method. It helps keep future development safer and more reliable without changing day-to-day user workflows.
Original PR description
community: https://github.com/odoo/odoo/pull/88083 task-2792108
The Sign app now supports uploading multiple documents when preparing a signing request. This streamlines document workflows by reducing repeated setup work for users who need several files signed together.
Odoo now handles invoice and payment reconciliation more accurately when foreign currencies and company currencies are mixed. This reduces manual corrections, keeps exchange differences properly recorded, and helps ensure compliant payment reporting in countries such as Mexico.
Original PR description
==== PURPOSE ==== The current reconciliation is made to support two distinct kind of reconciliation: Everything is expressed in foreign currency, then perform the reconciliation using this currency:…
==== PURPOSE ==== The current reconciliation is made to support two distinct kind of reconciliation: Everything is expressed in foreign currency, then perform the reconciliation using this currency: Suppose EUR is the foreign currency and USD is the company currency. Reconciling: L1: 120 EUR 60 USD (rate 2:1) L2: 240 EUR 80 USD (rate 3:1) ..leads to a partial of 120 EUR and min(80, 60) = 60 USD After the reconciliation, L1 is fully matched but L2 is still open with 120 EUR but only 20 USD. This is the first problem is the current reconciliation because L2 is supposed to have a rate 3:1 so the residual amount should be 120 / 3 = 40 USD. Since the rate is no longer consistent on L2, the user will probably close the reconciliation by using another line in EUR or will close manually the reconciliation with 20 USD but without any additional exchange difference journal items explaining where this unconsistency comes from. Is the current lines are mixing multiple currencies, the reconciliation is made using the company's currency. In some countries like Mexico, Ethiopia or Costa Rica, the customer is free to pay an invoice using the company's currency instead of the foreign one. So, suppose USD is the foreign currency and MXN is the company currency. The invoice is expressed by: L1: 120 USD 60 MXN (rate 2:1) Is the customer is paying at a date in which the rate is 3:1, he is free to pay either L2: 120 USD 40 MXN (rate 3:1), either L2: 40 MXN. In the second case, he is expecting the invoice to be fully paid because its paiement is equivalent to 120 USD at the payment date. In Odoo, the second case leads to an open balance of 20 MXN and the invoice is not completely paid. Even this situation could be easily fixed by a manual write-off, this makes the Mexican payment EDI very complicated to fullfil correctly because the government is expecting a complete matching between the invoice and the payment. When the customer is paying multiple invoices or the invoices are paid using multiple payments, the currently generated EDI file in Odoo is wrong. ==== IMPLEMENTATION ==== An exchange difference journal entry could be now created directly at each partial to ensure the rate between amount_residual_currency and amount_residual. Also, when reconciling two lines, one with a foreign currency and one expressed in company currency, the reconciliation is made in foreign currency. github issue: https://github.com/odoo/odoo/issues/37469 task: 2669371