Daily updates from Odoo
Navigate
Branch
Tuesday, April 22, 2025
17 changes
8 changes
New functionality added to Odoo
WhatsApp conversations can now include interactive messages such as URL buttons, option lists, and quick reply buttons. This helps businesses guide customers to the right action or answer directly in the chat, reducing friction and improving response quality.
Original PR description
RATIONALE Interactive messages on WhatsApp provide users with a simpler way to find and select what they want from your business. SPECIFICATIONS An interactive message allows users to engage directly…
RATIONALE Interactive messages on WhatsApp provide users with a simpler way to find and select what they want from your business. SPECIFICATIONS An interactive message allows users to engage directly within the chat. It supports Call-to-Action URL Button Messages, List Messages, and Reply Buttons Messages. Call-to-Action URL Button Messages - CTA URL button messages allow mapping any URL to a button, eliminating the need to include the raw URL in the message body. List Messages - Interactive list messages present WhatsApp users with a list of options defined as rows. When a user taps a button in the message, a modal displays the available options. Users can then choose an option, and their selection will be sent as a reply. Reply Buttons Messages - Interactive reply button messages enable sending up to three predefined replies for users to choose from. Users respond by selecting one of the predefined buttons, which will be sent as a reply. SEND INTERACTIVE MESSAGE - An interactive message can only be sent in an active conversation. - The 'interactive' command is added in the discuss channel command for WhatsApp channels, which opens a composer from where the user can select and send the interactive message. RECEIVE INTERACTIVE MESSAGE REPLY - For button replies, the button title is used as the body of the message. - For list replies, the title and description are included in the message body. TECHNICAL SPECIFICATIONS WhatsApp Interactive - Interactive name and its message type. - Authorized Groups for providing access to specific groups. - Language to set the language for interactive messages. - Header type and corresponding header text or attachment. - Footer text. - List button text for message type list. - Body of the interactive message. WhatsApp Interactive Button - Button Name. - Linked interactive record. - Button type matching the message type of the Interactive. - Website URL for Call-to-Action URL button type. - Description for List button type. - Display type to show List buttons as sections or questions. WhatsApp Interactive Composer - Linked discuss channel to post the interactive message. - Interactive ID to select and send the interactive message template. - Preview of the interactive template. Task-3924951
Enhancements to existing features
The attachment preview and document extraction areas now use a clearer internal name for the main message attachment. This supports consistency with the wider platform and helps reduce future maintenance issues without changing everyday user workflows.
Original PR description
*=account_accountant Rename mainAttachment to message_main_attachment_id Community PR: https://github.com/odoo/odoo/pull/205493 task-4675790
The WhatsApp module now uses a clearer, standard field name for referencing parent messages. This is a small internal cleanup that improves consistency and helps keep related WhatsApp features easier to maintain.
Original PR description
Rename parentMessage to parent_id. Community PR: https://github.com/odoo/odoo/pull/205529 task-4675783
The Kenya payroll Master Report is no longer maintained as a separate report. Users can still access the same information through a dedicated Master Report action that opens the payslip line report with the appropriate Kenya payroll filters and layout.
Original PR description
Problem ---------- Master Report purpose is replaced with Payslip lines report. Objective ---------- - Remove the master report model - Keep the information available in the original master report in Kenya by filtering the payslip line report Solution ---------- - Create an action grouped with Kenya report, call Master Report, to display the payslip line report directly with the good row and col. - The original payslip line report is not changed task-4700936
Social media communications for events with multiple time slots are now sent once for the overall event instead of being repeated for each slot. This reduces unnecessary duplicate posts and keeps event promotion clearer for audiences.
Original PR description
For multi slots events, on the contrary of the current multi slots events mailing system, the social communications still need to be send once for the whole event, not for every slots. i.e. there is no need to send a social post before every exposition tour. Limit the social post communication once for the event even if multi slots. Task-4307566
This draft updates how follow-up activities are defined, scheduled, and displayed across several Odoo apps. It should make reminders and task tracking more consistent for teams working with accounting, documents, HR, helpdesk, field service, and related workflows.
Miscellaneous changes
When printer isn't reacheable a traceback is shown when trying to print a receipt. This is because the error is not handled correctly. This commit adds a check to ensure that the error is correctly handled and that the user is notified of the error in a user-friendly manner. Forward-Port-Of: odoo/enterprise#83521
Original PR description
When printer isn't reacheable a traceback is shown when trying to print a receipt. This is because the error is not handled correctly. This commit adds a check to ensure that the error is correctly handled and that the user is notified of the error in a user-friendly manner. Forward-Port-Of: odoo/enterprise#83521
Sale orders have to be created during the test, which can fail if the test user does not have the right ACLs. The creation of the SOs seem to be just setup for what the tests want to check, so just sudo into them. https://runbot.odoo.com/odoo/error/163653 Forward-Port-Of: odoo/enterprise#83717
Original PR description
Sale orders have to be created during the test, which can fail if the test user does not have the right ACLs. The creation of the SOs seem to be just setup for what the tests want to check, so just sudo into them. https://runbot.odoo.com/odoo/error/163653 Forward-Port-Of: odoo/enterprise#83717
9 changes
Enhancements to existing features
This update adds payroll support for Belgium’s CCT90 bonus structure, helping employers handle this specific employee benefit more accurately. It updates payroll rules, inputs, reporting, and related data so Belgian payroll calculations and declarations better match local requirements.
Resolved issues and error corrections
Approval requests can now generate a request for quotation after a seller is added to the product, without requiring users to reset the approval to draft. This removes an unnecessary step and helps purchasing continue smoothly when supplier information is completed later.
Original PR description
-- Context -- When no seller is defined on the product that is included in the approval request, you cannot generate an RFQ. Adding a seller in the product should allow creating the RFQ without re-setting the request to draft. -- Behavior before the fix -- You had to reset the request to draft before being able to generate the RFQ when a seller has been added to the product. -- Behavior after the fix -- You can. There was a missing field in the depends of the compute method for the seller ids. task-4680780
Fixes certificate generation for Argentinian companies when localization modules for other Latin American countries are also installed. This helps affected businesses complete required electronic invoicing setup without conflicts from other country configurations.
Original PR description
Fix certificate generation for AR companies when other LATAM countries are installed. opw-4584457
This fix ensures the US payroll accounting module imports its missing views as intended. It helps prevent setup or display issues for users relying on US payroll accounting screens.
Original PR description
Coming From: https://github.com/odoo/enterprise/pull/69708
Fixed an issue where sending customer statements for multiple partners could generate PDFs showing all companies and extra currencies instead of the current company only. This ensures statements display the correct company context, reducing confusion for customers and accounting teams.
Original PR description
### Steps to reproduce: - Accounting > Reporting > Partner Ledger - Select multiple partners - Select "Customer Statements" as report - Click "Send" - Go to the one of the partner in question an…
### Steps to reproduce: - Accounting > Reporting > Partner Ledger - Select multiple partners - Select "Customer Statements" as report - Click "Send" - Go to the one of the partner in question an dopen the generated PDF - All current companies show in the header and other currencies are present ### Cause: When sending to multiple partners, the action is dispatched with to cron_threads so a new `env` is created. This `env` has a key `companies` containing all companies that exist in the DB. When the `_init_options_companies` is called for the report it adds `self.env.companies` to the option ([code](https://github.com/odoo/enterprise/blob/4ef74fd9527a28616bf81c9716d6000aa25b839e/account_reports/models/account_report.py#L1276)). So in the end all companies appear on the report. ### Solution: Add 'forced_companies' in the options before calling the `cron`. The format of 'forced_companies' had to be changed to only contain ids because fields cannot be added in `send_and_print_values` as it's a JSON fields. opw-4635283
Fixes an accounting issue where reconciling a batch payment for multiple vendor bills could mark only one bill as paid while leaving others incorrectly in payment. This ensures payment statuses are updated consistently after batch payment reconciliation, reducing manual follow-up for accounting teams.
Original PR description
**Steps to reproduce:** - Install Accounting - In Bank journal settings, make sure that there's no Outstanding Payments account - Create a bill for a customer - Confirm it - Create a second bill for…
**Steps to reproduce:** - Install Accounting - In Bank journal settings, make sure that there's no Outstanding Payments account - Create a bill for a customer - Confirm it - Create a second bill for the same customer - Confirm it - Go to the bills list - Select the 2 created bills - Create a payment via "Pay" button: * Journal: Bank * Payment Method: Manual Payment * Group Payments: [checked] - Do not validate the payment - Go to "Accounting / Vendors / Payments" - Select the created payment and create a batch - Validate the batch payment => The payment status of both bills is "In Payment" - From Accounting dashboard, go to transactions of Bank journal (reconciliation widget) - Create a new transaction for the previous customer with the amount of the batch payment - In the reconciliation widget, go to "Batch Payments" tab - Select the created batch payment - Validate to reconcile - Check the bills list **Issue:** Only one of the bills has its payment status set to "Paid", the other one staying in "In Payment" status. **Cause:** In the method that checks which account move lines are included in the batch payment, we loop on each linked move line and take the "min" between the remaining amount of the batch payment and the amount of the move line until the remaining amount reaches 0. However, for vendor bills, these amounts are negative and taking the "min" amount returns the remaining amount directly, resulting in only having 1 move line set to reconcile. opw-4595006
Miscellaneous changes
According to [last update from PGCE](https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884&tn=1&p=20241221) and the accounting standards inside it: >3.º Principios contables La contabilidad de la empresa y, en especial, el registro y la valoración de los elementos de las cuentas anuales, se desarrollarán aplicando obligatoriamente los principios contables que se indican a continuación: > >1. Empresa en funcionamiento. Se considerará, salvo prueba en contrario, que la gestión de la empresa
Original PR description
According to [last update from PGCE](https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884&tn=1&p=20241221) and the accounting standards inside it: >3.º Principios contables La contabilidad de la…
According to [last update from PGCE](https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884&tn=1&p=20241221) and the accounting standards inside it: >3.º Principios contables La contabilidad de la empresa y, en especial, el registro y la valoración de los elementos de las cuentas anuales, se desarrollarán aplicando obligatoriamente los principios contables que se indican a continuación: > >1. Empresa en funcionamiento. Se considerará, salvo prueba en contrario, que la gestión de la empresa continuará en un futuro previsible, por lo que la aplicación de los principios y criterios contables no tiene el propósito de determinar el valor del patrimonio neto a efectos de su transmisión global o parcial, ni el importe resultante en caso de liquidación. > >En aquellos casos en que no resulte de aplicación este principio, en los términos que se determinen en las normas de desarrollo de este Plan General de Contabilidad, la empresa aplicará las normas de valoración que resulten más adecuadas para reflejar la imagen fiel de las operaciones tendentes a realizar el activo, cancelar las deudas y, en su caso, repartir el patrimonio neto resultante, debiendo suministrar en la memoria de las cuentas anuales toda la información significativa sobre los criterios aplicados. > >2. Devengo. Los efectos de las transacciones o hechos económicos se registrarán cuando ocurran, imputándose al ejercicio al que las cuentas anuales se refieran, los gastos y los ingresos que afecten al mismo, con independencia de la fecha de su pago o de su cobro. > >3. Uniformidad. Adoptado un criterio dentro de las alternativas que, en su caso, se permitan, deberá mantenerse en el tiempo y aplicarse de manera uniforme para transacciones, otros eventos y condiciones que sean similares, en tanto no se alteren los supuestos que motivaron su elección. De alterarse estos supuestos podrá modificarse el criterio adoptado en su día; en tal caso, estas circunstancias se harán constar en la memoria, indicando la incidencia cuantitativa y cualitativa de la variación sobre las cuentas anuales. > > 4. Prudencia. Se deberá ser prudente en las estimaciones y valoraciones a realizar en condiciones de incertidumbre. La prudencia no justifica que la valoración de los elementos patrimoniales no responda a la imagen fiel que deben reflejar las cuentas anuales. > > Asimismo, sin perjuicio de lo dispuesto en el artículo 38 bis del Código de Comercio, únicamente se contabilizarán los beneficios obtenidos hasta la fecha de cierre del ejercicio. Por el contrario, se deberán tener en cuenta todos los riesgos, con origen en el ejercicio o en otro anterior, tan pronto sean conocidos, incluso si sólo se conocieran entre la fecha de cierre de las cuentas anuales y la fecha en que éstas se formulen. En tales casos se dará cumplida información en la memoria, sin perjuicio de su reflejo, cuando se haya generado un pasivo y un gasto, en otros documentos integrantes de las cuentas anuales. Excepcionalmente, si los riesgos se conocieran entre la formulación y antes de la aprobación de las cuentas anuales y afectaran de forma muy significativa a la imagen fiel, las cuentas anuales deberán ser reformuladas. > > Deberán tenerse en cuenta las amortizaciones y correcciones de valor por deterioro de los activos, tanto si el ejercicio se salda con beneficio como con pérdida. > > 5. No compensación. Salvo que una norma disponga de forma expresa lo contrario, no podrán compensarse las partidas del activo y del pasivo o las de gastos e ingresos, y se valorarán separadamente los elementos integrantes de las cuentas anuales. > > 6. Importancia relativa. Se admitirá la no aplicación estricta de algunos de los principios y criterios contables cuando la importancia relativa en términos cuantitativos o cualitativos de la variación que tal hecho produzca sea escasamente significativa y, en consecuencia, no altere la expresión de la imagen fiel. Las partidas o importes cuya importancia relativa sea escasamente significativa podrán aparecer agrupados con otros de similar naturaleza o función. > > En los casos de conflicto entre principios contables, deberá prevalecer el que mejor conduzca a que las cuentas anuales expresen la imagen fiel del patrimonio, de la situación financiera y de los resultados de la empresa. For item 5, assets and liabilities, income and expenses shall not be offset, unless required or permitted by a standard. Therefore, group 55 accounts should be presented: - On the assets side if they have a debit balance. - On the liabilities side if they have a credit balance. - Without offsetting each other. @moduon MT-9820 @chklop @jco-odoo @rafaelbn Forward-Port-Of: odoo/enterprise#82976
Steps to Reproduce: - Open the Planning app. - Click on the avatar of a resource. - Refresh the page, then click on the avatar of a resource again. Issue: - A traceback error occurs when clicking on the avatar after a page refresh, likely due to component destruction or incomplete loading. Solution: - Consolidated multiple RPC calls into a single method in the parent component to avoid issues with component destruction during `super.onWillStart`. - Modified `onWillStart` to ensure `h
Original PR description
Steps to Reproduce: - Open the Planning app. - Click on the avatar of a resource. - Refresh the page, then click on the avatar of a resource again. Issue: - A traceback error occurs when clicking on the avatar after a page refresh, likely due to component destruction or incomplete loading. Solution: - Consolidated multiple RPC calls into a single method in the parent component to avoid issues with component destruction during `super.onWillStart`. - Modified `onWillStart` to ensure `hr_access` data is fetched without risking lifecycle conflicts. task-4210513 Forward-Port-Of: odoo/enterprise#75121
Sale orders have to be created during the test, which can fail if the test user does not have the right ACLs. The creation of the SOs seem to be just setup for what the tests want to check, so just sudo into them. https://runbot.odoo.com/odoo/error/163653 Forward-Port-Of: odoo/enterprise#83717
Original PR description
Sale orders have to be created during the test, which can fail if the test user does not have the right ACLs. The creation of the SOs seem to be just setup for what the tests want to check, so just sudo into them. https://runbot.odoo.com/odoo/error/163653 Forward-Port-Of: odoo/enterprise#83717