Friday, January 17, 2025
31 changes · saas-17.4
Resolved issues and error corrections
Purchase order portal pages now show tax descriptions correctly when they include formatted text. This prevents customers or vendors from seeing incomplete tax information in the portal view.
Original PR description
From saas-17.4, the "description" field on "account.tax" has been changed from Char to Html. However, the portal view for the purchase order does not correctly render HTML fields in the taxes column. As a result, the taxes are displayed using only the "name" field in the portal purchase order view. opw-4439126 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Closing a Point of Sale session no longer incorrectly shows a warning that another user is closing it. This reduces confusion for cashiers and managers during end-of-day operations.
Original PR description
Fix issue that was always displaying popup "The session is being closed by another user. The page will be reloaded." each time you close a session. Now the `login_number` is correctly send in the context and can then be used inside `close_session_from_ui` correctly. task-id: 4485659 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
Quotation PDFs now display order date and time fields using Odoo's locale-specific format instead of a longer generic format. This keeps printed quotation templates consistent with the rest of Odoo and helps dates fit better in form fields.
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Create a new quotation template; 2. add a header which uses the `date_order` field; 3. configure the mapping from this form field to the record field; 4. print the quotation template. Issue ----- The datetime is formatted as "Jan 16, 2025, 5:59:26 PM", which is different from how dates are formatted, or how datetimes are usually formatted elsewhere in Odoo. Additionally, it may also be too long to fit in the form field. Cause ----- The `format_datetime` function is used without a `dt_format` specified, falling back on the default `'medium'`: https://github.com/odoo/odoo/blob/cbd5531697954ec62d79e0eec2c00bd61cd8b0e4/odoo/tools/misc.py#L1399 Solution -------- In order to get the format defined for the relevant locale in Odoo, `dt_format=False` should be specified in the `format_datetime` call: https://github.com/odoo/odoo/blob/cbd5531697954ec62d79e0eec2c00bd61cd8b0e4/odoo/tools/misc.py#L1427-L1430 opw-4414688
The delivery location selector map now places pins accurately at the selected location. This prevents confusion when customers or staff choose delivery points, especially when zooming in or out on the map.
Original PR description
Before this commit, markers on the location selector map were misaligned. The misalignment was proportional to the zoom level, as the marker incorrectly used the top-left corner of the anchor as its reference. This commit resolves the issue by defining the correct icon anchor position for markers.
Code cleanup and technical improvements
This update removes unused and redundant logic from the employee time off out-of-office message handling. It should make the related code easier to maintain without changing how users experience the feature.
Original PR description
Clean up `get outOfOfficeText` method by removing unused code and redundant conditions. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Problem: When a manufacturing order with a work order that was not planned is completed, a resource.calendar.leave is created for the work order. During this process the work order’s date_finished field is recalculated. This means that this work order reserves a slot in the work center to be finished in the future even though it has already been completed. Purpose: If the work order already has a date_finished value, then that value should be used instead of it being recalculated based on the
Original PR description
Problem: When a manufacturing order with a work order that was not planned is completed, a resource.calendar.leave is created for the work order. During this process the work order’s date_finished…
Problem: When a manufacturing order with a work order that was not planned is completed, a resource.calendar.leave is created for the work order. During this process the work order’s date_finished field is recalculated. This means that this work order reserves a slot in the work center to be finished in the future even though it has already been completed. Purpose: If the work order already has a date_finished value, then that value should be used instead of it being recalculated based on the availability of the work center. This will help ensure that completed work orders are not reserving time in a work center when it has already been completed. Steps to Reproduce on Runbot: 1. Create a new storable product. 2. Create a BoM for this product and navigate to the Operations tab and add an operation. 3. Create a manufacturing order, confirm it, and then produce all without planning it. 4. Navigate to the completed work order and observe the finished date is in the future. 5. Navigate to the work centers working hours’ time off and find the record associated with the work order. 6. Observe that the end date is in the future. opw-4393301 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193705 Forward-Port-Of: odoo/odoo#192393
Steps to produce: - Drop 'Text - Image' block - Replace image by illustration - Try to crop image - A notification is displayed - Try saving The issue is ImageCrop is still not opened and we are trying to wait for image_cropper_destroyed to trigger, so here we check if ImageCrop is not opened. task-4246644 Forward-Port-Of: odoo/odoo#188577
Original PR description
Steps to produce: - Drop 'Text - Image' block - Replace image by illustration - Try to crop image - A notification is displayed - Try saving The issue is ImageCrop is still not opened and we are trying to wait for image_cropper_destroyed to trigger, so here we check if ImageCrop is not opened. task-4246644 Forward-Port-Of: odoo/odoo#188577
**Steps to reproduce:** - Configure `Analytic Accounting` via `Accounting` module's settings; - Go to `Analytic Plans` through `Accounting / Configuration / Analytic Accounting`: - Select any record and change its name for a really long one;  - Go to `Expenses` app: - Select any expense in the list; - Open the `Analytic Distribution` widget. ___ **
Original PR description
**Steps to reproduce:** - Configure `Analytic Accounting` via `Accounting` module's settings; - Go to `Analytic Plans` through `Accounting / Configuration / Analytic Accounting`: - Select any record…
**Steps to reproduce:**
- Configure `Analytic Accounting` via `Accounting` module's settings;
- Go to `Analytic Plans` through `Accounting / Configuration / Analytic Accounting`:
- Select any record and change its name for a really long one;

- Go to `Expenses` app:
- Select any expense in the list;
- Open the `Analytic Distribution` widget.
___
**Issue:**
Long `Analytic Plans` names are wrapped and may lead to unreadable texts.

*(from the ticket - Odoo 17)*

___
**Expected:**
A smooth UI should display `Analytic Plans` as when accessed through an invoice line from `Accounting` app.

___
**Cause:**
The `Analytic Distribution` widget style of the invoice view inherits from the list renderer, forcing a `nowrap` style while the expense view of the same widget does not.
___
**Fix:**
Force a `nowrap` style for that specific widget.

___
opw-4357324
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#192203Apparently in normal mode (and thus the new headless mode) Chrome does not focus the document. The `activeElement` is correctly set, but `document.hasFocus()` always returns `false` and per-element focus events are suppressed. That makes tests testing or needing focus fail in the new headless mode as well as well as impossible (or at least frustrating) to `debug`. Enabling "focus emulation", which corresponds to the "Emulate a focused page" UI option, seems to resolve the issue. Fixes r
Original PR description
Apparently in normal mode (and thus the new headless mode) Chrome does not focus the document. The `activeElement` is correctly set, but `document.hasFocus()` always returns `false` and per-element focus events are suppressed. That makes tests testing or needing focus fail in the new headless mode as well as well as impossible (or at least frustrating) to `debug`. Enabling "focus emulation", which corresponds to the "Emulate a focused page" UI option, seems to resolve the issue. Fixes reliably failing tests - `/im_livechat:ExternalTestSuite.test_external_livechat` - `/account:TestUI.test_01_account_tax_groups_tour` - `/account_accountant:TestBankRecWidget.test_tour_bank_rec_widget` - `/web_editor:TestOdooEditor.test_odoo_editor_suite` Backport of: odoo/odoo@0aaf98b77feaa15f5eb30e1c251f5765e8afbfa5 Forward-Port-Of: odoo/odoo#193993
We now also delete `lib/` directory before deleting/downloading new IoT handlers. In community, this directory does not exist, resulting in Path error while trying to `iterdir()` on it. We now look for files recursively inside `iot_handlers/`, and provide the list to the updated method `unlink_file` that now accepts multiple arguments to avoid excessively switching between rw/ro filesystem modes. Forward-Port-Of: odoo/odoo#193990
Original PR description
We now also delete `lib/` directory before deleting/downloading new IoT handlers. In community, this directory does not exist, resulting in Path error while trying to `iterdir()` on it. We now look for files recursively inside `iot_handlers/`, and provide the list to the updated method `unlink_file` that now accepts multiple arguments to avoid excessively switching between rw/ro filesystem modes. Forward-Port-Of: odoo/odoo#193990
When we go to the website preview in the Odoo backend, if the current domain used (to access the backend) is not the same as the one of the previewed website, we redirect the user, and he might have to reconnect. The same is done when using the website switcher. Note: in the first case, the user is warned. We should probably do the same for the second case (?). This is a problem for the Odoo support team. When they connect to a customer database upon user request, the <customer_db_name>.odoo
Original PR description
When we go to the website preview in the Odoo backend, if the current domain used (to access the backend) is not the same as the one of the previewed website, we redirect the user, and he might have…
When we go to the website preview in the Odoo backend, if the current domain used (to access the backend) is not the same as the one of the previewed website, we redirect the user, and he might have to reconnect. The same is done when using the website switcher. Note: in the first case, the user is warned. We should probably do the same for the second case (?). This is a problem for the Odoo support team. When they connect to a customer database upon user request, the <customer_db_name>.odoo.com address is used. But as soon as they are using the website app, they are redirected to the real website domains... where they are disconnected and cannot connect themselves. To fix this issue, we allow setting up a session info parameter to bypass those website redirections. This is not to be done by real users: this will come with bugs (for the support team). Indeed, we are normally redirecting for a reason: many flows rely on using the right domain when visiting a specific website. Depending on what users have in their page, this could also simply make the website preview iframe crash. task-4069779 Forward-Port-Of: odoo/odoo#193648 Forward-Port-Of: odoo/odoo#193122
The example of values in the description are translated in other languages. It should not because only the technical values are accepted (which are never translated) It's not needed to backport to 16.0 because function description were not translated at that time. Task: 4471424 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/
Original PR description
The example of values in the description are translated in other languages. It should not because only the technical values are accepted (which are never translated) It's not needed to backport to 16.0 because function description were not translated at that time. Task: 4471424 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 Forward-Port-Of: odoo/odoo#193350 Forward-Port-Of: odoo/odoo#193205
Issue: * Accrued Expense Entry shows wrong currency symbol for 'Total in Currency' for multicurrency POs. Steps To Reproduce: * In a multicurrency environmentcreate a PO with a currency different than the one of the company and confirm it. * Receive the product and validate it. * On the PO action wheel, create `Accrued Expense Entry`. * Notice 'Total in Currency' is set to the wrong currency. Solution: * In `_compute_move_vals` I set the move's `currency_id` of the accrual move to t
Original PR description
Issue: * Accrued Expense Entry shows wrong currency symbol for 'Total in Currency' for multicurrency POs. Steps To Reproduce: * In a multicurrency environmentcreate a PO with a currency different than the one of the company and confirm it. * Receive the product and validate it. * On the PO action wheel, create `Accrued Expense Entry`. * Notice 'Total in Currency' is set to the wrong currency. Solution: * In `_compute_move_vals` I set the move's `currency_id` of the accrual move to that of the order's currency. * in `create_entries` I prevent the creation of the accrual move if orders have different currencies. * Please note that there were no issues with currency conversions. opw-4072932 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177929
For Belgium, combination of taxes and their deductibility are many. While our system of Distribution lines can be used in many cases, it's not easy or intuitive to configure, even for advanced accountants. This commit aims at making sure: - The most useful taxes are active by default - We provide a few examples of the most commonly used Deductible taxes as well as examples of specific cases (Deductible IntraCom taxes). task-id 4417039 Forward-Port-Of: odoo/odoo#191350
Original PR description
For Belgium, combination of taxes and their deductibility are many. While our system of Distribution lines can be used in many cases, it's not easy or intuitive to configure, even for advanced accountants. This commit aims at making sure: - The most useful taxes are active by default - We provide a few examples of the most commonly used Deductible taxes as well as examples of specific cases (Deductible IntraCom taxes). task-id 4417039 Forward-Port-Of: odoo/odoo#191350
**Current behavior:** The rounding applied during the cost split of a landed cost's cost computation can yield undesirable/unexpected results. **Expected behavior:** Sensible rounding. **Steps to reproduce:** 1. Create some product with arbitrary cost, with avg and real_time costing and valuation, respectively 2. Create a purchase order with 6 lines, all for that product 3. Confirm order & receive products, create bill and add a landed cost line with cost=6.85 4. Post bill a
Original PR description
**Current behavior:** The rounding applied during the cost split of a landed cost's cost computation can yield undesirable/unexpected results. **Expected behavior:** Sensible rounding. **Steps to…
**Current behavior:**
The rounding applied during the cost split of a landed cost's
cost computation can yield undesirable/unexpected results.
**Expected behavior:**
Sensible rounding.
**Steps to reproduce:**
1. Create some product with arbitrary cost, with avg and
real_time costing and valuation, respectively
2. Create a purchase order with 6 lines, all for that product
3. Confirm order & receive products, create bill and add a
landed cost line with cost=6.85
4. Post bill and create the landed cost:
* link to the receipt
* set split method to `equal`
5. Validate the LC, see that the val adjustment lines are
rounded unexpectedly- *specifically all the lines are rounded up
(beyond the per-adjustment-line value) which means the final
adjustment line cost-split share will reflect the cumulative
rounding loss of every adjustment line rounded prior*
E.g.,
<pre>
[ 1.15, 1.15, 1.15, 1.15, 1.15, 1.11 ]
^
</pre>
**Cause of the issue:**
We currently use `rounding_method='UP'`.
**Fix:**
Round HALF-UP. This will minimize the difference between the
true, unrounded split-value and the post-rounding value.
Semi-related fix: try to use consistent `ResCurrency.round()`
methods between `compute_landed_cost()` and `_check_sum()`.
opw-4200916
Forward-Port-Of: odoo/odoo#190449In odoo/odoo#192449, we removed the only code patch we had on the IoT Box. We can then remove the patching logic. Forward-Port-Of: odoo/odoo#193935
Original PR description
In odoo/odoo#192449, we removed the only code patch we had on the IoT Box. We can then remove the patching logic. Forward-Port-Of: odoo/odoo#193935
**Current behavior:** Having some product with a subcontract BoM and using the unarchived 'Subcontract' picking type and creating a purchase order to the subcontractor for that product: changing the `scheduled_date` of the generated receipt will improperly set the start/end date on the subcontracting MO which was generated alongside the receipt. Specifically, the `scheduled_date` of the receipt should correspond to the `date_finished` of the MO- however currently it is incorrectly modifying
Original PR description
**Current behavior:** Having some product with a subcontract BoM and using the unarchived 'Subcontract' picking type and creating a purchase order to the subcontractor for that product: changing the…
**Current behavior:** Having some product with a subcontract BoM and using the unarchived 'Subcontract' picking type and creating a purchase order to the subcontractor for that product: changing the `scheduled_date` of the generated receipt will improperly set the start/end date on the subcontracting MO which was generated alongside the receipt. Specifically, the `scheduled_date` of the receipt should correspond to the `date_finished` of the MO- however currently it is incorrectly modifying the MO `date_start` instead. **Expected behavior:** Modifying `scheduled_date` on the receipt will in turn modify the `date_finished` of the MO. **Steps to reproduce:** *Unarchive the Subcontract picking type operation* 1. Create a final product with a subcontract type BoM, on the BoM set some positive value for Manuf. Lead Time (in miscellaneous tab) 2. Create a purchase order to the subcontractor for that product 3. Confirm the PO -> observe that on creation, the scheduled date of the receipt matches the end date of the MO 4. Change the scheduled date of the receipt (for example, 10 days in the future) -> observe that after saving, the MO date correspondence is inverted (end date = scheduled date + lead time) instead of the start date being set with respect to the end time (like on creation), the end date gets set with respect to the start date **Cause of the issue:** It's an inconsistency with how the fields (start, end) are calculated and when. **Fix:** Make this case behave the same as the creation does- that is, end date is informed by the receipt's scheduled date and the start date of the MO is set by subtracting the lead time from there. opw-4231548 Forward-Port-Of: odoo/odoo#188389
### Before -When the eFactura status was fetched and there was an invoice content error it was not displayed. This issue was due to both the overlooking of: - the 'nok' status (sent back by the Romanian authorities regarding the presence of errors in the invoice content) - the file provided in the zip that would contain the errors -The error message shown would also only contain the first error even if many were present. ### Now -If the status fetched contains 'nok' and is theref
Original PR description
### Before -When the eFactura status was fetched and there was an invoice content error it was not displayed. This issue was due to both the overlooking of: - the 'nok' status (sent back by the Romanian authorities regarding the presence of errors in the invoice content) - the file provided in the zip that would contain the errors -The error message shown would also only contain the first error even if many were present. ### Now -If the status fetched contains 'nok' and is therefore signaling the presence of invoice content errors, then the apposite error file is chosen instead of the file with the electronic signature. This allows for following logic to account for errors, to retrieve the error message and to provide the error file as the downloadable document. -The pop up shows all the errors with an increased width to account for more content. task-4306506 Forward-Port-Of: odoo/odoo#190618
Steps to reproduce: 1. In elearning get a current course or create a new one. 2. Add or just reorder some of the slides/sections. 3. Duplicate the course. After the changes applied to improve the batch call of copy in https://github.com/odoo/odoo/commit/4ac2702c31f0e95f33f9ad554e7350bef9dab8bd the values that we get after the copy are ordered by id instead of preserving the original order, so for this case we can make sure to reorder the values and mantain the proper sequence when duplic
Original PR description
Steps to reproduce: 1. In elearning get a current course or create a new one. 2. Add or just reorder some of the slides/sections. 3. Duplicate the course. After the changes applied to improve the batch call of copy in https://github.com/odoo/odoo/commit/4ac2702c31f0e95f33f9ad554e7350bef9dab8bd the values that we get after the copy are ordered by id instead of preserving the original order, so for this case we can make sure to reorder the values and mantain the proper sequence when duplicating inside copy_data(). opw-4240873 Forward-Port-Of: odoo/odoo#188333
Issue: when the website has a domain `get_base_url` return the domain if the record calling it has a company set on it - call the function with an empty object to get the database url instead Task: 3903743 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193182
Original PR description
Issue: when the website has a domain `get_base_url` return the domain if the record calling it has a company set on it - call the function with an empty object to get the database url instead Task: 3903743 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193182
Under Japan’s Qualified Invoice System, which took effect in October 2023, the consumption tax amount should be calculated and rounded based on the total invoice amount for each tax rate, rather than on an item-by-item basis. See https://www.pwc.com/jp/en/taxnews/pdf/jtu-20221111-en.pdf @qrtl --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193522
Original PR description
Under Japan’s Qualified Invoice System, which took effect in October 2023, the consumption tax amount should be calculated and rounded based on the total invoice amount for each tax rate, rather than on an item-by-item basis. See https://www.pwc.com/jp/en/taxnews/pdf/jtu-20221111-en.pdf @qrtl --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193522
### Before When creating a new vendor bill through Vendors > 'Example Vendor 1'> Vendor Bills (magic button), if the vendor was changed to 'Example Vendor 2' and the draft saved then it would show up under the 'Example Vendor 1' in the Partner Ledger instead of under the correct 'Example Vendor 2'. This is due to the partner_id being defined in the context when going through the 'Example Vendor 1' view. ### Now During the creation of the account move lines we use a context without the
Original PR description
### Before When creating a new vendor bill through Vendors > 'Example Vendor 1'> Vendor Bills (magic button), if the vendor was changed to 'Example Vendor 2' and the draft saved then it would show up under the 'Example Vendor 1' in the Partner Ledger instead of under the correct 'Example Vendor 2'. This is due to the partner_id being defined in the context when going through the 'Example Vendor 1' view. ### Now During the creation of the account move lines we use a context without the default_partner_id. The Partner Ledger now shows the draft bill entry under the right vendor. opw-4407709 Forward-Port-Of: odoo/odoo#193842 Forward-Port-Of: odoo/odoo#192567
Steps to reproduce ================== - Install account_accountant,contacts,web_studio - Go to contacts - Open any record - Open studio - Switch to the Accounting notebook - Edit the subview form - Add a smart button => It crashes Cause of the issue ================== The button_box operation is not made to work inside a subview. We should not be able to add buttons inside subviews as they are not displayed outside studio anyways. opw-4379868 Forward-Port-Of: odoo/enterprise
Original PR description
Steps to reproduce ================== - Install account_accountant,contacts,web_studio - Go to contacts - Open any record - Open studio - Switch to the Accounting notebook - Edit the subview form - Add a smart button => It crashes Cause of the issue ================== The button_box operation is not made to work inside a subview. We should not be able to add buttons inside subviews as they are not displayed outside studio anyways. opw-4379868 Forward-Port-Of: odoo/enterprise#77085 Forward-Port-Of: odoo/enterprise#76297
This commit's purpose is to clean up the graph view of the sla report analysis model. Some fields were added on the view by a generic improvement task to handle the widget 'float_time' with grap view. In this case, those fields are a nuisance for readability, so we're getting rid of them. target version 17.0 - master task - 4351830 Forward-Port-Of: odoo/enterprise#76237
Original PR description
This commit's purpose is to clean up the graph view of the sla report analysis model. Some fields were added on the view by a generic improvement task to handle the widget 'float_time' with grap view. In this case, those fields are a nuisance for readability, so we're getting rid of them. target version 17.0 - master task - 4351830 Forward-Port-Of: odoo/enterprise#76237
When we click on the waning the action does not show the correct list. - replace the `self.env['fleet.vehicle']` with `self.env['hr.employee']` as `employees_multiple_vehicles` is a list with employee_ids not vehicle_ids Task: 4458500 Forward-Port-Of: odoo/enterprise#76679
Original PR description
When we click on the waning the action does not show the correct list. - replace the `self.env['fleet.vehicle']` with `self.env['hr.employee']` as `employees_multiple_vehicles` is a list with employee_ids not vehicle_ids Task: 4458500 Forward-Port-Of: odoo/enterprise#76679
Steps: • Install the Employee referral App. • Open the app for the first time. You will see buttons labeled Skip, and Start Now. When you click on any of these buttons, there is a noticeable blank screen for a moment during the transition. • Tap on the User Icon within the app interface. A blank screen appears momentarily before the next screen is displayed. • When you select an icon for a friend, the same issue occurs: a blank screen is displayed for a moment during the transiti
Original PR description
Steps: • Install the Employee referral App. • Open the app for the first time. You will see buttons labeled Skip, and Start Now. When you click on any of these buttons, there is a noticeable blank screen for a moment during the transition. • Tap on the User Icon within the app interface. A blank screen appears momentarily before the next screen is displayed. • When you select an icon for a friend, the same issue occurs: a blank screen is displayed for a moment during the transition. Cause: • The issue occurred because, for all the above actions, the target was set to 'main,' which caused a blank component to appear for a moment during transitions. Fix: • If we do not want to show the blank component then either the clearBreadcrumbs set to false or noEmptyTransition should be true.(refer the action_service.js) • Here i have set noEmptyTransition to true. task-4320099 Forward-Port-Of: odoo/enterprise#74955
2 Bugs: When using grouped mode in the intrastat report, the load more would load the same result everytime because no offset or limit were provided. Another bug is that when you used the non grouped mode, the would be no load more at all. opw-4342518 Forward-Port-Of: odoo/enterprise#77090 Forward-Port-Of: odoo/enterprise#76543
Original PR description
2 Bugs: When using grouped mode in the intrastat report, the load more would load the same result everytime because no offset or limit were provided. Another bug is that when you used the non grouped mode, the would be no load more at all. opw-4342518 Forward-Port-Of: odoo/enterprise#77090 Forward-Port-Of: odoo/enterprise#76543
When validating the payment CFDI in multicurrency scenario (invoice in USD, payment in MXN), we should provide the official convertion rate in the equivalenciaDR xml attribute. However, this is not always possible due to rounding: PACs with lower error tolerance (Quadrum) will not validate the payment Steps to reproduce: - With an MX company setup - Set the following rates for USD - Date 1: 0.049905678268 - Date 2: 0.049073733284 - Create an invoice in date1 of 6368.40 USD (5490.00 w
Original PR description
When validating the payment CFDI in multicurrency scenario (invoice in USD, payment in MXN), we should provide the official convertion rate in the equivalenciaDR xml attribute. However, this is not…
When validating the payment CFDI in multicurrency scenario (invoice in USD, payment in MXN), we should provide the official convertion rate in the equivalenciaDR xml attribute. However, this is not always possible due to rounding: PACs with lower error tolerance (Quadrum) will not validate the payment Steps to reproduce: - With an MX company setup - Set the following rates for USD - Date 1: 0.049905678268 - Date 2: 0.049073733284 - Create an invoice in date1 of 6368.40 USD (5490.00 with 16% tax) - Register a full payment in date 2 in company currency (129772.07 MXN) Issue: Payment CFDI will not validate when using Quadrum PAC with error ``` Code : CRP20268 Message : El campo BaseP que corresponde a Traslado, no es igual a la suma de los importes de las bases registrados en los documentos relacionados donde el impuesto del documento relacionado sea igual al campo ImpuestoP de este elemento y la TasaOCuotaDR del documento relacionado sea igual al campo TasaOCuotaP de este elemento. ``` This occurs because when computing cfdi values we take the invoice (rounded) amounts and recompute the amount in mxn using the official currency rate. While doing so, due to rounding, we accumulate imprecision, the final computation might be off by a cent or two and PACs with a lower error tolerance (Quadrum) will not be able to validate the cfdi. A solution is to internally use the computed rate, while we provide the official currency rate in the xml opw-4357985 Forward-Port-Of: odoo/enterprise#76333
The commit fixes the commit[[1]] that optimizes the cron activation logic. Before this fix, only admin users could run the manual fetch, it was wrong and we need to authorize all the users that have access to the bank sync to active/deactivate this cron by using the manual fetch. opw-4477366 [1]: https://github.com/odoo/enterprise/commit/bc3b9136d4d62fbc1d09267f73cac7ca29f1ba3a Forward-Port-Of: odoo/enterprise#77148
Original PR description
The commit fixes the commit[[1]] that optimizes the cron activation logic. Before this fix, only admin users could run the manual fetch, it was wrong and we need to authorize all the users that have access to the bank sync to active/deactivate this cron by using the manual fetch. opw-4477366 [1]: https://github.com/odoo/enterprise/commit/bc3b9136d4d62fbc1d09267f73cac7ca29f1ba3a Forward-Port-Of: odoo/enterprise#77148
Refactors the button bar component and makes the xlsx button always show on accounting reports. task-4402561 Forward-Port-Of: odoo/enterprise#75580 Forward-Port-Of: odoo/enterprise#73580
Original PR description
Refactors the button bar component and makes the xlsx button always show on accounting reports. task-4402561 Forward-Port-Of: odoo/enterprise#75580 Forward-Port-Of: odoo/enterprise#73580
*: frontdesk, hr_contract_salary, hr_referral Issue: when the website has a domain `get_base_url` return the domain if the record calling it has a company set on it - call the function with an empty object to get the database url instead Task: 3903743 Forward-Port-Of: odoo/enterprise#76888
Original PR description
*: frontdesk, hr_contract_salary, hr_referral Issue: when the website has a domain `get_base_url` return the domain if the record calling it has a company set on it - call the function with an empty object to get the database url instead Task: 3903743 Forward-Port-Of: odoo/enterprise#76888