Daily updates from Odoo
Navigate
Branch
Tuesday, April 8, 2025
45 changes
29 changes
New functionality added to Odoo
Retail point of sale now supports online bookings, helping businesses let customers reserve services or time slots before visiting. The appointment functionality has also been consolidated under a broader PoS appointment module, making it applicable beyond restaurant use cases.
Original PR description
This commit adds online booking to retail PoS. The module pos_restaurant_appointment is now pos_appointment. Community PR: https://github.com/odoo/odoo/pull/203477 taskId: 4659056
Enhancements to existing features
The rental order test now selects an available lot from the list instead of typing a fixed lot number. This makes the automated check more reliable and helps prevent false test failures without changing customer-facing behavior.
Original PR description
In this commit:
===
- Replaced `enterLotNumber("123456789")` with `selectNthLotNumber(1)` to ensure proper lot selection in the test case.
task-4572186
related-https://github.com/odoo/odoo/pull/199730Grouped kanban pages now use the same responsive layout as standard kanban pages instead of a separate view. This makes appointment, sign, and website visitor screens more consistent and better adapted to different column layouts.
Original PR description
Previously, a separate kanban grouped view was used when records had groups applied.This task removes the grouped view and adjusts the ungrouped view to fit the necessary columns dynamically, ensuring responsiveness and consistency across views. Task-4582920
Documents now offers a clearer inspection experience with better details panels, chatter access, focus navigation, and activity view support. Users can more easily review document information, move through records, open previews or folders from the file-type icon, and link documents to business records.
Original PR description
Improve Documents UI: better look, details inspection and chatter on focus, and in activity view. Other notable change in list view: showing preview, navigating inside folders, or opening a spreadsheet is now done using the mimetype icon. See details in individual commits Task-4596337
Spreadsheet pivots now insert real date values for day and month groupings, reducing confusion across different date formats and locales. Autofill also better recognizes equivalent date values in pivot formulas, making spreadsheet dashboards easier to maintain.
Original PR description
See https://github.com/odoo/odoo/pull/204760
Indian payroll setup no longer assigns a default partner to TDS under company contributions. This aligns payroll records with the fact that TDS is deducted from employees, not contributed by the company, helping avoid misleading contribution reporting.
Original PR description
TDS is always deducted from the employee side and is not part of the company's contribution. Hence, the default partner has been removed from the TDS record under company contribution. Key Changes: - Removed the default partner from the TDS company contribution rule. Task - 4667917
This update standardizes how internal messaging-related data fields are defined across Odoo apps. It helps keep mail, approvals, VoIP, and WhatsApp features more consistent and easier to maintain, with little direct change for end users.
Original PR description
https://github.com/odoo/odoo/pull/204634
The spreadsheet comment side panel was updated to match recent menu behavior changes. This helps menus appear in the right place and keeps the commenting experience consistent for users.
Original PR description
The `Menu` component changed props in o-spreadsheet. Task: [4655815](https://www.odoo.com/odoo/2328/tasks/4655815)
Resolved issues and error corrections
A small issue in the Brazilian electronic invoicing point-of-sale receipt logic was corrected. This prevents an automated testing error and helps ensure receipts continue to display reliably for Brazilian POS users.
Original PR description
In receipt override in l10n_br_edi_pos module we were trying to access config_id from order but the access need to be done through config. runbot error: 162185
This fixes an issue in the Swedish Point of Sale module where receipts checked the wrong source for fiscal device settings. It helps prevent receipt display or validation errors for Swedish POS configurations using fiscal data modules.
Original PR description
Module l10n_se_pos was trying to access to `useBlackBoxSweden` method from the order in the receipt. But since the receipt do not have the order instance, we need to use config.iface_sweden_fiscal_data_module Which is done in the commit. runbot error: 161626
Creating an anniversary marketing campaign no longer fails because the required server action status is now set correctly. This restores the campaign setup flow for users relying on website sales marketing automation.
Original PR description
Try creating the anniversary campaign, it will throw an error. The reason was due to a recent change in `ir.actions.server` [1]. This commit [2], removes the default value of `state`, but we're not passing any value for `state` while creating the campaign, thus it throws an error, as `state` is required for server action. [1]: https://github.com/odoo/odoo/pull/202347 [2]: https://github.com/odoo/odoo/commit/e84210e5b2de8791ced9ee715197a6b7db26eecb Task-4707098
A small typo was corrected in the manufacturing planning code that checks replenishment status. This helps ensure planning information is interpreted consistently and avoids minor errors in the master production schedule.
Original PR description
Typo from 94586ddbf05befe0b202d1efa971a225344f9ef5.
The employee search popup in appraisals no longer shows the Launch Campaign button, preventing users from starting appraisal campaigns from the wrong place. The appraisal employee list now uses the intended view so search results behave consistently.
Original PR description
After this commit, the `Launch Campaign` button is removed from the employee search modal. The newly inherited `view_employee_tree` mode is modified to be `primary` to create a separate list view. Then, the `open_view_employee_list_my` action view is updated with the newly created list view. By default, `Search more...` selects the first available list view if none has a priority, so it now uses the original `view_employee_tree` list view." task-4675979
Applicant attachments are now recreated as Documents records when needed, so recruiters can find CVs and other files from the applicant attachment view. This prevents missing documents after installing or reinstalling the Documents app, reducing confusion during hiring workflows.
Original PR description
steps to reproduce: - install `website_hr_recruitment` - apply to a job with an attachment - install Documents app - find the newly created applicant in Recruitment app - click on the attachment icon (`fa fa-paperclip`) - notice that there are no documents there, even after attaching one. description: (the same thing happens when we have Documents app installed, and new applicants apply, and if the Document app is uninstalled and re-installed, the documents won't be present anymore, quite naturally what actually should happen!) - but the task requires to have documents again added, if re-installed. cause: - Demo CV entries are not done in `documents.document` + uninstalling the module naturally removes all the documents, and when re-installed show empty view. fix: - if a document doesn't exist for the given attachment, we create it, and then show it. Task-4667914
Features or functions removed from Odoo
This change removes unused internal code from the Quality Control module. It has no functional impact for users, but helps keep the system easier to maintain and reduces future cleanup work.
Original PR description
The '_compute_show_validate' method in `stock.picking` was overridden in the quality_control module. However, this logic is unused and has no functional impact. - `show_validate` is already removed in this PR [Upgrade](https://github.com/odoo/upgrade/commit/8c4525d82559b00166efc1c79dcd7e8ed903e865#diff-a3e12f1aaf1abb34cce970e54be2476f58de074f6e2418267ec1818268a06a37R12). - `_compute_show_validate` method is removed in this PR [Community](https://github.com/odoo/odoo/pull/137864/files#diff-79cbc763115661182c02285c07320098510f5686700359ddee67443b4893dc30L498). This commit removes the dead code to keep the codebase clean.
Miscellaneous changes
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Original PR description
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
Original PR description
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
Before, when sending a reminder for the followup via the send and print wizard, the customer statement, or the followup report, were only included if you checked email, but if only print was selected, the report was missing in the PDF. Now, when selecting print, email, or both, you get the report. opw-4570715 Forward-Port-Of: odoo/enterprise#82498 Forward-Port-Of: odoo/enterprise#81463
Original PR description
Before, when sending a reminder for the followup via the send and print wizard, the customer statement, or the followup report, were only included if you checked email, but if only print was selected, the report was missing in the PDF. Now, when selecting print, email, or both, you get the report. opw-4570715 Forward-Port-Of: odoo/enterprise#82498 Forward-Port-Of: odoo/enterprise#81463
Before this commit, the `ProjectEnterpriseTestUi.test_01_ui` test fails without demo data because the user is not considered as overloaded. The reason is because the user has more than one task assigned to him when the demo data is installed and so when a new task is planned for him, the system will see the sum of the allocated_hours of all tasks assigned to him inside the period displayed in the gantt is higher than the hours he can do. This commit makes sure the test does not depend on the
Original PR description
Before this commit, the `ProjectEnterpriseTestUi.test_01_ui` test fails without demo data because the user is not considered as overloaded. The reason is because the user has more than one task assigned to him when the demo data is installed and so when a new task is planned for him, the system will see the sum of the allocated_hours of all tasks assigned to him inside the period displayed in the gantt is higher than the hours he can do. This commit makes sure the test does not depend on the demo data and increase the allocated hours of the task creates inside the test. runbot-111415 Forward-Port-Of: odoo/enterprise#80334
pos*: pos_blackbox_be, pos_restaurant_preparation_display, pos_self_order_iot, pos_urban_piper In this commit, we adapt the point of sale modules to be compliant with the belgian restaurant certification. Community PR: https://github.com/odoo/odoo/pull/201979 Forward-Port-Of: odoo/enterprise#81348
Original PR description
pos*: pos_blackbox_be, pos_restaurant_preparation_display, pos_self_order_iot, pos_urban_piper In this commit, we adapt the point of sale modules to be compliant with the belgian restaurant certification. Community PR: https://github.com/odoo/odoo/pull/201979 Forward-Port-Of: odoo/enterprise#81348
- Replacing all special characters in generated EFT files with normal ascii counterparts to fit the requirements of the CPA005 standard. - Adding an assert for it in tests. task-4609483 Forward-Port-Of: odoo/enterprise#81015
Original PR description
- Replacing all special characters in generated EFT files with normal ascii counterparts to fit the requirements of the CPA005 standard. - Adding an assert for it in tests. task-4609483 Forward-Port-Of: odoo/enterprise#81015
Before this commit, the fetch error was not correctly caught, leading to a crash of the runbot when the server was not reachable. runbot: 160959 Forward-Port-Of: odoo/enterprise#82431
Original PR description
Before this commit, the fetch error was not correctly caught, leading to a crash of the runbot when the server was not reachable. runbot: 160959 Forward-Port-Of: odoo/enterprise#82431
In studio, editing a kanban, activate show invisible elements if needed Before this commit, when the footer had many items, those were not wrapped so, they overflew under the next card and were unreachable and unclickable. After this commit the overflowing elements are reachable and clickable, but still outside of the kanban box. They just have a z-index high enough to be visible and reachable. The motivation behind this choice is that we cannot really apply targetted visual rules as th
Original PR description
In studio, editing a kanban, activate show invisible elements if needed Before this commit, when the footer had many items, those were not wrapped so, they overflew under the next card and were unreachable and unclickable. After this commit the overflowing elements are reachable and clickable, but still outside of the kanban box. They just have a z-index high enough to be visible and reachable. The motivation behind this choice is that we cannot really apply targetted visual rules as those would betray the actual visual on the view in normal mode. task-4609581 Forward-Port-Of: odoo/enterprise#81820
Forward-Port-Of: odoo/enterprise#82941
Original PR description
Forward-Port-Of: odoo/enterprise#82941
Before this commit, the `Europe/Brussels` timezone was applied 2 times on the calculation of the end_datetime when the slot is linked to a template and so the end date time of the slot could suddenly be before the start date time, which should not be possible. The timezone is applied 2 times, because the start date time computed already got the right timezone, so it is not needed to apply again the timezone since the timezone is already defined thanks to the start date time used in the co
Original PR description
Before this commit, the `Europe/Brussels` timezone was applied 2 times on the calculation of the end_datetime when the slot is linked to a template and so the end date time of the slot could suddenly be before the start date time, which should not be possible. The timezone is applied 2 times, because the start date time computed already got the right timezone, so it is not needed to apply again the timezone since the timezone is already defined thanks to the start date time used in the computation. This commit makes sure the timezone is applied once during the calculation of the end datetime, to be sure the difference between UTC and the timezone to apply is not applied 2 times on the end date time. runbot-error-162055 Forward-Port-Of: odoo/enterprise#82529
Currently inter-company kit transactions aren't working: 1) Selling a kit product to another internal company (intercompany) and validating the delivery will not update the `qty_delivered` field on the corresponding `SaleOrderLine`: Currently the filters to capture moves which informs the delivered quantity of the line do not account for moves with `location_dest_id` pointing to the inter-company transit location (which should count towards the delivered value) 2) Receiving a kit pro
Original PR description
Currently inter-company kit transactions aren't working: 1) Selling a kit product to another internal company (intercompany) and validating the delivery will not update the `qty_delivered` field on the corresponding `SaleOrderLine`: Currently the filters to capture moves which informs the delivered quantity of the line do not account for moves with `location_dest_id` pointing to the inter-company transit location (which should count towards the delivered value) 2) Receiving a kit product via intercompany will result in an inaccurate update on the `qty_received` field on the corresponding `PurchaseOrderLine`: Tests added here due to inter-company rule modules being enterprise only. opw-4267210 Forward-Port-Of: odoo/enterprise#82883 Forward-Port-Of: odoo/enterprise#78170
**Current behavior:** `expected_component_cost_unit` does not accurately reflect the per unit price of a component depending on the manufacturing order's quantity ratios. **Expected behavior:** Accurate price per unit of component. **Steps to reproduce:** 1. Create a finished product with a BoM: * has a 1:1 comp to final ratio with quantities greater than 1 (e.g., 2 units component producing 2 units final) * make component cost $100 for sake of example * has a workorder with a workce
Original PR description
**Current behavior:** `expected_component_cost_unit` does not accurately reflect the per unit price of a component depending on the manufacturing order's quantity ratios. **Expected behavior:**…
**Current behavior:** `expected_component_cost_unit` does not accurately reflect the per unit price of a component depending on the manufacturing order's quantity ratios. **Expected behavior:** Accurate price per unit of component. **Steps to reproduce:** 1. Create a finished product with a BoM: * has a 1:1 comp to final ratio with quantities greater than 1 (e.g., 2 units component producing 2 units final) * make component cost $100 for sake of example * has a workorder with a workcenter with capacity sufficient to handle full BoM quantity producing (so 2 if used 2 -> 2 on BoM) 2. Create & process MO for finished product 3. Open the Production Analysis pivot view in the mrp app 4. In the `Measures` dropdown, check the `Expected Component Cost / Unit` field -> see that it shows `$50 / unit` instead of the expected `$100 / unit` **Cause of the issue:** This per unit value is divided by the BoM `product_qty` 2x: 1: https://github.com/odoo/enterprise/blob/ab86dadfcbe9662d611127546d9fb054759d325f/mrp_account_enterprise/reports/mrp_report.py#L184 2: https://github.com/odoo/enterprise/blob/ab86dadfcbe9662d611127546d9fb054759d325f/mrp_workorder_hr_account/report/mrp_report.py#L32 **Fix:** Remove the additional division operation in `mrp_workorder_hr_account` opw-4474710 Forward-Port-Of: odoo/enterprise#82913 Forward-Port-Of: odoo/enterprise#80560
When you apply a journal entry action (e.g. Create Vendor Bill) to several documents at once, you should be redirected to the journal list view. Since version 18.0, you're redirected to the form view of the last entry you've just created. The corresponding actions have several sub-actions and cannot be launched on several records at the same time. The selected documents are processed individually and the last sub-action returns systematically a form view. To fix this, we inject a con
Original PR description
When you apply a journal entry action (e.g. Create Vendor Bill) to several documents at once, you should be redirected to the journal list view. Since version 18.0, you're redirected to the form view of the last entry you've just created. The corresponding actions have several sub-actions and cannot be launched on several records at the same time. The selected documents are processed individually and the last sub-action returns systematically a form view. To fix this, we inject a context key containing the ids of the selection.Then the last sub-action uses it to determine the appropriate view(s) to return. task-4606751 Forward-Port-Of: odoo/enterprise#80273
This fix aims to increase the operation timeout to reduce the risk of timeouts when sending documents. If a timeout occurs when sending a document, Odoo will consider it an error and allow the resend, even though the document will have been successfully accepted by the Carvajal service. opw-4608647 Forward-Port-Of: odoo/enterprise#82715
Original PR description
This fix aims to increase the operation timeout to reduce the risk of timeouts when sending documents. If a timeout occurs when sending a document, Odoo will consider it an error and allow the resend, even though the document will have been successfully accepted by the Carvajal service. opw-4608647 Forward-Port-Of: odoo/enterprise#82715
16 changes
New functionality added to Odoo
Android point-of-sale devices can now manage content on an external customer-facing screen. This enables shops using mobile POS hardware with secondary displays to show checkout information to customers more clearly.
Original PR description
Implemented a communication bridge to enable customer display support on Android PoS devices with external screens. This allows the frontend web application to control content displayed on the secondary screen. See https://github.com/odoo/mobile/pull/252 See https://github.com/odoo/mobile/pull/254 task-4456187
Enhancements to existing features
This update adds a dedicated test class for tax total handling in the Italian Point of Sale module. It helps reduce the risk of tax calculation regressions and supports more reliable compliance-related behavior.
Belgian payroll now supports mobility budget payments in salary rules and related payroll inputs. The update also includes these amounts in the required DmfA social security declaration, helping employers stay compliant with Belgian reporting rules.
Improves Australian Single Touch Payroll reporting by separating year-to-date values by income stream, supporting missed pay period updates, and improving finalisation controls. It also fixes payroll payment reconciliation, termination payment reporting, and correction handling to make compliance reporting more accurate and easier to manage.
Original PR description
**Year to date computation improvements** - Some inputs on the YTD can go to multiple rules. Therefore, we add manual recomputation of the inputs for payslips. It uses opening balances to compute the…
**Year to date computation improvements**
- Some inputs on the YTD can go to multiple rules. Therefore,
we add manual recomputation of the inputs for payslips.
It uses opening balances to compute the total payslip YTD
values.
- A major update is the addition of Income Stream types to
Year to Date values. This allows for grouping payslips with
income stream type for employees that may have multiple income
stream through a single fiscal year. STP requires reporting
the year to date values for each income stream type separately.
**Single Touch Payroll Improvements**
- Adds income stream types to the STP report. This
allows for users with multiple income streams in
a single fiscal year to be repored without finalisation.
- Fixes Termination payments for genuine and
non-genuine redundancy payments and how taxes are
reported for taxible and non-taxible components.
- Fixing Full file replacement for STP. This adds
constrains for FFR, allows old payments to auto reconcile
on a changed payslip after resubmission.
- Adds support for missed reporting of payslips.
If a user forgets to report a pay period and continues
with the next pay period, They have 2 options:
1. Create a back dated submit event with the old
year to date values.
2. Create an update event that amends the year to date
values at todays date.
In odoo we go for option 2. For a missed report, we create an Update
event that updates all the ytd values up til today's date.
- Fixes zeroing of YTD on Single touch payroll.
- Adds a correction input type for Basic salary corrections
without having to make any changes to past payslips. This helps
cover under or over-payments
- Improve validation for Single touch payroll. With better
testing and file generation. This adds better error
handling before running the xml validation step. This
lowers the possibility of errors after file generation.
- Improve performance for YTD computation to allow batching and
caching of the values using computes on the payslips. Relies fully
on the ORM using search_fetch to optimize queries for the YTD
computation.
**AU Payroll Payment reconciliation**
- Allows old payments to auto reconcile on a changed
payslip after resubmission.
**Standard Fixes**
- Allow auto install of hr_payroll_account if accounting and Payroll
app are installed. This also subsequently installs localised versions.
- Payment register wizard fails to compute the amount, journal, etc
since the `_compute_from_lines` is not triggered. This is because
partner_id is the only field in the view to trigger that compute before
create. And when a default value is passed for the partner, there is no
need for the compute to trigger on a new record before save.
- Salary attachments with the same code inputs always
used the last input in the sequence for all attachments.
This commit changes the behavior to allow multiple
attachments with the same code inputs.
- Salary rules generate multiple payslip lines for
multi rule lines, but the result_rules in the
local_dict are not updated. This commit fixes that
and sums up the totals and amounts for all the lines
in that rule.
Task# 4201469Resolved issues and error corrections
Belgian payroll calculations now use the latest FFE rates effective through January 2025. This helps ensure payslips and related payroll accounting stay aligned with current Belgian requirements.
Belgian payroll now excludes employees who started after June 30 from receiving the 13th month bonus when they are not eligible. The tax rate calculation for this bonus is also corrected so payroll can consistently compute the proper withholding amount.
Original PR description
This PR excludes the employees that started after the 30/06 of the 13th month. They are not elligeable as they started more than 6 months before the payment of the bonus. As part of this PR, the computation of the correct tax rate has been fixed. The amount is bounded so that a tax rate can always be computed. task-4583139
This fixes the German Intrastat XML report generation by adding a missing supplementary unit code. It helps ensure the report can be generated correctly and reduces the risk of failed compliance reporting exports.
Original PR description
account_intrastat_report.xml: missing SUCode for xml report generation in l10n_de_intrastat build_error-160011
Fixes issues in Gantt scheduling notifications when tasks with dependencies are rescheduled. Users can now undo schedule changes only when the system has enough information to restore them, and warning messages display correctly instead of causing errors.
Original PR description
## [FIX] web_gantt: make sure orm service is defined in gantt renderer Before this commit, when the user reschedules his task with dependencies by clicking on any arrow displayed in the gantt…
## [FIX] web_gantt: make sure orm service is defined in gantt renderer Before this commit, when the user reschedules his task with dependencies by clicking on any arrow displayed in the gantt connector. A notification is displayed to notify the user the action is done with success, that notification also contains an `Undo` button to let the user to undo the rescheduling made. However, if the user clicks on the undo button, a traceback occurs. The reason is because `orm` service is not defined in the gantt renderer. This commit makes sure the orm service is defined in the gantt renderer to be able to call the `action_rollback_scheduling` method. ## [FIX] web_gantt: don't display undo button if old vals are not given Before this commit, after the `web_gantt_schedule` call was done, a notification is displayed according to the result received by the `web_gantt_schedule` call done. The problem is even if the `old_vals_per_pill_id` is not given when the gantt scheduling has been made with success, the `Undo` button is displayed. The problem is without `old_vals_per_pill_id`, it is impossible to undo the action done, because the initial data before the `web_gantt_schedule` is not known without that data, and so, if the user clicks on `Undo` button a traceback will occur since we cannot retrieve the initial data of the records processed in the `web_gantt_schedule` method. This commit makes sure the `Undo` button is displayed only if we have the information to `undo` the `web_gantt_schedule` method. To know that, the `old_vals_per_pill_id` should be given in the result of `web_gantt_schedule` to be able to revert the changes made by `web_gantt_schedule`. ## [FIX] web_gantt: correctly display warning notification Before this commit, a warning notification was not properly displayed because the method does not return what we expect. Instead of returning the message and notification type, it returns a client action to call `display_notification`. Moreover, the warning notification does not display the right icon, it display `fa-check` instead of `fa-warning`. This commit changes the object returned for the warning to have the expected values returned and changes the icon when the notification is a warning one. task-4687572
This fix ensures migrated Odoo 18 databases correctly populate hazardous material information for Mexican logistics records. It prevents affected customers from being blocked when generating Carta Porte documents due to missing hazardous goods data.
Original PR description
In databases migrated to Odoo 18, that has the module l10n_mx_edi_stock installed the field l10n_mx_edi_hazardous_material remains empty. This issue occurs because the CSV file (product.unspsc.code.csv) assigns the value but the records are no update As a result, customers cannot generate the Carta Porte in the l10n_mx module, encountering the following error: Error 301 (CP155): The attribute "Mercancia:MaterialPeligroso" is missing or invalid when the ClaveProdServ is declared as hazardous. As it was mentioned here: https://github.com/odoo/upgrade/pull/7468 I modified the script to use ir_model_data to link the records and now it's on the carpet migrations of l10n_mx_edi_stock Here is a ticket with an example of the error https://www.odoo.com/odoo/project.task/4577049/action-4665/4631583
Settling a customer's outstanding balance in Point of Sale no longer triggers invoice creation when there are no products involved. This prevents blank-screen crashes in Mexican localization and similar setups that automatically invoice company customers.
Original PR description
Currently, when settling customer's account using the mexican localization, the session crashes after selecting the payment method. Steps to reproduce: ------------------- * Install the mexican…
Currently, when settling customer's account using the mexican localization, the session crashes after selecting the payment method. Steps to reproduce: ------------------- * Install the mexican localization and switch to one of the company * Create a new contact of type "Company" * Create an invoice for that contact so that he has a due amount set * Open session * Select the customer and settle due amount * Select any payment method > Observation: Blank screen Why the fix: ------------ Same issue addressed here but at a different place: https://github.com/odoo/enterprise/commit/e1e1abdd23cead2bcd7b8170da28161c3f5b2e15 Cause by the fact that when a customer of type "company" is selected we automatically invoice orders. https://github.com/odoo/odoo/commit/270779c8250272920d759fbe7b6cfc889e2f5969 Instead of going in the same direction of the first fix, we never set `to_invoice` to true when we are settling customer accounts. It's pointless to set invoice to true when settling accounts as it's impossible to create an invoice without any product. This should also benefit localizations that invoice by default every order by bypassing the invoice in that case. opw-4685842
Miscellaneous changes
Discounts on non recurring products were being recomputed every time the subscription was paused and resumed. Added a protecting similar to action_confirm in order to prevent this behavior. opw-4440500 Forward-Port-Of: odoo/enterprise#82858
Original PR description
Discounts on non recurring products were being recomputed every time the subscription was paused and resumed. Added a protecting similar to action_confirm in order to prevent this behavior. opw-4440500 Forward-Port-Of: odoo/enterprise#82858
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Original PR description
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
Original PR description
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
Description of the issue this commit addresses: In january 2025, updates were made to some sections of the LU tax report and chart of accounts. Therefore, the version we use is out of date. --- Desired behavior after this commit is merged: The COA and VAT reports use the new values updated in 2025. --- Community PR: https://github.com/odoo/odoo/pull/202228 task-4587067 Forward-Port-Of: odoo/enterprise#82733 Forward-Port-Of: odoo/enterprise#81644
Original PR description
Description of the issue this commit addresses: In january 2025, updates were made to some sections of the LU tax report and chart of accounts. Therefore, the version we use is out of date. --- Desired behavior after this commit is merged: The COA and VAT reports use the new values updated in 2025. --- Community PR: https://github.com/odoo/odoo/pull/202228 task-4587067 Forward-Port-Of: odoo/enterprise#82733 Forward-Port-Of: odoo/enterprise#81644
Change VAT in invoice report if the invoice is set as cfdi to public to use a generic vat for both national and international clients to have more coherence with the xml that is generated for the invoice. task-4588311 Forward-Port-Of: odoo/enterprise#81842 Forward-Port-Of: odoo/enterprise#79775
Original PR description
Change VAT in invoice report if the invoice is set as cfdi to public to use a generic vat for both national and international clients to have more coherence with the xml that is generated for the invoice. task-4588311 Forward-Port-Of: odoo/enterprise#81842 Forward-Port-Of: odoo/enterprise#79775
This fix aims to increase the operation timeout to reduce the risk of timeouts when sending documents. If a timeout occurs when sending a document, Odoo will consider it an error and allow the resend, even though the document will have been successfully accepted by the Carvajal service. opw-4608647 Forward-Port-Of: odoo/enterprise#82715
Original PR description
This fix aims to increase the operation timeout to reduce the risk of timeouts when sending documents. If a timeout occurs when sending a document, Odoo will consider it an error and allow the resend, even though the document will have been successfully accepted by the Carvajal service. opw-4608647 Forward-Port-Of: odoo/enterprise#82715