Monday, December 23, 2024
33 changes · 18.0
Enhancements to existing features
The mail attachment viewer now shows a tooltip explaining that the popout action opens a PDF in a separate window. This makes the control easier to understand and helps users choose the right viewing option without confusion.
Original PR description
Add a new tooltip on the popout to open a pdf in a different window. task-4423155
Resolved issues and error corrections
This update prevents crashes when the Peppol invoicing module is updated before a related invoicing component. It keeps partner contact pages working reliably during staggered module updates.
Original PR description
In case `account_edi_ubl_cii`is not updated, but `account_peppol` is updated, it will crash as `id="peppol_address"` div does not exist yet. task-no
Fixes a communication issue where point-of-sale customer display status requests were missing required request details. This helps the IoT Box understand the request correctly, improving reliability of connected customer displays.
Miscellaneous changes
The domain for inverses is not always correct and may crash for computed fields. Resolve the `get_depends` using the `get_domain_list` whenever possible. task-4380712 odoo/enterprise#75965 *FIX for master* in https://github.com/odoo/odoo/pull/191351 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191319
Original PR description
The domain for inverses is not always correct and may crash for computed fields. Resolve the `get_depends` using the `get_domain_list` whenever possible. task-4380712 odoo/enterprise#75965 *FIX for master* in https://github.com/odoo/odoo/pull/191351 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191319
Original PR description
Customer display "get" action was missing `params` key, required for the IoT Box to understand the request correctly.
Fixes a chat behavior where pressing Escape while an emoji reaction menu was open could close the entire chat window instead. This makes message reactions feel more predictable and also restores the reaction tooltip after closing the menu.
Original PR description
Before this commit, when opening message reaction menu in a chat window, clicking on ESC was closing the chat window. Steps to reproduce: - as Mitchell Admin, open a chat window of channel General…
Before this commit, when opening message reaction menu in a chat window, clicking on ESC was closing the chat window. Steps to reproduce: - as Mitchell Admin, open a chat window of channel General from click on messaging menu in systray - add an emoji reaction to the last message - click on composer to have focus on it - mouse hover the reaction then click on emoji reaction tooltip - press ESC when the message reaction menu is open => it closes the chat window instead of message reaction menu. This happens because when opening the message reaction menu, the dialog is mounted. It detects dropdown is closed after a delay, and when closing the dropdown it recovers the focus before the opening of dropdown, which could be the composer of chat window. In the case when the focus was on composer, pressing ESC on message reaction menu will close the chat window due to composer being focused. This commit fixes the issue by immediately setting the dropdown state to close when clicking to open message reaction menu, so that it won't recover the old focused element such as the composer. --------- This commit also fixes a related minor bug when closing the message reaction menu then hovering the reaction was not showing the dropdown/tooltip of reaction. This happens because the `useHover()` hook was not aware the click on dropdown content closes the hovered ref, thus it kept internally thinking the item is hovered so it wasn't updating UI to open dropdown or reaction. This is fixed by adding a parameter `stateObserver` to help the `useHover()` hook to re-check whether the targets are present on UI. Thanks to this, it can detect whether the currently hovered target has been removed, thus invoking the behaviour to mark is as no longer hovered. task-4351992 Before  After 
The Mexican DIOT tax report now correctly provides the date filter information expected by the reporting interface. This prevents users from seeing an error when opening or using the tax return report filters, improving reliability for Mexican localization reporting.
Original PR description
The error in question was caused by the MX localization MexicanAccountReportCustomHandler DIOT report model neither including tax_periodicity in it's own _custom_options_initializer() which overrides the version inherited from account_generic_tax_report.py, therefore account_reports/static/src/components/account_report/filters/filters.js -> hideTaxPeriodFilter() showed an error when trying to get it. task: 4402723
This fix keeps the WhatsApp discussion experience aligned with recent Discuss app changes. The member panel now opens by default as expected, reducing confusion for users who manage or follow conversations.
Original PR description
Member panel is open by default in discuss app https://github.com/odoo/odoo/pull/191293
This fixes an error that prevented users from opening an employee's payslips when their attendance-based contract had no working schedule set. Payroll now safely uses another available timezone, falling back to UTC, so payslip access remains reliable for fully flexible contracts.
Original PR description
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The…
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The client should be able to access the payslips regardless on the working schedule value, even blank. **Steps to reproduce:** - Activate Payroll app and presence based on attendances in employees' settings; - Open or create a contract through an employee's file; - Set "Work Entry Source" to "Attendances" and leave "Working Schedule" empty; - Try to access the employee's payslips through the action button. **Cause:** No timezone found on a contract's calendar because the calendar is null. [https://github.com/odoo/enterprise/blob/18.0/hr_payroll/models/hr_payslip.py#L1141](https://github.com/odoo/enterprise/blob/18.0/hr_payroll/models/hr_payslip.py#L1141 ) **Fix:** Add a default value on `'UTC'` if no calendar has been found. **Linked:** Community PR : https://github.com/odoo/odoo/pull/186222 opw-4268672
Commit [1] broke the tooltip about domain configuration on the website switcher. They just did not appear ever anymore. At the same time, it moved a translatable term from XML to JS, which apparently works without losing translations... but it also changed the actual term by removing the "." at the end, losing the translations. This commit also restore that ".", making existing translations work again automatically, and it also patches the ".pot" to notify about the translatable term move.
Original PR description
Commit [1] broke the tooltip about domain configuration on the website switcher. They just did not appear ever anymore. At the same time, it moved a translatable term from XML to JS, which apparently works without losing translations... but it also changed the actual term by removing the "." at the end, losing the translations. This commit also restore that ".", making existing translations work again automatically, and it also patches the ".pot" to notify about the translatable term move. [1]: https://github.com/odoo/odoo/commit/dbd2f89b4fe88488d3b02e475fae6ac8878694ae Forward-Port-Of: odoo/odoo#191173 Forward-Port-Of: odoo/odoo#190877
This PR fixes an issues about the terms & conditions overlapping the rest of the content on the `website_sale` payment page. Prior to this PR, the terms & conditions was positioned using a `position-absolute` with a `bottom-0`, resulting in the element extending to the topside if its content is very long. This led to some overlapping issues with the others elements of the view. To prevent this issue to happen, we position the element with a `top-100` and remove the `<div>` that aimed to ha
Original PR description
This PR fixes an issues about the terms & conditions overlapping the rest of the content on the `website_sale` payment page. Prior to this PR, the terms & conditions was positioned using a…
This PR fixes an issues about the terms & conditions overlapping the rest of the content on the `website_sale` payment page. Prior to this PR, the terms & conditions was positioned using a `position-absolute` with a `bottom-0`, resulting in the element extending to the topside if its content is very long. This led to some overlapping issues with the others elements of the view. To prevent this issue to happen, we position the element with a `top-100` and remove the `<div>` that aimed to handle the spacing at the bottom. We now manage this spacing with a utility class. opw-4373853 | 17.0 | This PR | |--------|--------| | <img width="472" alt="image" src="https://github.com/user-attachments/assets/6b4b768f-9764-45aa-84b8-94fcab059f30" /> | <img width="461" alt="image" src="https://github.com/user-attachments/assets/5cd8548e-9b8f-4036-84dd-3f224779af27" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191346
Issue: When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur. Steps to reproduce: - Install both Sales & Timesheets modules - Create a second company - On the product form, link the "Service on Timesheet" product to the second company - Archive a product from the first company Cause: The "Service on Timesheet" product is necessary for the Timesheets app to work. Having linked it to one company restricts its ac
Original PR description
Issue: When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur. Steps to reproduce: - Install both Sales & Timesheets modules - Create a second company - On the product form, link the "Service on Timesheet" product to the second company - Archive a product from the first company Cause: The "Service on Timesheet" product is necessary for the Timesheets app to work. Having linked it to one company restricts its access to others. Solution: While this is expected behaviour, I suggest blocking the user from linking the product to a company to prevent similar issues. I propose doing so since archiving and deletion are already blocked. This change still allows unlinking from the company through the UI. Ticket: opw-4270086 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191242 Forward-Port-Of: odoo/odoo#188251
Steps to reproduce - Create a new report with studio - Chose "External Business header/footer" - Try to add a /heading1 below the header - Crash ``` UncaughtPromiseError > TypeError Uncaught Promise > Cannot read properties of null (reading 'parentNode') TypeError: Cannot read properties of null (reading 'parentNode') ``` As `startContainerChild` and `endContainerChild` refers to a dom element that can be changed in the for loop, we can declare both of them after. opw-4368425
Original PR description
Steps to reproduce - Create a new report with studio - Chose "External Business header/footer" - Try to add a /heading1 below the header - Crash ``` UncaughtPromiseError > TypeError Uncaught Promise > Cannot read properties of null (reading 'parentNode') TypeError: Cannot read properties of null (reading 'parentNode') ``` As `startContainerChild` and `endContainerChild` refers to a dom element that can be changed in the for loop, we can declare both of them after. opw-4368425 Forward-Port-Of: odoo/odoo#190191
Currently when we validate a transfer with products tracked by serial number, we may run into a bottleneck when the `quality_mrp` module is installed. That's because there's 1 move_line by Serial Number and inside `_create_assign_production_lot` those move_lines are grouped by `(company_id, product_id, lot_name)`. As we are tracking by Serial Number, each of these group key will be unique. Also, the mls are grouped in key_to_mls using `__union__` which calls `browse` to produce a recordset, effe
Original PR description
Currently when we validate a transfer with products tracked by serial number, we may run into a bottleneck when the `quality_mrp` module is installed. That's because there's 1 move_line by Serial…
Currently when we validate a transfer with products tracked by serial number, we may run into a bottleneck when the `quality_mrp` module is installed. That's because there's 1 move_line by Serial Number and inside `_create_assign_production_lot` those move_lines are grouped by `(company_id, product_id, lot_name)`. As we are tracking by Serial Number, each of these group key will be unique. Also, the mls are grouped in key_to_mls using `__union__` which calls `browse` to produce a recordset, effectively setting the `_prefetch_ids` of the results to `_ids`. Therefore, in the sml `write` override in quality_mrp when there's a condition on `self.sudo().check_ids`, the `_prefetch_ids` of self will only be the id in self, leading to 1 SELECT query by SML, i.e. 1 SELECT query by serial number. This wouldn't be that much of an issue if `quality_check.move_line_id` was properly indexed but that's not the case. So this commit first adds a missing `btree_not_null` index on `quality_check.move_line_id` to change the query plan from Seq Scan to Index Scan. Then we manually set the `_prefetch_ids` in `_create_and_assign_production_lot` to reduce the number of queries. #### speedup In a 17 database with 750 000 quality checks, on hot cache, adding the index makes a single query go from ~50ms to 0.250ms. When doing a transfer of 1000 serial numbers, setting the `_prefetch_ids` reduce the number of queries from 1000 to 1. This query takes around 120ms on hot cache without the index. Both with the index and the `_prefetch_ids`, the total time of the `_create_and_assign_production_lot` method when validating a transer of 1000 serial numbers goes from 50ms * 1000 = 50s -> 2ms * 1 = 2ms. opw-4285293 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190479
This fixes the simple, yet very common case where: - You are creating an expense for one of your employee - The partner of said employee has its field `parent_id` set to be your own company - The expense move commercial_partner_id would then always be yourself - You never pay your employees, only yourself - ??? - Jail task-id: 4345465 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I ha
Original PR description
This fixes the simple, yet very common case where: - You are creating an expense for one of your employee - The partner of said employee has its field `parent_id` set to be your own company - The expense move commercial_partner_id would then always be yourself - You never pay your employees, only yourself - ??? - Jail task-id: 4345465 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#191437 Forward-Port-Of: odoo/odoo#187778
Description of the issue/feature this PR addresses: - In Mexico, failing to assign an appropriate account for cash basis movements can be considered illegal. Therefore, it's essential to set a default one for Mexican companies. Current behavior before PR: - When the 'Cash Basis' (`tax_exigibility`) setting is enabled (via Settings → Accounting → Taxes), no 'Base Tax Received Account' (`account_cash_basis_base_account_id`) is set by default for companies using the 'Mexico' fiscal localizatio
Original PR description
Description of the issue/feature this PR addresses: - In Mexico, failing to assign an appropriate account for cash basis movements can be considered illegal. Therefore, it's essential to set a…
Description of the issue/feature this PR addresses: - In Mexico, failing to assign an appropriate account for cash basis movements can be considered illegal. Therefore, it's essential to set a default one for Mexican companies. Current behavior before PR: - When the 'Cash Basis' (`tax_exigibility`) setting is enabled (via Settings → Accounting → Taxes), no 'Base Tax Received Account' (`account_cash_basis_base_account_id`) is set by default for companies using the 'Mexico' fiscal localization. Desired behavior after PR is merged: - For companies with Mexican fiscal localization, set the default *Base Tax Received Account* to the account with code `899.01.99`. This account, already defined in the [l10n_mx data](https://github.com/odoo/odoo/blob/17.0/addons/l10n_mx/data/template/account.account-mx.csv#L47), is specified by the SAT (_Servicio de Administración Tributaria_, Mexico's primary tax authority) for miscellaneous or generic adjustments (see their [official documentation](http://omawww.sat.gob.mx/fichas_tematicas/buzon_tributario/Documents/codigo_agrupador.pdf#page=22)). opw-[4393526](https://www.odoo.com/odoo/project.task/4393526) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190279
Users may give gift cards to their customers. Acting like a payment method, gift cards will lower the total amount of a sale order up to 0. Currently, in case of fixed tax applied in the order, the tax amount cannot be covered with the card balance Steps to reproduce - Generate a Gift Card of 100$ - Create a Sale Order with a product having: - price: 90$ - quantity: 1 - A fixed tax of 10$ - Add the gift card to the order Issue: Fixed tax amount will be left uncovered. This
Original PR description
Users may give gift cards to their customers. Acting like a payment method, gift cards will lower the total amount of a sale order up to 0. Currently, in case of fixed tax applied in the order, the tax amount cannot be covered with the card balance Steps to reproduce - Generate a Gift Card of 100$ - Create a Sale Order with a product having: - price: 90$ - quantity: 1 - A fixed tax of 10$ - Add the gift card to the order Issue: Fixed tax amount will be left uncovered. This is an issue because when using the gift card (or anyhow having the total 0), it means the fixed tax cost is supported by the merchant so it should be covered by the gift card opw-4422678 Forward-Port-Of: odoo/odoo#191321
This commit prevents dropping an "inner content" block into an image field. Steps to reproduce: - Go to the "/shop" page. - Click on one of the products to go to its product page. - Enter edit mode. - Bug: It is possible to drop any "inner content" block into the "product" image field. This commit also fixes the following bug: - Go to the homepage in edit mode. - Drag and drop a "text-image" block onto the page. - Drag and drop a "badge" (or any other "inner content" block) un
Original PR description
This commit prevents dropping an "inner content" block into an image field. Steps to reproduce: - Go to the "/shop" page. - Click on one of the products to go to its product page. - Enter edit mode. - Bug: It is possible to drop any "inner content" block into the "product" image field. This commit also fixes the following bug: - Go to the homepage in edit mode. - Drag and drop a "text-image" block onto the page. - Drag and drop a "badge" (or any other "inner content" block) under the image. This is possible, and it's the intended behavior. - Click on the image and add a link to it. - Bug: Try dragging and dropping a "badge" under the image again, it is no longer possible. [opw-4273436](https://www.odoo.com/web#id=4273436&cids=1&menu_id=4720&action=333&active_id=1695&model=project.task&view_type=form) Forward-Port-Of: odoo/odoo#191285 Forward-Port-Of: odoo/odoo#190732
Steps to reproduce the issue: - Go to the settings and enable multi-routes. - Navigate to the warehouse and attempt to duplicate it. Problem: The operation types “Repair,” “Stock After Manufacturing Operation,” “Picking Before Manufacturing,” and “Manufacturing” are copied instead of creating new records. opw-4386529 Forward-Port-Of: odoo/odoo#189965
Original PR description
Steps to reproduce the issue: - Go to the settings and enable multi-routes. - Navigate to the warehouse and attempt to duplicate it. Problem: The operation types “Repair,” “Stock After Manufacturing Operation,” “Picking Before Manufacturing,” and “Manufacturing” are copied instead of creating new records. opw-4386529 Forward-Port-Of: odoo/odoo#189965
- Handle the delivery date, in import and export of invoices. - Handle the start/end date on invoice lines, in import and export. - Handle the delivery party on invoice, in import and export. task-4254875 Forward-Port-Of: odoo/odoo#191455 Forward-Port-Of: odoo/odoo#191332
Original PR description
- Handle the delivery date, in import and export of invoices. - Handle the start/end date on invoice lines, in import and export. - Handle the delivery party on invoice, in import and export. task-4254875 Forward-Port-Of: odoo/odoo#191455 Forward-Port-Of: odoo/odoo#191332
Before this commit, if you added a payment line to an order and synced it to the server, then added some items and removed the payment line to add a new one, the payment line wasn't removed from the backend. This caused the order to have different payment lines from what the user validated. This commit ensures that payment lines are correctly synced and updated in the backend. opw-4257663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Por
Original PR description
Before this commit, if you added a payment line to an order and synced it to the server, then added some items and removed the payment line to add a new one, the payment line wasn't removed from the backend. This caused the order to have different payment lines from what the user validated. This commit ensures that payment lines are correctly synced and updated in the backend. opw-4257663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190231
When transfering table some orderlines were not transfered to the new table. The showScreen method was not working properly when the next screen was an empty screen, that can happen when synching orders. opw-4186184 Forward-Port-Of: odoo/odoo#190979
Original PR description
When transfering table some orderlines were not transfered to the new table. The showScreen method was not working properly when the next screen was an empty screen, that can happen when synching orders. opw-4186184 Forward-Port-Of: odoo/odoo#190979
Currently, an error occurs when validating stock moves without location. Step to produce: - Install the `mrp_subcontracting` module (make a debugger on). - Create a product, add some quantities, and remove the value of 'Production Location' and 'Inventory Location' from it. - Click on the 'Bills of Materials' button which is in the breadcrumbs of the product form view to create a bom of this product, And set a 'BoM Type' as Subcontracting and add an Administrator as 'Subcontractors'. -
Original PR description
Currently, an error occurs when validating stock moves without location. Step to produce: - Install the `mrp_subcontracting` module (make a debugger on). - Create a product, add some quantities, and…
Currently, an error occurs when validating stock moves without location. Step to produce: - Install the `mrp_subcontracting` module (make a debugger on). - Create a product, add some quantities, and remove the value of 'Production Location' and 'Inventory Location' from it. - Click on the 'Bills of Materials' button which is in the breadcrumbs of the product form view to create a bom of this product, And set a 'BoM Type' as Subcontracting and add an Administrator as 'Subcontractors'. - Go to Inventory / Operations / Transfers / Receipts and create a new 'Receipts', add an Administrator as 'Receive From', and add product in 'Operations' which we created bom. - Open a form view of 'Receive From' (res.partner) and remove value from 'Subcontractor Location' filed which is in the 'Sales & Purchase' tab. - Again come to receipts form view and try to validate it. `ValueError: Expected singleton: stock.location()` This occurs because the system attempts to get 'location_id' from the stock move at [1], but it is not available. Link [1]: https://github.com/odoo/odoo/blob/231952114ae730bb8d4671f4a61f738e8b6dd5b8/addons/stock/models/stock_move.py#L1566 To resolve this issue, add a condition to check if location_id is not available then use the company's subcontracting location as the default value. Sentry-6156032937 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191005
Before this PR, chatbot rules with the same target URL could be ignored, leading to missing chat bot in some cases. Steps to reproduce: - Setup chatbot A on url "/". - Setup chatbot B on url "/". Only enable it if there aren't any available operators. - Ensure no operator is connected. - Go to the "/" URL as a visitor. - No chat bot is present. This occurs because the first rule is returned then discarded since there aren't any operators. We should instead ensure that the second one i
Original PR description
Before this PR, chatbot rules with the same target URL could be ignored, leading to missing chat bot in some cases. Steps to reproduce: - Setup chatbot A on url "/". - Setup chatbot B on url "/". Only enable it if there aren't any available operators. - Ensure no operator is connected. - Go to the "/" URL as a visitor. - No chat bot is present. This occurs because the first rule is returned then discarded since there aren't any operators. We should instead ensure that the second one is used a fallback. This PR corrects the `match_rule` method to do so. opw-4352046 Forward-Port-Of: odoo/odoo#190235
Before this PR, the `forward_operator` chat bot step was not taking the user lang into account. It uses the `livechat_visitor_id` field which is not available in im_livechat. It should instead use the lang from the context. At the same time, this PR fixes an issue when restarting the chat bot: the lang of the first message following a restart is incorrect. It occurs because the lang is not properly propagated. task-4411088 opw-4341694 Forward-Port-Of: odoo/odoo#191243 Forward-Port-Of: od
Original PR description
Before this PR, the `forward_operator` chat bot step was not taking the user lang into account. It uses the `livechat_visitor_id` field which is not available in im_livechat. It should instead use the lang from the context. At the same time, this PR fixes an issue when restarting the chat bot: the lang of the first message following a restart is incorrect. It occurs because the lang is not properly propagated. task-4411088 opw-4341694 Forward-Port-Of: odoo/odoo#191243 Forward-Port-Of: odoo/odoo#190832
Fixing permission access error in the test (user does not have access to crm.lead). task-4380712 odoo/odoo#191319 Forward-Port-Of: odoo/enterprise#75965
Original PR description
Fixing permission access error in the test (user does not have access to crm.lead). task-4380712 odoo/odoo#191319 Forward-Port-Of: odoo/enterprise#75965
**Issue:** When the currency symbol display position is set to `After Amount`, the currency sign of a negative amount (credit) in a bank journal entry overlaps with the amount.  **Expected:** The `Amount` field should consistently display the currency symbol after the amount when configured as such, even for negative values. **Steps to reproduce:** 1. Activate the
Original PR description
**Issue:** When the currency symbol display position is set to `After Amount`, the currency sign of a negative amount (credit) in a bank journal entry overlaps with the amount.  **Expected:** The `Amount` field should consistently display the currency symbol after the amount when configured as such, even for negative values. **Steps to reproduce:** 1. Activate the Accounting app. 2. Go to `Accounting / Configuration / Accounting / Currencies`. 3. Select the company's currency and enable debug mode. 4. Set the `Display` `Symbol Position` to `After Amount` and save.  5. Navigate to `Accounting / Dashboard` and open the `Bank` journal. 6. Locate an entry with a credit (negative) value. **Cause:** The negative sign (`-`) is correctly displayed before the input field, but it is not added to the "ghost field" used for layout alignment, causing the currency symbol to overlap with the amount. **Fix:** Ensure the negative sign is included before the ghost field as well, aligning the visual layout with the actual value.  opw-4348298 Forward-Port-Of: odoo/enterprise#75567
Add missing index on move_line_id to speedup checking the check_ids of a stock_move_line. See community PR for more info https://github.com/odoo/odoo/pull/190479 Forward-Port-Of: odoo/enterprise#75537
Original PR description
Add missing index on move_line_id to speedup checking the check_ids of a stock_move_line. See community PR for more info https://github.com/odoo/odoo/pull/190479 Forward-Port-Of: odoo/enterprise#75537
### Before The 'Invalid Statements' filter only considered the case of the Ending Balance not matching the Starting Balance + the sum of its transactions. We were not considering the case of the Starting Balance of the statement not matching the previous statement's Ending Balance. ### Now Fixed the condition of the filter to account for the second case. task-4397412 Forward-Port-Of: odoo/enterprise#75710
Original PR description
### Before The 'Invalid Statements' filter only considered the case of the Ending Balance not matching the Starting Balance + the sum of its transactions. We were not considering the case of the Starting Balance of the statement not matching the previous statement's Ending Balance. ### Now Fixed the condition of the filter to account for the second case. task-4397412 Forward-Port-Of: odoo/enterprise#75710
If Starshipit is configured with TNT service (Australia), the API does not return a pdf field for `orders/manifest` endpoint. This causes the transfer validation process to fail in Odoo. This fix does not resolve the core problem, but it will allow the stock picking to be marked as "Done", with tracking number and link available to the user. The downside is that the manifest PDF will not be available Task: 4195503 Forward-Port-Of: odoo/enterprise#75829 Forward-Port-Of: odoo/enterprise#74190
Original PR description
If Starshipit is configured with TNT service (Australia), the API does not return a pdf field for `orders/manifest` endpoint. This causes the transfer validation process to fail in Odoo. This fix does not resolve the core problem, but it will allow the stock picking to be marked as "Done", with tracking number and link available to the user. The downside is that the manifest PDF will not be available Task: 4195503 Forward-Port-Of: odoo/enterprise#75829 Forward-Port-Of: odoo/enterprise#74190
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token set up. This happens when, for example: if you have 3 tasks where 2 of them have the customer field filled and one doesn't. The function _fetchRoute tried to filter out the records that don't have the latitude/longitude. But, here, since one of the records doesn't have a partner, when it's tryi
Original PR description
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token…
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token set up. This happens when, for example: if you have 3 tasks where 2 of them have the customer field filled and one doesn't. The function _fetchRoute tried to filter out the records that don't have the latitude/longitude. But, here, since one of the records doesn't have a partner, when it's trying to look into partner.partner_latitude, it throws an error. After the error, mapBoxToken is set to '' in _partnerFetching, and called _openStreetMapAPI() resulting in displaying the error, "to get routing on your map, you first need to set up your Mapbox token." So, adding record.partner in the filter will help filter out the records that don't have partner. To Reproduce on Runbot: 1. Set up Mapbox token 2. Go to Project->Task 3. Create 3 Tasks ( 2 with customer and 1 without customer ) 4. Go to the map view and it'll display the error. opw-3682829 Forward-Port-Of: odoo/enterprise#73238 Forward-Port-Of: odoo/enterprise#55580
Forward-Port-Of: odoo/enterprise#75681
Original PR description
Forward-Port-Of: odoo/enterprise#75681
**Issue:** Some terms don't appear in Spanish in DIAN invoice PDF files.  **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Colombian database; - Configure the DIAN credentials, client, journal and product (https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/colombia.html?highlight=dian); - Create a cust
Original PR description
**Issue:** Some terms don't appear in Spanish in DIAN invoice PDF files.  **Expected:** These terms should be…
**Issue:** Some terms don't appear in Spanish in DIAN invoice PDF files.  **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Colombian database; - Configure the DIAN credentials, client, journal and product (https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/colombia.html?highlight=dian); - Create a customer invoice; - Send and print with (only) DIAN checkbox checked; - Open the PDF for the invoice. **Cause:** No translations (or erroneous ones) have been found for these keys. **Fix:** Add Spanish translations for these terms. <img width="642" alt="Capture d’écran 2024-12-09 à 11 52 44" src="https://github.com/user-attachments/assets/77f548f4-f87e-4823-9fdc-5b54d0db2a1f"> Backport of Odoo 18 fix: https://github.com/odoo/enterprise/commit/99f332e3211cf17eb7bf0a970544dd0e0e07a9f8 **Testing:** Testing needs actual credentials and complete configuration (including setting the client's language to LATAM Spanish)  opw-4343184 Forward-Port-Of: odoo/enterprise#75913
**[FIX] account_consolidation: handle empty totals when formatting account lines** When processing account lines, the totals list might be empty resulting in an IndexError when trying to set auditable to false on the last column, which leads to consolidated balance to crash. This fix just makes sure that modifying the column on this line is only done when the cols actually contains some data. opw-4205722 Forward-Port-Of: odoo/enterprise#74938
Original PR description
**[FIX] account_consolidation: handle empty totals when formatting account lines** When processing account lines, the totals list might be empty resulting in an IndexError when trying to set auditable to false on the last column, which leads to consolidated balance to crash. This fix just makes sure that modifying the column on this line is only done when the cols actually contains some data. opw-4205722 Forward-Port-Of: odoo/enterprise#74938