Wednesday, June 11, 2025
27 changes · 18.0
Enhancements to existing features
Partner autocomplete now sends the database version and user language when requesting enrichment data. This helps the external autocomplete service return more relevant results and support compatibility across Odoo versions.
Original PR description
task-4746445 IAP PR: https://github.com/odoo/iap-apps/pull/1088
The Mail module now supports custom behavior when an activity is updated from the activity button. This helps related document workflows react more reliably to activity changes, supporting a targeted document fix.
Original PR description
For a document fix, we add a method to the activity button that implements custom behavior when an activity changes. see odoo/enterprise#84128 task-4690165
Resolved issues and error corrections
A Belgian tax description was corrected so it now accurately shows 0% VAT for services instead of incorrectly referring to 6% VAT. This helps users see the right tax information in accounting records and reduces confusion in Belgian localization setups.
Original PR description
- Before this commit: The tax with ID `attn_VAT-OUT-00-S`, which represents a `0% Service Tax`, had an incorrect description `6% VAT (Services)` instead of `0% VAT (Service)`. - After this commit: The typo has been corrected by updating the description to accurately reflect the tax rate as `0% VAT (Service)`. Task-4855172 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Also replace an unnecessary listcomp by a gencomp as the list is not necessary. Though all the callsites seem to go through the entire sequence so likely doesn't do much. Forward-Port-Of: odoo/odoo#213729
Original PR description
Also replace an unnecessary listcomp by a gencomp as the list is not necessary. Though all the callsites seem to go through the entire sequence so likely doesn't do much. Forward-Port-Of: odoo/odoo#213729
Invoice reports now display the Terms and Conditions section across the available page width when needed. This improves readability for longer or multi-line terms and removes unnecessary blank space on printed invoices.
Original PR description
**Issue** The "Terms and Conditions" section in the invoice report only takes up half of the page, leaving unnecessary blank space on the other half. **Steps to Reproduce:** 1. Install the Accounting…
**Issue** The "Terms and Conditions" section in the invoice report only takes up half of the page, leaving unnecessary blank space on the other half. **Steps to Reproduce:** 1. Install the Accounting app. 2. Navigate to Accounting > Customers > Invoices. 3. Create or open an invoice. 4. Add a multiline text in the "Terms and Conditions" field. 5. Confirm and print the invoice report. 6. Observe that the content only fills half the available width. **Expected Behavior:** The "Terms and Conditions" text should utilize the full width of the report layout if needed, especially for multiline entries. **Actual Behavior:** The text is constrained to half the page, reducing readability and leaving unused space. **Root Cause** The issue was introduced by PR #193399, which added the `overflow-auto` class to address a display bug from ticket 4416845. However, this class was applied too broadly, affecting the layout of the "Terms and Conditions" block. **Fix** To address this issue, a class is added specifically to the terms and conditions div to control its display. opw-4698250 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Clicking an image inside an editable paragraph now opens the image toolbar instead of the text toolbar. This prevents confusing editing options and makes image editing behave as users expect.
Original PR description
Current behavior before PR: - Clicking an image inside `<div class="o-paragraph">` opened the text toolbar. This is because the selection traversed a whitespace text node that was not filtered out. Desired behavior after PR is merged: - This fix filters out such nodes to show the correct (image) toolbar. task-4844821 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Removing formatting from colored table cells in the HTML editor no longer causes an error. This makes editing tables more reliable when users clear background colors or formatting.
Original PR description
**Current behavior before PR:** Steps to reproduce: - Create a table. - Select some cells, apply background color on them. - Try to remove format using removeFormat button. Trying to remove format from the colored cells leads to traceback `Infinite Loop in removeAllColor()`. The issue happens because after merging commit [1], when applying background-color on cells, text-color will also get applied along with background-color. When trying to remove color using removeFormat button, `applyTableColor` method fails to remove text-color from cells despite having color on them, leading to infinite loop error. **Desired behavior after PR:** Now, background-color is removed from cells without any traceback. [1]: https://github.com/odoo/odoo/commit/616413c3272429ec48a6ac238c899b31d0751546 task-4805468 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The table of contents in the HTML editor now shows heading levels with consistent indentation, even in unusual heading sequences. This makes generated outlines easier to read and helps users understand document structure more accurately.
Original PR description
Prior to this commit, headings indentation was inconsistent in some edge cases.
Example:
```
<h3>
<h2>
<h3>
<h2>
<h3>
```
would appear instead of:
```
<h3>
<h2>
<h3>
<h2>
<h3>
```
Desired algorithm:
- Indent heading by 1 unit to the right of the previous strictly lower heading, or no indent
task-4836337**Current behavior** Having multiple employees on a workorder with overlapping work intervals will result in an inaccurate valuation value. **Expected behavior:** Accurate valuation. **Steps to reproduce:** 1. Create a BOM with an operation (workorder) for a finished product which is valuated 2. Create an MO for that BOM, assign multiple employees on the workorder with various (overlapping) working intervals 3. Process the MO -> look at the valuation generated -> its value is
Original PR description
**Current behavior** Having multiple employees on a workorder with overlapping work intervals will result in an inaccurate valuation value. **Expected behavior:** Accurate valuation. **Steps to reproduce:** 1. Create a BOM with an operation (workorder) for a finished product which is valuated 2. Create an MO for that BOM, assign multiple employees on the workorder with various (overlapping) working intervals 3. Process the MO -> look at the valuation generated -> its value is too high (because it counted the overlapping work intervals) **Cause of the issue** A workorder's resource intervals are currently just naively summed. **Fix** Use the `Intervals` class to find the union of all resources in a workorder. opw-4430375 Forward-Port-Of: odoo/odoo#205154
Description of the issue/feature this PR addresses: When fetching videos from vimeo, if the video is deleted, an error is shown to the user which also block test `test_snippet_background_video`. Current behavior before PR: 1. Install website 2. Start `website_snippet_background_video` tour 3. You'll get an error if a video is missing Desired behavior after PR is merged: Now, with the error handling, a warning will be simply outputed for the missing video instead of a blocking mess
Original PR description
Description of the issue/feature this PR addresses: When fetching videos from vimeo, if the video is deleted, an error is shown to the user which also block test `test_snippet_background_video`. Current behavior before PR: 1. Install website 2. Start `website_snippet_background_video` tour 3. You'll get an error if a video is missing Desired behavior after PR is merged: Now, with the error handling, a warning will be simply outputed for the missing video instead of a blocking message --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213297 Forward-Port-Of: odoo/odoo#210307
Versions -------- - 17.0+ Steps ----- 1. Create a Stripe transaction; 2. check server logs. Issue ----- The `client_secret` value gets logged, Stripe documentation says this value should not be stored or logged[^1]. [^1]: https://docs.stripe.com/api/payment_intents/object#payment_intent_object-client_secret Cause ----- Currently we're just raw-logging the processing values. Solution -------- Add a `_get_specific_secret_keys` method to `payment.transaction`, to be used w
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create a Stripe transaction; 2. check server logs. Issue ----- The `client_secret` value gets logged, Stripe documentation says this value should not be stored or logged[^1]. [^1]: https://docs.stripe.com/api/payment_intents/object#payment_intent_object-client_secret Cause ----- Currently we're just raw-logging the processing values. Solution -------- Add a `_get_specific_secret_keys` method to `payment.transaction`, to be used when logging processing values that may contain secret information. Also mute the logger when redirecting to `/payment/status` from Stripe, as the `client_secret` would otherwise be logged by `werkzeug`. opw-4818301 Forward-Port-Of: odoo/odoo#211979
**Problem:** When a kit sale order is created with a package for the kit product, inside the delivery for the component of the BOM the package is the package of the kit product **Steps to reproduce:** - Inside Settings/Sales activate the "Product Packagings" setting - Create a new product (the final product) - Inside the inventory tab add a packaging line for a pack of 9 units - Create a new product (the comp product) - In the general information tab, set a unit of mesure of g - In
Original PR description
**Problem:** When a kit sale order is created with a package for the kit product, inside the delivery for the component of the BOM the package is the package of the kit product **Steps to…
**Problem:** When a kit sale order is created with a package for the kit product, inside the delivery for the component of the BOM the package is the package of the kit product **Steps to reproduce:** - Inside Settings/Sales activate the "Product Packagings" setting - Create a new product (the final product) - Inside the inventory tab add a packaging line for a pack of 9 units - Create a new product (the comp product) - In the general information tab, set a unit of mesure of g - In the inventory tab add a packaging line for a pack of 0.9 g - Set an on hand quantity for the comp product - Create a new BOM for the final product - Add a a line with the comp product for a quantity of 0.1 g - Select kit - Create a new quotation and select your kit product - Select your packaging > Confirm - Click on the delivery smart button - In the operations tab change the packaging of the stock move to the packaging of the comp - validate and print **Current behavior:** An error message appears **Cause of the issue:** When _compute_packaging_qtys calls _compute_qty (the method of the product.packaging model): bom_id.product_uom_qty is the uom of the final product (here: Units) but line['packaging'] is the packaging of the comp that we set manually on the stock move https://github.com/odoo/odoo/blob/8244b0bcdb470ff6eb95e2613903fb9175f2c435/addons/mrp/models/stock_move.py#L116 So inside _compute_qty, when _compute_qty (the method of the uom.uom model) is called, qty_uom is Units and self.product_uom_id is g https://github.com/odoo/odoo/blob/8244b0bcdb470ff6eb95e2613903fb9175f2c435/addons/product/models/product_packaging.py#L79 which triggers an error inside _compute_qty https://github.com/odoo/odoo/blob/8244b0bcdb470ff6eb95e2613903fb9175f2c435/addons/uom/models/uom_uom.py#L223-L227 opw-4781180 Forward-Port-Of: odoo/odoo#210540
Adds a test to ensure the Sales Details report computes the correct total base amount when products with multiple taxes are sold. This test covers a previously incorrect behavior where the base amount was summed multiple times for products with multiple tax lines, leading to inflated totals. Now, the report uses the accurate tax-excluded total to avoid duplication. Opw-4670643. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: o
Original PR description
Adds a test to ensure the Sales Details report computes the correct total base amount when products with multiple taxes are sold. This test covers a previously incorrect behavior where the base amount was summed multiple times for products with multiple tax lines, leading to inflated totals. Now, the report uses the accurate tax-excluded total to avoid duplication. Opw-4670643. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203289
Exported the SignatureForm class to allow overriding from other modules. Forward-Port-Of: odoo/odoo#213510
Original PR description
Exported the SignatureForm class to allow overriding from other modules. Forward-Port-Of: odoo/odoo#213510
This error occurs when attempting to create a submenu item under a menu item. Steps to reproduce: - Go to `menu items`. - Click `New` > In `Submenus` click `Add a line` `TypeError: unsupported operand type(s) for +: 'bool' and 'str'` This error occurs when attempting to create a submenu item under a menu item that does not have a name. Since the menu item record has not been saved yet, the system assigns a new ID to the menu item and sets its name to False. When computing the comp
Original PR description
This error occurs when attempting to create a submenu item under a menu item. Steps to reproduce: - Go to `menu items`. - Click `New` > In `Submenus` click `Add a line` `TypeError: unsupported…
This error occurs when attempting to create a submenu item under a menu item. Steps to reproduce: - Go to `menu items`. - Click `New` > In `Submenus` click `Add a line` `TypeError: unsupported operand type(s) for +: 'bool' and 'str'` This error occurs when attempting to create a submenu item under a menu item that does not have a name. Since the menu item record has not been saved yet, the system assigns a new ID to the menu item and sets its name to False. When computing the complete name for the submenu item, the menu(parent menu) item's name is False, which causes the error. https://github.com/odoo/odoo/blob/d2ea23f252f0f8f329e2b0ff96de6ee2a14b922f/odoo/addons/base/models/ir_ui_menu.py#L56 This commit ensures that if the parent menu item record has not been saved and its name is False, an empty string is used in its place. sentry-6368548342 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#210291
Description of the issue/feature this PR addresses: The system enforced a strict check that the delivery carrier partner must be located in Romania. This was limiting for companies that work with international carriers or operate across borders. Current behavior before PR: Delivery carriers not based in Romania triggered an error and could not be used in the delivery process. Desired behavior after PR is merged: Delivery carriers can now be located in any country. This provides greater
Original PR description
Description of the issue/feature this PR addresses: The system enforced a strict check that the delivery carrier partner must be located in Romania. This was limiting for companies that work with international carriers or operate across borders. Current behavior before PR: Delivery carriers not based in Romania triggered an error and could not be used in the delivery process. Desired behavior after PR is merged: Delivery carriers can now be located in any country. This provides greater flexibility in managing logistics and integrating international shipping partners. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212476
**Steps to reproduce:** - Install base_vat and website_sale - Execute the following steps as a public user - From website, go to the Shop - Add a product to the cart - Proceed to checkout - Enter an address in Romania - Enter a valid CUI as VAT (e.g. 8001011234567) - Validate the address - Edit the address to see the issue **Issue:** The country code (i.e. RO) has been prepended to the input VAT, which is not correct. If the Romanian localization is installed and an invoice is crea
Original PR description
**Steps to reproduce:** - Install base_vat and website_sale - Execute the following steps as a public user - From website, go to the Shop - Add a product to the cart - Proceed to checkout - Enter an…
**Steps to reproduce:** - Install base_vat and website_sale - Execute the following steps as a public user - From website, go to the Shop - Add a product to the cart - Proceed to checkout - Enter an address in Romania - Enter a valid CUI as VAT (e.g. 8001011234567) - Validate the address - Edit the address to see the issue **Issue:** The country code (i.e. RO) has been prepended to the input VAT, which is not correct. If the Romanian localization is installed and an invoice is created from the order and sent to the government, it will be rejected because of the incorrect VAT. **Solution:** Romania can accept the CUI as tax identifier. The CUI only contains digits. When formatting the VAT from Romania, the country code will not be prepended automatically. To reduce the effect of the fix, the code prepend will only be skipped if the country of the customer is the same than the country of the website. opw-4655064 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#211693
Problem: When a video is added to the `website_description` field using the website editor, it appears visually shifted to the left (by 50%) when viewed from the Contacts page in the "Website Partner Full Description" field. Cause: The class `o-position-absolute` sets `left: auto` which was evaluated as `50%`, and`margin-left: -50%` was added to center absolutely positioned elements. However, this causes issues when rendered in `html_field` context, where `left: auto` evaluates to `0px`. As
Original PR description
Problem: When a video is added to the `website_description` field using the website editor, it appears visually shifted to the left (by 50%) when viewed from the Contacts page in the "Website Partner…
Problem: When a video is added to the `website_description` field using the website editor, it appears visually shifted to the left (by 50%) when viewed from the Contacts page in the "Website Partner Full Description" field. Cause: The class `o-position-absolute` sets `left: auto` which was evaluated as `50%`, and`margin-left: -50%` was added to center absolutely positioned elements. However, this causes issues when rendered in `html_field` context, where `left: auto` evaluates to `0px`. As a result, the `-50%` margin shifts the video offscreen. Solution: Set both `left` and `right` to `0` in `.o-position-absolute` to ensure proper centering. Remove `margin-left: -50%` to prevent misalignment in non-editor contexts. **Before**: In website editor:  In contacts (html_field):  **After** In website editor:  In contacts (html_field):  Steps to reproduce: - Go to Contacts > "Gemini Furniture". - Add a video in the "Website Partner Full Description" field. - Save and open the partner on the website (`partners/gemini-furniture-11`). - Return to the Contacts page. → The video appears shifted 50% to the left. opw-4752567 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212344
- Install l10n_it_edi. - Install l10n_it_edi_withholding - Uninstall l10n_it_edi_withholding - Attempt an install of l10n_it_edi_withholding The following error appears: Invoice and credit note distribution should each contain exactly one line for the base. When uninstalling l10n_it_edi_withholding, the account.tax data are not unlinked which causes issues when _l10n_it_edi_withholding_post_init tries to _load_data with them. This commit prevents already existing account tax from bei
Original PR description
- Install l10n_it_edi. - Install l10n_it_edi_withholding - Uninstall l10n_it_edi_withholding - Attempt an install of l10n_it_edi_withholding The following error appears: Invoice and credit note distribution should each contain exactly one line for the base. When uninstalling l10n_it_edi_withholding, the account.tax data are not unlinked which causes issues when _l10n_it_edi_withholding_post_init tries to _load_data with them. This commit prevents already existing account tax from being loaded from data during the installation. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4798659) opw-4798659 Forward-Port-Of: odoo/odoo#211910
Currently the signature of function `_notify_by_email_prepare_rendering_context` in `account_peppol` is not compatible with all ways to call the super function. This can lead to code breaking when `account_peppol` is installed (although it works fine without). This is fixed in this commit. Detail: In module `mail` the (super) function has signature ```python def _notify_by_email_prepare_rendering_context(self, message, msg_vals=False,
Original PR description
Currently the signature of function `_notify_by_email_prepare_rendering_context` in `account_peppol` is not compatible with all ways to call the super function. This can lead to code breaking when…
Currently the signature of function `_notify_by_email_prepare_rendering_context` in `account_peppol` is not compatible with all ways to call the super function. This can lead to code breaking when `account_peppol` is installed (although it works fine without).
This is fixed in this commit.
Detail:
In module `mail` the (super) function has signature
```python
def _notify_by_email_prepare_rendering_context(self, message, msg_vals=False,
model_description=False,
force_email_company=False,
force_email_lang=False):
```
Currently in `acccount_peppol` the signature is
```python
def _notify_by_email_prepare_rendering_context(self, message, **kwargs):
```
The super function can be called as follows while the function in `account_peppol` can not.
```python
_notify_by_email_prepare_rendering_context(self, message, msg_vals)
```
opw-4846106
Forward-Port-Of: odoo/odoo#213516The E-way Bill date was previously displayed in the `YYYY-MM-DD` format. ---- **In this commit** - This change updates the date formatting logic to display dates in the `DD/MM/YYYY` format for better readability and consistency in ewaybill report. --- task-4807690 Forward-Port-Of: odoo/odoo#210583
Original PR description
The E-way Bill date was previously displayed in the `YYYY-MM-DD` format. ---- **In this commit** - This change updates the date formatting logic to display dates in the `DD/MM/YYYY` format for better readability and consistency in ewaybill report. --- task-4807690 Forward-Port-Of: odoo/odoo#210583
Current behaviour: --- When displaying a malaysian address on an invoice, the state code is shown. Street 12 Cityname KTN 12345 Malaysia In 17.0 and after, KTN is replaced by MY-03 (and other state codes) per ISO standards KUL -> MY-14, PHG -> MY-06, etc. https://github.com/odoo/odoo/commit/a8204fcf6f919cfa85411f96c11c247e1d0a6f35 Expected behaviour: --- The state name should be displayed instead. Street 12 Cityname Kelantan 12345 Malaysia Steps to reproduce: --- 1. G
Original PR description
Current behaviour: --- When displaying a malaysian address on an invoice, the state code is shown. Street 12 Cityname KTN 12345 Malaysia In 17.0 and after, KTN is replaced by MY-03 (and other state codes) per ISO standards KUL -> MY-14, PHG -> MY-06, etc. https://github.com/odoo/odoo/commit/a8204fcf6f919cfa85411f96c11c247e1d0a6f35 Expected behaviour: --- The state name should be displayed instead. Street 12 Cityname Kelantan 12345 Malaysia Steps to reproduce: --- 1. Go to Contacts 2. Create a new contact 3. Set country as Malaysia, and choose a state 4. Go to Invoice, create one 5. Select new malaysian contact 6. State code in address instead of name Fix: --- Added a custom address_format in res_country_data.xml opw-4762300 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#212316
Problem: Given that the fields for the salary rules has already been generated for the current country set on the salary structure, an error occurs when accessing the payroll reporting records after the user changes the country because the payroll reporting records will reference a different field name. The outdated fields will not properly unlink, new fields won't be generated based on the new country set, but the payroll report will reference the new field name. Purpose: When changing the c
Original PR description
Problem: Given that the fields for the salary rules has already been generated for the current country set on the salary structure, an error occurs when accessing the payroll reporting records after…
Problem: Given that the fields for the salary rules has already been generated for the current country set on the salary structure, an error occurs when accessing the payroll reporting records after the user changes the country because the payroll reporting records will reference a different field name. The outdated fields will not properly unlink, new fields won't be generated based on the new country set, but the payroll report will reference the new field name. Purpose: When changing the country on a salary structure, the rules that appears on the payroll reporting needs to unlink outdated fields and regenerate the fields based on the new country value. The salary rule fields are dependent on the country due to its naming convention. Steps to Reproduce on Runbot: 1. Install Payroll 2. Create a new salary structure with no country 3. Create a new salary rule and enable "View in Payroll reporting" 4. Check fields and observe that a field prefixed by 'x_l10n_xx' was created 5. Change the country set on the salary structure 6. Try to access a payroll report record and a traceback is thrown opw-4649030 Forward-Port-Of: odoo/enterprise#87057 Forward-Port-Of: odoo/enterprise#83749
Test coverage for community-side diff about calculating a workcenter's cost in a way that omits counting duration within a working interval that was previously counted. opw-4430375 Forward-Port-Of: odoo/enterprise#81701
Original PR description
Test coverage for community-side diff about calculating a workcenter's cost in a way that omits counting duration within a working interval that was previously counted. opw-4430375 Forward-Port-Of: odoo/enterprise#81701
**Before this commit:** - Submitting a GSTR-1 return to the GST portal with an empty `hsn` dictionary caused a schema validation error from the portal: {"error_msg": "Error in Json structure validation.", "error_cd": "RET191106"} - This occurred because the generated JSON included the `hsn` key with an empty dictionary, which is invalid as per government schema requirements. - The portal expects the `hsn` field to be absent if no data is available, or to contain valid nested keys an
Original PR description
**Before this commit:**
- Submitting a GSTR-1 return to the GST portal with an empty `hsn` dictionary
caused a schema validation error from the portal:
{"error_msg": "Error in Json structure validation.", "error_cd": "RET191106"}
- This occurred because the generated JSON included the `hsn` key with an
empty dictionary, which is invalid as per government schema requirements.
- The portal expects the `hsn` field to be absent if no data is available, or to
contain valid nested keys and values.
**After this commit:**
- A `ValidationError` is raised when attempting to send a GSTR-1 return with no
HSN data, preventing the generation and submission of an invalid JSON payload.
- This ensures that the `hsn` field is only added to the payload when it contains
at least one section with data.
- Helps avoid unnecessary submission failures and improves user feedback at the
point of action.
task - 4807628
Forward-Port-Of: odoo/enterprise#86655The certification reports for Colombian withholdings (Fuente, ReteIVA, ReteICA) incorrectly referenced the current year (i.e., the year when the report is generated) as the "año gravable" in the certificate body: "Durante el año gravable de 2025..." This caused a mismatch when generating certificates for the previous fiscal period (e.g., 2024), especially when the user filtered movements from a prior year. This change ensures that the "año gravable" corresponds to the selected period ye
Original PR description
The certification reports for Colombian withholdings (Fuente, ReteIVA, ReteICA) incorrectly referenced the current year (i.e., the year when the report is generated) as the "año gravable" in the…
The certification reports for Colombian withholdings (Fuente, ReteIVA, ReteICA) incorrectly referenced the current year (i.e., the year when the report is generated) as the "año gravable" in the certificate body: "Durante el año gravable de 2025..." This caused a mismatch when generating certificates for the previous fiscal period (e.g., 2024), especially when the user filtered movements from a prior year. This change ensures that the "año gravable" corresponds to the selected period year, taken from the date_from filter in the report wizard, which reflects the actual accounting or fiscal period being certified. Justification According to Colombian tax practices and DIAN guidelines, the "año gravable" mentioned in retention certificates must match the period in which the income or payment was made and the tax was withheld. Using the current date instead of the actual reporting period could lead to confusion or even legal inconsistencies during audits. Reference: Estatuto Tributario Art. 378: Certificates must include the fiscal year in which the withholding was applied. Common practice requires companies to issue certificates reflecting the year of the transactions, not the year of report generation. Forward-Port-Of: odoo/enterprise#86838
Previously, the link used by the “test_winbooks_import” test to download sample data (PARFILUX) from Winbooks was unavailable. This commit changes the url to use directly Winbooks server instead of Amazon, which will allow the test to run without any problem. Forward-Port-Of: odoo/enterprise#87090
Original PR description
Previously, the link used by the “test_winbooks_import” test to download sample data (PARFILUX) from Winbooks was unavailable. This commit changes the url to use directly Winbooks server instead of Amazon, which will allow the test to run without any problem. Forward-Port-Of: odoo/enterprise#87090