Daily updates from Odoo
Tuesday, August 18, 2026
38 changes
8 changes
Enhancements to existing features
Odoo now checks an institution's maximum allowed payment amount before initiating single or batch payments through Odoo/Odoofin. This helps prevent failed payment attempts when a bank or provider enforces transaction limits.
Original PR description
Before trying to initiate payments through Odoo/Odoofin, we should check that the total amount for the (batch) payment does not exceed the maximum payment amount allowed by the institution (some Powens institutions introduced that limit). task-6310729 Forward-Port-Of: odoo/enterprise#127110 Forward-Port-Of: odoo/enterprise#121513
When a Bulgarian VAT return is validated, Odoo now automatically creates and attaches the required monthly SAF-T general ledger, purchase, and sales report files alongside the VAT PDF. This reduces manual export work and helps large Bulgarian companies meet monthly tax reporting obligations more reliably.
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file
to report their VAT to the administration. To streamline that process,
when the VAT return is validated and PDF is added to the attachments,
the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and
PRODAGBI Sale Report are produced and added as well.
Simplify the report file download error wizard's visuals and descriptions to improve readability.
task-6007963
Forward-Port-Of: odoo/enterprise#127736
Forward-Port-Of: odoo/enterprise#118326The employee Gantt view in Manufacturing Work Orders now shows the progress bar again. This helps teams quickly see work progress in the schedule, improving visibility for planning and follow-up.
Original PR description
Since 19.4 the progress bar has been hidden for employee gantt. This commit makes sure it is visible. task-6459190
The Timesheet Assistant now shows clearer Helpdesk ticket suggestions using the actual ticket name, making entries easier to recognize. When users add a suggested ticket, the timesheet form is filled with the right ticket automatically, reducing manual entry and avoiding incorrect grouping of unrelated events.
Original PR description
Before this commit, the Timesheet Assistant displayed static labels for Helpdesk Tickets. Furthermore, when a user clicked "Add" on a ticket suggestion, the Timesheet Inline Form did not auto-populate the ticket name, as the source ID was lost during the grouping phase. Task: 6320652 Forward-Port-Of: odoo/enterprise#121662
Doing an euclidean division on floats with the native operators is unreliable: because of IEEE-754 representation errors, `value1 % value2` can return a spurious remainder (e.g. `50.4 % 16.8 == 16.799999999999997` instead of 0.0) and `int(value1 / value2)` can truncate the quotient one step too low (e.g. `int(0.3 / 0.1) == 2` instead of 3). `float_div` returns the `(quotient, remainder)` pair free of those errors. The key is to never run a lossy `%` or `//` on the raw floats. Instead both ope
Original PR description
Doing an euclidean division on floats with the native operators is unreliable: because of IEEE-754 representation errors, `value1 % value2` can return a spurious remainder (e.g. `50.4 % 16.8 ==…
Doing an euclidean division on floats with the native operators is unreliable: because of IEEE-754 representation errors, `value1 % value2` can return a spurious remainder (e.g. `50.4 % 16.8 == 16.799999999999997` instead of 0.0) and `int(value1 / value2)` can truncate the quotient one step too low (e.g. `int(0.3 / 0.1) == 2` instead of 3). `float_div` returns the `(quotient, remainder)` pair free of those errors. The key is to never run a lossy `%` or `//` on the raw floats. Instead both operands are first snapped onto the precision grid with `float_round` and then scaled to integers: since a grid-snapped value is a multiple of `rounding`, dividing it by `rounding` counts how many grid steps it spans. That division is still noisy (`4.35 / 0.05 == 86.99999999999999`), so the result is passed through `builtins.round` to coerce it to the exact integer step count. The euclidean division itself is then a plain integer `divmod`, which is exact, and the remainder is scaled back to real units. This is why the correction is applied to the inputs and not to the output: rounding the result of a native `%` would only round an already-corrupt value, and would still misreport the quotient in the corner cases the util exists to handle. Dividing by `rounding` is meaningful for any precision, not only powers of ten: the grid step can be `0.05`, `0.25`, `0.5`, `0.03`, ... and `value / step` counts the steps in every case. This mirrors the normalize/denormalize scheme `float_round` already uses internally. The util shares `float_round`'s inherent limitation: the scaled step count must stay representable as an exact `float` integer, so exactness is lost past ~2**53 grid steps (extreme magnitudes at a fine precision). This is the IEEE-754 double-precision ceiling and is well outside any realistic quantity or price range. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#281058 Forward-Port-Of: odoo/odoo#277160
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA an
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#269132
this commit move the save order button next to the action button. task-id: 6275576 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268215
Original PR description
this commit move the save order button next to the action button. task-id: 6275576 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268215
Release notes: ttps://github.com/odoo/owl/releases/tag/v3.0.0-alpha.46 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
Original PR description
Release notes: ttps://github.com/odoo/owl/releases/tag/v3.0.0-alpha.46 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
4 changes
Enhancements to existing features
When a Bulgarian VAT return is validated, Odoo now automatically generates and attaches the required monthly SAF-T general ledger, purchase, and sales report files alongside the PDF. This helps large companies meet Bulgaria's monthly tax reporting requirements with less manual work, and the related download error messages are easier to understand.
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file
to report their VAT to the administration. To streamline that process,
when the VAT return is validated and PDF is added to the attachments,
the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and
PRODAGBI Sale Report are produced and added as well.
Simplify the report file download error wizard's visuals and descriptions to improve readability.
task-6007963
Forward-Port-Of: odoo/enterprise#127736
Forward-Port-Of: odoo/enterprise#118326Cached website generation requests now schedule a quick follow-up task instead of calling webhooks immediately. This helps ensure notifications happen after the generation work is safely saved, without tying up system workers unnecessarily.
Original PR description
When a request is cached a webhook won't be called because if we did it immediatly it might arrive before the generator commited. And we don't want to delay the webhook call to not stall a worker just for that. So we simply scheldule a trigger if a request was cached.
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA an
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#269132
Before this commit: - Refund orders of scheduled (with shipping date) orders always generated a new picking with negative quantities, even when the original delivery had not been completed. - This could lead to incorrect stock movements and negative quantity computations for undelivered pickings. After this commit: - When processing a refund of a scheduled (with shipping date) order, the behavior now depends on the state of the original picking: - If the picking has already been del
Original PR description
Before this commit: - Refund orders of scheduled (with shipping date) orders always generated a new picking with negative quantities, even when the original delivery had not been completed. - This…
Before this commit:
- Refund orders of scheduled (with shipping date) orders always generated a new picking with negative quantities, even when the original delivery had not been completed.
- This could lead to incorrect stock movements and negative quantity computations for undelivered pickings.
After this commit:
- When processing a refund of a scheduled (with shipping date) order, the behavior now depends on the state of the original picking:
- If the picking has already been delivered, a return picking is created with the corresponding negative quantities.
- If the picking has not been delivered, the original picking is updated instead:
- The picking is cancelled for a full refund.
- Refunded product moves are removed from the picking for a partial refund.
- This prevents unnecessary negative stock movements and ensures stock operations remain consistent with the delivery status.
Task-5902424
Forward-Port-Of: odoo/odoo#282087
Forward-Port-Of: odoo/odoo#2715064 changes
Enhancements to existing features
When Bulgarian VAT returns are validated, Odoo now automatically generates and attaches the required monthly SAF-T General Ledger, purchase, and sales reports. This helps large companies comply with Bulgarian reporting obligations with less manual work, while making related download error messages easier to understand.
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file
to report their VAT to the administration. To streamline that process,
when the VAT return is validated and PDF is added to the attachments,
the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and
PRODAGBI Sale Report are produced and added as well.
Simplify the report file download error wizard's visuals and descriptions to improve readability.
task-6007963
Forward-Port-Of: odoo/enterprise#127736
Forward-Port-Of: odoo/enterprise#118326Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA an
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#269132
The `create_calendar_meeting` field on `hr.leave.type` allows users to choose if leave requests created with a given time off type generate a corresponding entry in the Calendar app. However, this field was not displayed on the form view. This commit adds `create_calendar_meeting` to the `hr.leave.type` form view inside the configuration section, along with dedicated help text explaining its behavior. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
The `create_calendar_meeting` field on `hr.leave.type` allows users to choose if leave requests created with a given time off type generate a corresponding entry in the Calendar app. However, this field was not displayed on the form view. This commit adds `create_calendar_meeting` to the `hr.leave.type` form view inside the configuration section, along with dedicated help text explaining its behavior. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#282339 Forward-Port-Of: odoo/odoo#280593
Employees tend to fill the timeoff request from top to bottom which means setting the dates then the duration then the type but if they change the type they will lose the duration if they customized it (e.g. half day) and sometimes it goes unnoticed and needs to be fixed later. This commit puts the type of the leave above the custom duration so it gets filled first. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Employees tend to fill the timeoff request from top to bottom which means setting the dates then the duration then the type but if they change the type they will lose the duration if they customized it (e.g. half day) and sometimes it goes unnoticed and needs to be fixed later. This commit puts the type of the leave above the custom duration so it gets filled first. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
5 changes
Enhancements to existing features
When a Bulgarian VAT return is validated, Odoo now automatically generates and attaches the required monthly SAF-T General Ledger, purchase, and sales report files alongside the PDF. This reduces manual work for large companies and helps them meet Bulgaria’s monthly tax reporting requirements more reliably, while making report download errors easier to understand.
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file
to report their VAT to the administration. To streamline that process,
when the VAT return is validated and PDF is added to the attachments,
the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and
PRODAGBI Sale Report are produced and added as well.
Simplify the report file download error wizard's visuals and descriptions to improve readability.
task-6007963
Forward-Port-Of: odoo/enterprise#118326The Dutch payroll module now includes the 2026 income tax rates for residents. This keeps payroll calculations aligned with the latest tax parameters and helps businesses prepare accurate payslips for the new year.
Original PR description
Added 2026 values for the residents' income tax rates rule parameter. task-6462877 Forward-Port-Of: odoo/enterprise#127556
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA an
Original PR description
Bulgaria made it mandatory for large companies to present a monthly file to report their VAT to the administration. To streamline that process, when the VAT return is validated and PDF is added to the attachments, the monthly General Ledger SAF-T file, the POKUPKI Purchase Report and PRODAGBI Sale Report are produced and added as well. Simplify the report file download error wizard's visuals and descriptions to improve readability. task-6007963 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#269132
This PR removes weekend days from dynamic update for the iot boxes. This allows to follow the support availabilities
Original PR description
This PR removes weekend days from dynamic update for the iot boxes. This allows to follow the support availabilities
- Stop awaiting the receipt print in the POS after order payment validation - Adapt tours to this behavior change task-id: 6425204 enterprise PR: https://github.com/odoo/enterprise/pull/127818 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#280002
Original PR description
- Stop awaiting the receipt print in the POS after order payment validation - Adapt tours to this behavior change task-id: 6425204 enterprise PR: https://github.com/odoo/enterprise/pull/127818 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#280002
13 changes
Enhancements to existing features
Belgian payroll now includes the required Journalist Pension Fund contributions for both employees and employers. This helps payroll calculations reflect the additional 1% employee contribution and 2% employer cost based on the NSSO gross base.
Original PR description
**What:** - Added the Journalist Pension Fund (Employee) salary rule to calculate an additional 1% contribution based on the employee's NSSO gross base. - Added the Accounting: ONSS Journalist Pension Fund (Employer) salary rule to compute the corresponding 2% employer contribution based on the NSSO base, correctly impacting the total employer cost. task-6424251
The Dutch reporting module now uses the shared Dutch SBR tax identifier stored on partner records instead of its older company-specific field. This reduces duplicate data entry and keeps Dutch tax reporting aligned with the standard identifier setup.
Original PR description
After adding l10n_nl_sbr_ob_nummer to partner identifiers l10n_nl_reports_sbr_ob_nummer needs to be deleted. - Replacing l10n_nl_reports_sbr_ob_nummer with l10n_nl_sbr_ob_nummer - Removing res company view task: [6349626](https://www.odoo.com/odoo/project/967/tasks/6349626)
Employee-related documents now stay better connected to employee records, including automatic linking when files are uploaded from an employee profile. Access rights are also synchronized with employee folders, helping ensure documents uploaded through employee discussions follow the correct permissions.
Original PR description
This PR adds more synchronization between the documents and the employee by implementing the points below. - Add the support of the `hr.employee` model in the res_model of documents. - When coming from the context of the employee, uploading the file leads to linking the employee by default to the res_model. - Synced the access rights of the employee folder when the parent folder changes or when the employee folder is created. - Now, documents uploaded from the chatter of the employee will inherit the access rights from the folder. Task-6072094
Accrual-related settings in accounting reports have been moved to the newer plugin-based approach. This keeps the reporting feature aligned with the platform’s current architecture and helps reduce future maintenance risk without changing the user workflow.
Original PR description
In account reports, accrual context is defined in the env but the env is deprecated. The correct way to do it now is to define a plugin.
The AI website builder can now use database information and add JavaScript when simpler page edits are not enough, enabling richer interactive website content. New review, tracking, pause, and editing safeguards help keep AI-generated scripts manageable and reduce the risk of unsafe or disruptive changes.
Original PR description
[IMP] ai_website: enable ai in website to have access to the database This commit reuses the skill to retrieve information from the db. --- [FIX] ai: replace binary field's raw content with its url…
[IMP] ai_website: enable ai in website to have access to the database This commit reuses the skill to retrieve information from the db. --- [FIX] ai: replace binary field's raw content with its url Instead of using the binary field raw content and overflowing the context, we replace it with the url serving the content. --- [IMP] ai_website: allow ai to add javascript to the page This commit enables ai to add javascript to the page, when it's needed. By default, scripts are added as a last resort. Firstly, AI tries to satisfy the user's prompt with HTML/CSS changes, and when it's not possible, we allow AI to add javascript. Because static analysis of custom js scripts is quite limited, a dedicated LLM safety reviewer is introduced to validate proposed code. To ensure safety, the review fails if any vulnerability or suspicious pattern is detected, or if the reviewer call itself fails. In addition, to make sure ai scripts don't mess up the history, and that we properly clean up everything that ai generated, we prompt AI to wrap every part of the code that changes the DOM interactively in a wrapper `__aiProtectMutations`, which handles mutations done right after this call, so we can easily track the changes made by ai script, in order to easily reset modifications made by ai before saving the page, or when entering the edit mode. Also, in the edit mode this wrapper ignores the mutations made by the script. To make it work more-or-less acceptably without shenanigans, we stop the execution of ai generated scripts on entering the translation mode. Also, we add an option container top button to pause the execution of the ai scripts in a block, so users can easily edit it. We prompt AI not to hardcode strings on state change, but instead have a few different blocks with necessary text and show/hide them with d-none. This way we show every text block when scripts don't run to be able to edit them. task-6144157 --- [IMP] website_knowledge: add docstrings to some controllers Previous commit allows AI website builder to search for and use backend controllers. To make it work better we improve docstrigs of some useful controllers in website_knowledge. task-6144157
Date fields in the Marketing Automation dashboard are now aligned to the left, making them easier to read and consistent with the intended layout. This is a small visual improvement that helps users interpret dashboard information more clearly.
Original PR description
…e fields This commit adapts the alignment of the date fields in the marketing automation dashboard to ensure they are displayed correctly (aligned to left). Task: 6474652
The spreadsheet action button has been renamed from "Insert in spreadsheet" to "Spreadsheet". This makes the interface clearer and more concise for users working with spreadsheet-related views.
Original PR description
This commit renames the old `Insert in spreadsheet` button to `Spreadsheet` to keep it simple. Task: 6477436
Belgian payroll now includes employees' holiday attest balance when calculating paid time off to allocate for the next year. December allocations will require approval instead of being automatically approved, giving HR teams better oversight before finalizing leave balances.
Original PR description
- changed allocations from december to be in "to approve" state instead of approved - added a column for Holiday Attest Balance in holiday pay step and included it in the time off to allocate for next year task-id: 6394281
Payslip lines that rely on quarterly calculations or direct totals now hide misleading amount values and show explanatory text instead. This makes Belgian payslips easier to understand and reduces confusion for payroll users and employees reviewing payslip details.
Original PR description
As some numbers is calculated based on quarter and total amounts are calculated directly we should hide the value of amount col and show info text for those lines Task: 6431856
Belgian payroll users can now see the monthly taxable benefit amount directly in the tooltip for internet, mobile, laptop, and tablet benefits. This makes it easier to understand what will appear on the payslip without checking payroll rule parameters separately, while keeping amounts aligned with indexed values.
Original PR description
[IMP] l10n_be_hr_payroll: display the BIK amount in the field tooltips
The internet, mobile, mobile_amount, laptop and tablet fields hold what
the subscription or the device actually costs the employer, and feed the
employer cost computation.
What the employee is taxed on is a different, flat monthly amount coming
from the bik_* rule parameters. Nothing in the interface showed it, so
the only way to know what would land on the payslip was to go and open
the rule parameter itself.
That amount is now appended to the tooltip of each of those fields:
The employee's internet subscription will be paid up to this amount.
Benefit in kind: 5.00 € / month.
It is resolved in fields_get instead of being written into the field
definitions, so it keeps following the indexation of the rule parameters.
task-6447748UrbanPiper point-of-sale preparation tickets can now follow printer settings that split tickets by individual product. This helps kitchen or preparation teams receive clearer, item-specific tickets instead of one combined order ticket.
Original PR description
Preparation ticket generation now takes an is_split_per_product flag, read from the printer configuration, to print one ticket per product instead of one ticket grouping the whole order. pos_urban_piper overrides _generate_preparation_receipt_data to add its own data on top of the generated receipts. related-https://github.com/odoo/odoo/pull/267412 task-6227300
The empty Commission Plan screen now shows an illustrated explanation of how commission plans are calculated instead of a generic placeholder image. This helps sales and compensation teams understand the setup flow more quickly, with support for mobile layouts and right-to-left languages.
Original PR description
For the Commission Plan's empty screen we've replaced the smiling face guy with an explanation on how a commission plan is calculated in the form of an illustrated diagram. Adapts for mobile and rtl. ⚠️ Note for RTL translations: The `x` position on the translatable lines in the SVG needs to be changed to `75` and `95` respectively ```diff - <tspan x="24.9952" y="109.264">Invoices, </tspan> - <tspan x="10.1241" y="124.264">Sale Orders, ...</tspan> + <tspan x="75" y="109.264">[translation for "Invoices, " ]</tspan> + <tspan x="95" y="124.264">[translation for "Sale Orders, ..."]</tspan> ``` task-6369345
Mexican payroll teams can now choose an alternative ISR withholding method that converts each pay period’s taxable income to a monthly equivalent, applies the monthly tax table, then scales the result back. This helps companies align payslip tax calculations with their preferred local practice while keeping the existing method available.
Original PR description
Some Mexican companies compute the income tax withheld on each payslip scaling up the period taxable income to its monthly equivalent. Here the monthly table is applied, and the resulting tax is scaled back down to the period. This adds a company level switch between the two methods. Both are exposed in the Payroll settings, the days per month being configurable: - 'standard' keeps the current behaviour, looking up the tax table matching the employee's pay schedule. - 'monthly_with_period_factor' derives a period factor by dividing 'l10n_mx_isr_days_per_month' (30.4 by default, i.e. 365 / 12) by the number of days in the pay period, and applies the monthly table to the scaled income. The monthly table itself is already in the database, as the 'monthly' key of the 'l10n_mx_isr_tables' rule parameter, so no new data is introduced and the new method follows the yearly table updates like the existing one does. task-6433348
1 change
Enhancements to existing features
Signer email addresses on signature requests can now only be changed by the person who created the request. This helps prevent unintended or unauthorized recipient changes and keeps the signing process more controlled.
Original PR description
Forward-Port-Of: odoo/enterprise#126675
3 changes
Enhancements to existing features
Austria’s SEPA credit transfer payments now use the newer standard payment file format by default, replacing a local older format that will soon be unsupported. This helps businesses stay compliant with bank requirements and reduces the risk of future payment file rejections.
Original PR description
Austria currently uses a local variant of SCT, which is actually a restricted version of pain.001.001.03 (the old SEPA format). This version will no longer be supported within a year. We now use pain.001.001.09 as the default format (for Austria and generic SEPA) and update existing values accordingly in the migration scripts (only for Austria, see upgrade PR). task-5157755
The Turkish chart of accounts keeps sales and sales returns on separate accounts, so a customer credit note may not reuse the income account of the sale. Backport the journal and product level default return from sales account from e7e46374b5, and make a credit note created from an existing customer invoice use it as well. Reversing an invoice copies `account_id` over from the invoice line and never recomputes it, so the return kept landing on the sales account. Dropping the copied value lets
Original PR description
The Turkish chart of accounts keeps sales and sales returns on separate accounts, so a customer credit note may not reuse the income account of the sale. Backport the journal and product level default return from sales account from e7e46374b5, and make a credit note created from an existing customer invoice use it as well. Reversing an invoice copies `account_id` over from the invoice line and never recomputes it, so the return kept landing on the sales account. Dropping the copied value lets `_compute_account_id` resolve it again on the credit note, against its own journal. Reversals made to cancel an entry are left alone, as those have to mirror the original move exactly for the two to net out. Task-6438412 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
In France, some drom-com (Guadeloupe, Martinique and Réunion) needs to use pdp just like France. So we should add those 3 for the computation of `peppol_eas`, so it will autocomplete to **France FRCTC Electronic Address**. task-6344558
Original PR description
In France, some drom-com (Guadeloupe, Martinique and Réunion) needs to use pdp just like France. So we should add those 3 for the computation of `peppol_eas`, so it will autocomplete to **France FRCTC Electronic Address**. task-6344558