Daily updates from Odoo
Wednesday, July 30, 2025
21 changes
4 changes
Enhancements to existing features
Peruvian electronic invoices now export down payments in the format required by SUNAT instead of using negative invoice lines. This helps businesses issue compliant final invoices when advance payments have already been made.
Original PR description
By default, the UBL module represents prepayments / downpayments as a InvoiceLine in the final invoice with a negative quantity and amount. However, SUNAT and the Peru Government does not allow negative quantities, and instead require this information to be stored within the PrepaidPayments node and referred to via AdditionalDocumentsReference. task-4605204
The French tax report now shows a warning when key VAT declaration totals do not balance. This helps users spot possible reporting errors before submitting or reviewing their tax figures.
Original PR description
This commit will add a warning banner when the sum of field 08+09+9B+10+11+T1->T7 is not equal to sum of field A1+A2+A3+B2+B3+B4 Task-4933787 Forward-Port-Of: odoo/enterprise#91157 Forward-Port-Of: odoo/enterprise#89956
This update adds automated testing for a restaurant point-of-sale flow where an unsent order is selected from a popup, sent to preparation, and paid in one sequence. It helps reduce the risk of checkout or kitchen preparation issues reaching users.
Original PR description
In this commit: ----------------------------- - Add test to ensure clicking order in the popup sends the order to preparation and validate payment in one flow. Task: 4804669 Related PR - https://github.com/odoo/odoo/pull/211642 Forward-Port-Of: odoo/enterprise#86413
When users assign an account to a bank statement line during reconciliation, any default tax configured on that account is now applied automatically. This reduces manual entry, improves consistency, and helps accounting teams avoid missed tax details.
Original PR description
In this PR: - When setting the account from the bank reconciliation widget (using 'set_account'), the default tax set on that account will now be automatically applied to the bank statement line. task-4930945 Forward-Port-Of: odoo/enterprise#89966
15 changes
Enhancements to existing features
The Sign app now lets users skip the manual document-filling screen when every field can be completed automatically. For eligible single-signer documents, users can download the signed document directly, saving clicks and speeding up completion.
Original PR description
This PR aims at implementing a new flow in the signing of the sign app, and correcting a small mistake found along the way. The text for the legal discalimer on the adoption of a signature or initials has been slightly reworded since it was referring to text in the buttons that has been changed a while back. The Quick Sign flow is intended to provide an option to avoid the PDFIframe step where you have to compile a document when all the fields in the document can be autofilled. If they are, a Download button appears that autofills every field and goes directly to the Thank You Dialog Window with the button to download the signed document. Task-4858331
The French VAT refund process now asks users to provide the reimbursement reason, date, and optional comment when completing the 3519-SD form. This helps ensure the required information is included in the electronic submission to ASPOne, reducing the risk of incomplete refund requests.
Original PR description
When users request a VAT refund using the French 3519-SD form, they must now indicate the reason for the reimbursement. In this commit: --- - Adds support for specifying the `reimbursement type` (e.g., First asking, Assignment/Cessation.., Others) and `reimbursement date`. - Makes these fields available on each account line in the VAT refund wizard, and includes them in the generated EDI XML sent to **ASPOne**. - Introduces a reimbursement comment field, serialized in the `FX` zone of the XML when provided. --- task-4932961
This update aligns the certified scale checksum with recent error-checking changes for Toledo scales. It helps keep point-of-sale scale integrations compliant and working as expected after the related platform update.
Original PR description
This PR adapts the scale checksum to the PR adding the error checks to Toledo scales: https://github.com/odoo/odoo/pull/217674 Forward-Port-Of: odoo/enterprise#91069 Forward-Port-Of: odoo/enterprise#89602
A new warning banner alerts users when key totals in the French tax report do not balance. This helps businesses spot potential reporting inconsistencies before submission and reduces the risk of inaccurate tax declarations.
Original PR description
This commit will add a warning banner when the sum of field 08+09+9B+10+11+T1->T7 is not equal to sum of field A1+A2+A3+B2+B3+B4 Task-4933787 Forward-Port-Of: odoo/enterprise#91157 Forward-Port-Of: odoo/enterprise#89956
The Field Service “To Schedule” screen now opens in calendar view by default. This helps planners see unscheduled work in a time-based layout immediately, making scheduling faster and more intuitive.
Original PR description
Make the default view of the `To Schedule` in the field service set to calendar view task-4952379
The VoIP keypad search/input area is now easier to recognize and use. Placeholder text and visual highlighting help users understand where to type a name or phone number, reducing confusion during calls.
Original PR description
**Purpose**
The main input field in the keypad widget was visually unclear, leading to
confusion. Users often clicked near the field without realizing it, as there
was no visible cursor or indication of focus. This change aims to make the
input area more obvious and user-friendly.
**Specification**
-Added a placeholder text ("Type a name or number") to the input field.
-Added a border-bottom to the .o-voip-Keypad-searchBar container to visibly
frame the input area.
-Added border highlight to the input container when the user is typing or input
is focused.
**Task**-4922706This update modernizes how interface text and markup are handled across several Odoo Enterprise apps. It is mainly an internal improvement that should help maintain consistency and reduce future maintenance issues without changing day-to-day workflows.
Original PR description
\* = documents, frontdesk, knowledge, planning, project_enterprise, sale_planning, sign, social, social_twitter, stock_barcode, stock_barcode_mrp, stock_barcode_picking_batch, voip, web_cohort, web_enterprise, web_gantt, web_grid, website_helpdesk_forum, website_studio Enterprise counter-part. https://github.com/odoo/odoo/pull/199300
This update makes eBay sales configuration values more consistent by storing defaults in data records instead of relying on dynamic fallback behavior. It reduces the chance of inconsistent setup results and simplifies maintenance for future configuration changes.
Original PR description
dynamic default doesn't make sense for consistency import from data.xml can solve the problem Otherwise, developers have to call the default function when 'get_param' as fallback.
Payroll input types now use clearer choices instead of simple yes/no settings, making it easier for payroll teams to define whether an input is money or quantity-based and whether it is recurring or one-time. Salary adjustment refunds also use more consistent input type logic, improving reliability and future maintainability.
Original PR description
This commit replaces certain boolean fields with selection fields to improve clarity and user experience. Specifically: - The `is_quantity` boolean was replaced with a `input_unit` selection field to explicitly define whether the input is a monetary or a quantity. - The `available_in_attachments` boolean was replaced with a `input_usage` selection field to explicitly define whether the input is a recurring or a one_shot. - The refund logic for salary adjustments now also relies on a `type` field on the other_input_type instead of a simple boolean, improving logic consistency. These changes enhance maintainability, provide better UX in the UI, and offer a clearer foundation for handling payroll input types. Task: 4930632
This update improves how date-based filters are handled across many Odoo apps, so saved views and reports can use dynamic date ranges more consistently. It helps keep information such as accounting, HR, payroll, helpdesk, and field service records aligned with the current period without manual filter updates.
Original PR description
odoo/odoo#219664
This update adds automated coverage for a restaurant point-of-sale flow where an unsent order is selected from a popup, sent to preparation, and paid in one sequence. This helps reduce the risk of regressions in kitchen preparation workflows and supports a smoother staff experience.
Original PR description
In this commit: ----------------------------- - Add test to ensure clicking order in the popup sends the order to preparation and validate payment in one flow. Task: 4804669 Related PR - https://github.com/odoo/odoo/pull/211642 Forward-Port-Of: odoo/enterprise#90959 Forward-Port-Of: odoo/enterprise#86413
When users choose an account while reconciling bank statement lines, the system now automatically applies the default tax configured on that account. This reduces manual entry, improves consistency, and helps accounting teams avoid missing tax details during reconciliation.
Original PR description
In this PR: - When setting the account from the bank reconciliation widget (using 'set_account'), the default tax set on that account will now be automatically applied to the bank statement line. task-4930945 Forward-Port-Of: odoo/enterprise#91232 Forward-Port-Of: odoo/enterprise#89966
The Knowledge command palette now finds and highlights matching article results even when accents differ between the search term and the saved text. This makes searching Knowledge content more forgiving for users working with accented characters or multilingual content.
Original PR description
This commit uses changes made in https://github.com/odoo/odoo/pull/218173 to also make the knowledge command palette accent-insensitive. task-4816162
Tax return processing now combines review validation with the final locking step, so closing entries are generated and lock dates are applied immediately after a user confirms validation. This reduces manual steps, prevents unintended automatic validation, and gives users a confirmation message once the return is finalized.
Original PR description
Removed the separate "Lock" step; the closing entry is now generated and the lock date applied immediately after review validation. Made return validation an explicit user action and removed automatic validation. A toaster notification is shown after validation confirming closing entry generation and locking date application. task-4969377
The ESG Project app now includes ready-to-use sample initiatives and a simple option to load them when the initiatives area is empty. This helps users explore the feature faster and understand how ESG initiatives can be structured before entering their own data.
Original PR description
This PR adds some demo data for the ESG Project and a 'Load sample data' button displayed in the no content helper of views of 'Initiatives' menu item. This button is only displayed if no demo data has been loaded yet. task-4760801
2 changes
Enhancements to existing features
This update prepares Guatemala localization for a forthcoming electronic invoicing capability. It allows certain test VAT numbers for Guatemalan companies and adds a fuel-related accounting entry needed for local compliance workflows.
Original PR description
related enterprise PR: https://github.com/odoo/enterprise/pull/84036
The IoT Box homepage warning now states that the SSL certificate is invalid, without incorrectly mentioning a missing subscription. This avoids confusing users because a subscription is no longer required to obtain a valid certificate.
Original PR description
When the IoT Box doesn't have a valid ssl certificate, we used to display a warning telling that there is no valid subscription. As users don't need a subscription anymore to get a valid certificate, we now only tell that the certificate is invalid. Task: 4978644