From 313e7a98f9897262f6c82b957244ee48b7f1ee62 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Tue, 19 Nov 2024 12:03:08 +0100 Subject: [PATCH 01/13] [REF] Split account_ecotax_sale into account_ecotax_sale and account_ecotax_sale_tax --- account_ecotax_sale_tax/README.rst | 88 ++++ account_ecotax_sale_tax/__init__.py | 1 + account_ecotax_sale_tax/__manifest__.py | 17 + account_ecotax_sale_tax/models/__init__.py | 1 + .../models/sale_order_line.py | 59 +++ .../readme/CONTRIBUTORS.rst | 2 + .../readme/DESCRIPTION.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 426 ++++++++++++++++++ account_ecotax_sale_tax/tests/__init__.py | 1 + .../tests/test_sale_ecotax.py | 19 + account_ecotax_sale_tax/views/sale_view.xml | 14 + 12 files changed, 629 insertions(+) create mode 100644 account_ecotax_sale_tax/README.rst create mode 100644 account_ecotax_sale_tax/__init__.py create mode 100644 account_ecotax_sale_tax/__manifest__.py create mode 100644 account_ecotax_sale_tax/models/__init__.py create mode 100644 account_ecotax_sale_tax/models/sale_order_line.py create mode 100644 account_ecotax_sale_tax/readme/CONTRIBUTORS.rst create mode 100644 account_ecotax_sale_tax/readme/DESCRIPTION.rst create mode 100644 account_ecotax_sale_tax/static/description/icon.png create mode 100644 account_ecotax_sale_tax/static/description/index.html create mode 100644 account_ecotax_sale_tax/tests/__init__.py create mode 100644 account_ecotax_sale_tax/tests/test_sale_ecotax.py create mode 100644 account_ecotax_sale_tax/views/sale_view.xml diff --git a/account_ecotax_sale_tax/README.rst b/account_ecotax_sale_tax/README.rst new file mode 100644 index 000000000..0c1c81cba --- /dev/null +++ b/account_ecotax_sale_tax/README.rst @@ -0,0 +1,88 @@ +================================= +sale Ecotax Management (as a tax) +================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:731b0e3366890dbeca7db020b75324a2d458308b74991b4ce1d16937c9591178 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--fiscal--rule-lightgray.png?logo=github + :target: https://github.com/OCA/account-fiscal-rule/tree/16.0/account_ecotax_sale_tax + :alt: OCA/account-fiscal-rule +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/account-fiscal-rule-16-0/account-fiscal-rule-16-0-account_ecotax_sale_tax + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-fiscal-rule&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module is an extension of the module *l10n_fr_ecotax* for sale orders. Please refer to the README of the module *l10n_fr_ecotax* for more info about ecotax management. + +**Table of contents** + +.. contents:: + :local: + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Akretion + +Contributors +~~~~~~~~~~~~ + +* Mourad EL HADJ MIMOUNE +* Florian DA COSTA + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-mourad-ehm| image:: https://github.com/mourad-ehm.png?size=40px + :target: https://github.com/mourad-ehm + :alt: mourad-ehm +.. |maintainer-florian-dacosta| image:: https://github.com/florian-dacosta.png?size=40px + :target: https://github.com/florian-dacosta + :alt: florian-dacosta + +Current `maintainers `__: + +|maintainer-mourad-ehm| |maintainer-florian-dacosta| + +This module is part of the `OCA/account-fiscal-rule `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_ecotax_sale_tax/__init__.py b/account_ecotax_sale_tax/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/account_ecotax_sale_tax/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/account_ecotax_sale_tax/__manifest__.py b/account_ecotax_sale_tax/__manifest__.py new file mode 100644 index 000000000..f568e8a49 --- /dev/null +++ b/account_ecotax_sale_tax/__manifest__.py @@ -0,0 +1,17 @@ +# © 2014-2023 Akretion (http://www.akretion.com) +# @author Mourad EL HADJ MIMOUNE +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "sale Ecotax Management (as a tax)", + "summary": "Sale Ecotaxe managed as a tax", + "version": "16.0.2.0.0", + "author": "Akretion,Odoo Community Association (OCA)", + "maintainers": ["mourad-ehm", "florian-dacosta"], + "website": "https://github.com/OCA/account-fiscal-rule", + "category": "Localization/Account Taxes", + "license": "AGPL-3", + "depends": ["account_ecotax_sale", "account_ecotax_tax"], + "data": ["views/sale_view.xml"], + "installable": True, + "auto_install": True, +} diff --git a/account_ecotax_sale_tax/models/__init__.py b/account_ecotax_sale_tax/models/__init__.py new file mode 100644 index 000000000..8eb9d1d40 --- /dev/null +++ b/account_ecotax_sale_tax/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order_line diff --git a/account_ecotax_sale_tax/models/sale_order_line.py b/account_ecotax_sale_tax/models/sale_order_line.py new file mode 100644 index 000000000..3719bdce9 --- /dev/null +++ b/account_ecotax_sale_tax/models/sale_order_line.py @@ -0,0 +1,59 @@ +# © 2015 -2023 Akretion (http://www.akretion.com) +# @author Mourad EL HADJ MIMOUNE +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, models + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + def _get_ecotax_amounts(self): + self.ensure_one() + # do not call super as we completly change the way to compute it + ecotax_ids = self.tax_id.filtered(lambda tax: tax.is_ecotax) + if (self.display_type and self.display_type != "product") or not ecotax_ids: + return 0.0, 0.0 + amount_currency = self.price_unit * (1 - self.discount / 100) + quantity = self.product_uom_qty + compute_all_currency = ecotax_ids.compute_all( + amount_currency, + currency=self.currency_id, + quantity=quantity, + product=self.product_id, + partner=self.order_id.partner_shipping_id, + ) + subtotal_ecotax = 0.0 + for tax in compute_all_currency["taxes"]: + subtotal_ecotax += tax["amount"] + + unit = quantity and subtotal_ecotax / quantity or subtotal_ecotax + return unit, subtotal_ecotax + + @api.depends( + "tax_id", + "product_uom_qty", + "product_id", + ) + def _compute_ecotax(self): + return super()._compute_ecotax() + + @api.depends("product_id", "company_id") + def _compute_tax_id(self): + res = super()._compute_tax_id() + for line in self: + line.tax_id |= line._get_computed_ecotaxes() + return res + + def _get_computed_ecotaxes(self): + self.ensure_one() + sale_ecotaxes = self.product_id.all_ecotax_line_product_ids.mapped( + "classification_id" + ).mapped("sale_ecotax_ids") + ecotax_ids = sale_ecotaxes.filtered( + lambda tax: tax.company_id == self.order_id.company_id + ) + + if ecotax_ids and self.order_id.fiscal_position_id: + ecotax_ids = self.order_id.fiscal_position_id.map_tax(ecotax_ids) + return ecotax_ids diff --git a/account_ecotax_sale_tax/readme/CONTRIBUTORS.rst b/account_ecotax_sale_tax/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..b38466d33 --- /dev/null +++ b/account_ecotax_sale_tax/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Mourad EL HADJ MIMOUNE +* Florian DA COSTA diff --git a/account_ecotax_sale_tax/readme/DESCRIPTION.rst b/account_ecotax_sale_tax/readme/DESCRIPTION.rst new file mode 100644 index 000000000..ad5cc0194 --- /dev/null +++ b/account_ecotax_sale_tax/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module is an extension of the module *l10n_fr_ecotax* for sale orders. Please refer to the README of the module *l10n_fr_ecotax* for more info about ecotax management. diff --git a/account_ecotax_sale_tax/static/description/icon.png b/account_ecotax_sale_tax/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/account_ecotax_sale_tax/static/description/index.html b/account_ecotax_sale_tax/static/description/index.html new file mode 100644 index 000000000..b96ef45c4 --- /dev/null +++ b/account_ecotax_sale_tax/static/description/index.html @@ -0,0 +1,426 @@ + + + + + +sale Ecotax Management (as a tax) + + + +
+

sale Ecotax Management (as a tax)

+ + +

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

+

This module is an extension of the module l10n_fr_ecotax for sale orders. Please refer to the README of the module l10n_fr_ecotax for more info about ecotax management.

+

Table of contents

+ +
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainers:

+

mourad-ehm florian-dacosta

+

This module is part of the OCA/account-fiscal-rule project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/account_ecotax_sale_tax/tests/__init__.py b/account_ecotax_sale_tax/tests/__init__.py new file mode 100644 index 000000000..809acf6a1 --- /dev/null +++ b/account_ecotax_sale_tax/tests/__init__.py @@ -0,0 +1 @@ +from . import test_sale_ecotax diff --git a/account_ecotax_sale_tax/tests/test_sale_ecotax.py b/account_ecotax_sale_tax/tests/test_sale_ecotax.py new file mode 100644 index 000000000..542a514d4 --- /dev/null +++ b/account_ecotax_sale_tax/tests/test_sale_ecotax.py @@ -0,0 +1,19 @@ +# © 2021-2023 Akretion (http://www.akretion.com) +# @author Mourad EL HADJ MIMOUNE +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +from odoo.addons.account_ecotax_sale.tests.test_sale_ecotax import TestsaleEcotaxCommon +from odoo.addons.account_ecotax_tax.tests.test_ecotax import TestInvoiceEcotaxTaxComon + + +class TestsaleEcotaxTax(TestInvoiceEcotaxTaxComon, TestsaleEcotaxCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + + def test_01_classification_weight_based_ecotax(self): + self._test_01_classification_weight_based_ecotax() + + def test_02_classification_ecotax(self): + self._test_02_classification_ecotax() diff --git a/account_ecotax_sale_tax/views/sale_view.xml b/account_ecotax_sale_tax/views/sale_view.xml new file mode 100644 index 000000000..063e95cd1 --- /dev/null +++ b/account_ecotax_sale_tax/views/sale_view.xml @@ -0,0 +1,14 @@ + + + + + sale.order.line + + + + 1 + + + + + From 37554f7ab89e024fc8023fbbad198dfc134c2cd2 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Thu, 16 Jan 2025 17:17:39 +0100 Subject: [PATCH 02/13] [IMP] Convert onchange to compute to create sale ecotax lines to improve reliability (when sol is not created/update from UI) --- .../models/sale_order_line.py | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/account_ecotax_sale_tax/models/sale_order_line.py b/account_ecotax_sale_tax/models/sale_order_line.py index 3719bdce9..78606fb2d 100644 --- a/account_ecotax_sale_tax/models/sale_order_line.py +++ b/account_ecotax_sale_tax/models/sale_order_line.py @@ -2,12 +2,17 @@ # @author Mourad EL HADJ MIMOUNE # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import api, fields, models class SaleOrderLine(models.Model): _inherit = "sale.order.line" + subtotal_ecotax = fields.Float(compute="_compute_ecotax_tax") + ecotax_amount_unit = fields.Float( + compute="_compute_ecotax_tax", + ) + def _get_ecotax_amounts(self): self.ensure_one() # do not call super as we completly change the way to compute it @@ -35,8 +40,19 @@ def _get_ecotax_amounts(self): "product_uom_qty", "product_id", ) - def _compute_ecotax(self): - return super()._compute_ecotax() + def _compute_ecotax_tax(self): + return self._compute_ecotax() + + def _get_new_vals_list(self): + if not self.subtotal_ecotax: + return [] + return super()._get_new_vals_list() + + # ensure lines are re-generated in case ecotax_amount_unit of invoice line change + # without changing the product + @api.depends("ecotax_amount_unit", "subtotal_ecotax") + def _compute_ecotax_line_ids(self): + return super()._compute_ecotax_line_ids() @api.depends("product_id", "company_id") def _compute_tax_id(self): @@ -57,3 +73,13 @@ def _get_computed_ecotaxes(self): if ecotax_ids and self.order_id.fiscal_position_id: ecotax_ids = self.order_id.fiscal_position_id.map_tax(ecotax_ids) return ecotax_ids + + def _prepare_invoice_line(self, **optional_values): + res = super()._prepare_invoice_line(**optional_values) + # remove ecoltax_line_ids value if empty in vals so it is recomputed during + # invoice line creation. Example of use case : Ship a product not present in + # SO. So line is created with qty 0 (so with no ecotax) but in invoice it is + # added with a qty, with ecotax, so we want to recompute the ecotax report lines + if "ecotax_line_ids" in res and not res["ecotax_line_ids"]: + res.pop("ecotax_line_ids") + return res From a837d22567ab54749418375c57674cce8f6c7b95 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 12 Mar 2025 10:53:59 +0000 Subject: [PATCH 03/13] [UPD] Update account_ecotax_sale_tax.pot --- .../i18n/account_ecotax_sale_tax.pot | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 account_ecotax_sale_tax/i18n/account_ecotax_sale_tax.pot diff --git a/account_ecotax_sale_tax/i18n/account_ecotax_sale_tax.pot b/account_ecotax_sale_tax/i18n/account_ecotax_sale_tax.pot new file mode 100644 index 000000000..148ae347a --- /dev/null +++ b/account_ecotax_sale_tax/i18n/account_ecotax_sale_tax.pot @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_ecotax_sale_tax +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_ecotax_sale_tax +#: model:ir.model.fields,field_description:account_ecotax_sale_tax.field_sale_order_line__subtotal_ecotax +msgid "Ecotax" +msgstr "" + +#. module: account_ecotax_sale_tax +#: model:ir.model.fields,field_description:account_ecotax_sale_tax.field_sale_order_line__ecotax_amount_unit +msgid "Ecotax Unit" +msgstr "" + +#. module: account_ecotax_sale_tax +#: model:ir.model,name:account_ecotax_sale_tax.model_sale_order_line +msgid "Sales Order Line" +msgstr "" From 85a5bb8d14d348eb1a5078a2b5d0ced2993334c0 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 12 Mar 2025 10:56:53 +0000 Subject: [PATCH 04/13] [BOT] post-merge updates --- account_ecotax_sale_tax/README.rst | 2 +- account_ecotax_sale_tax/static/description/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/account_ecotax_sale_tax/README.rst b/account_ecotax_sale_tax/README.rst index 0c1c81cba..bd5e954cb 100644 --- a/account_ecotax_sale_tax/README.rst +++ b/account_ecotax_sale_tax/README.rst @@ -7,7 +7,7 @@ sale Ecotax Management (as a tax) !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:731b0e3366890dbeca7db020b75324a2d458308b74991b4ce1d16937c9591178 + !! source digest: sha256:60b249b017ecd4e935e87736440836a43ace0baad7cd695a4a4bcef3d9f219fd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/account_ecotax_sale_tax/static/description/index.html b/account_ecotax_sale_tax/static/description/index.html index b96ef45c4..d89d01807 100644 --- a/account_ecotax_sale_tax/static/description/index.html +++ b/account_ecotax_sale_tax/static/description/index.html @@ -367,7 +367,7 @@

sale Ecotax Management (as a tax)

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:731b0e3366890dbeca7db020b75324a2d458308b74991b4ce1d16937c9591178 +!! source digest: sha256:60b249b017ecd4e935e87736440836a43ace0baad7cd695a4a4bcef3d9f219fd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

This module is an extension of the module l10n_fr_ecotax for sale orders. Please refer to the README of the module l10n_fr_ecotax for more info about ecotax management.

From 6a0d0996aa06ee4cc5459149fa30784853cf3726 Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 14 Mar 2025 08:39:32 +0000 Subject: [PATCH 05/13] Added translation using Weblate (Italian) --- account_ecotax_sale_tax/i18n/it.po | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 account_ecotax_sale_tax/i18n/it.po diff --git a/account_ecotax_sale_tax/i18n/it.po b/account_ecotax_sale_tax/i18n/it.po new file mode 100644 index 000000000..80ca087a2 --- /dev/null +++ b/account_ecotax_sale_tax/i18n/it.po @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_ecotax_sale_tax +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: account_ecotax_sale_tax +#: model:ir.model.fields,field_description:account_ecotax_sale_tax.field_sale_order_line__subtotal_ecotax +msgid "Ecotax" +msgstr "" + +#. module: account_ecotax_sale_tax +#: model:ir.model.fields,field_description:account_ecotax_sale_tax.field_sale_order_line__ecotax_amount_unit +msgid "Ecotax Unit" +msgstr "" + +#. module: account_ecotax_sale_tax +#: model:ir.model,name:account_ecotax_sale_tax.model_sale_order_line +msgid "Sales Order Line" +msgstr "" From d62eac6f6bd4dbcd35c748d19d927c494d63d6bc Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 18 Mar 2025 16:50:00 +0000 Subject: [PATCH 06/13] Translated using Weblate (Italian) Currently translated at 100.0% (3 of 3 strings) Translation: account-fiscal-rule-16.0/account-fiscal-rule-16.0-account_ecotax_sale_tax Translate-URL: https://translation.odoo-community.org/projects/account-fiscal-rule-16-0/account-fiscal-rule-16-0-account_ecotax_sale_tax/it/ --- account_ecotax_sale_tax/i18n/it.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/account_ecotax_sale_tax/i18n/it.po b/account_ecotax_sale_tax/i18n/it.po index 80ca087a2..245b312d5 100644 --- a/account_ecotax_sale_tax/i18n/it.po +++ b/account_ecotax_sale_tax/i18n/it.po @@ -6,25 +6,27 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-03-18 19:06+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10.2\n" #. module: account_ecotax_sale_tax #: model:ir.model.fields,field_description:account_ecotax_sale_tax.field_sale_order_line__subtotal_ecotax msgid "Ecotax" -msgstr "" +msgstr "Imposta ecologica" #. module: account_ecotax_sale_tax #: model:ir.model.fields,field_description:account_ecotax_sale_tax.field_sale_order_line__ecotax_amount_unit msgid "Ecotax Unit" -msgstr "" +msgstr "Unità imposta ecologica" #. module: account_ecotax_sale_tax #: model:ir.model,name:account_ecotax_sale_tax.model_sale_order_line msgid "Sales Order Line" -msgstr "" +msgstr "Riga ordine di vendita" From 43da5f043f62b8fc65c1d5a0a8e171f9ba4bc992 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Fri, 1 Aug 2025 15:33:16 +0200 Subject: [PATCH 07/13] [FIX] account_ecotax_sale_tax tests : adapt to price excluded tax test cases --- .../tests/test_sale_ecotax.py | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/account_ecotax_sale_tax/tests/test_sale_ecotax.py b/account_ecotax_sale_tax/tests/test_sale_ecotax.py index 542a514d4..2998ee987 100644 --- a/account_ecotax_sale_tax/tests/test_sale_ecotax.py +++ b/account_ecotax_sale_tax/tests/test_sale_ecotax.py @@ -3,6 +3,8 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo.tests.common import Form + from odoo.addons.account_ecotax_sale.tests.test_sale_ecotax import TestsaleEcotaxCommon from odoo.addons.account_ecotax_tax.tests.test_ecotax import TestInvoiceEcotaxTaxComon @@ -13,7 +15,46 @@ def setUpClass(cls): super().setUpClass() def test_01_classification_weight_based_ecotax(self): - self._test_01_classification_weight_based_ecotax() + """Tests with weight based ecotaxs""" + # in order to test the correct assignment of weight ecotax + # I create a customer sale. + partner12 = self.env.ref("base.res_partner_12") + self.sale = self.create_sale_partner( + partner_id=partner12, products_and_qty=[(self.product_b, 1.0)] + ) + self.assertEqual(self.product_b.ecotax_amount, 16) + so_form = Form(self.sale) + with so_form.order_line.edit(0) as line: + line.product_uom_qty = 3.0 + so_form.save() + self.assertEqual(self.sale.order_line.ecotax_amount_unit, 16) + self.assertEqual(self.sale.order_line.subtotal_ecotax, 48) + self.assertEqual(self.sale.amount_total, 648) + self.assertEqual(self.sale.amount_ecotax, 48) def test_02_classification_ecotax(self): - self._test_02_classification_ecotax() + """Tests multiple lines with mixed ecotaxs""" + # in order to test the correct assignment of fixed ecotax and weight ecotax + # I create a customer sale. + partner12 = self.env.ref("base.res_partner_12") + self.sale = self.create_sale_partner( + partner_id=partner12, + products_and_qty=[(self.product_a, 1.0), (self.product_b, 2.0)], + ) + # I assign a product with fixed ecotaxte to sale line + sale_line1 = self.sale.order_line[0] + # make sure to have 1 tax and fix tax rate + sale_line2 = self.sale.order_line[1] + # make sure to have 1 tax and fix tax rate + self.assertEqual(self.product_a.ecotax_amount, 5.0) + so_form = Form(self.sale) + with so_form.order_line.edit(0) as line: + line.product_uom_qty = 3.0 + so_form.save() + + self.assertEqual(sale_line1.ecotax_amount_unit, 5.0) + self.assertAlmostEqual(sale_line1.subtotal_ecotax, 15.0) + self.assertEqual(sale_line2.ecotax_amount_unit, 16) + self.assertEqual(sale_line2.subtotal_ecotax, 32) + self.assertEqual(self.sale.amount_total, 1047.0) + self.assertEqual(self.sale.amount_ecotax, 47.0) From 06803a93247c85f10f13e1b6a81db28f93acf84c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 1 Aug 2025 13:42:38 +0000 Subject: [PATCH 08/13] [BOT] post-merge updates --- account_ecotax_sale_tax/README.rst | 8 ++++-- account_ecotax_sale_tax/__manifest__.py | 2 +- .../static/description/index.html | 26 ++++++++++++------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/account_ecotax_sale_tax/README.rst b/account_ecotax_sale_tax/README.rst index bd5e954cb..628cd57d5 100644 --- a/account_ecotax_sale_tax/README.rst +++ b/account_ecotax_sale_tax/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================================= sale Ecotax Management (as a tax) ================================= @@ -7,13 +11,13 @@ sale Ecotax Management (as a tax) !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:60b249b017ecd4e935e87736440836a43ace0baad7cd695a4a4bcef3d9f219fd + !! source digest: sha256:1bb5569058cef23c079b4a18bfe9e0ab55d3dff17a0eadb2ff8953f5850d14dd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--fiscal--rule-lightgray.png?logo=github diff --git a/account_ecotax_sale_tax/__manifest__.py b/account_ecotax_sale_tax/__manifest__.py index f568e8a49..1ddae635c 100644 --- a/account_ecotax_sale_tax/__manifest__.py +++ b/account_ecotax_sale_tax/__manifest__.py @@ -4,7 +4,7 @@ { "name": "sale Ecotax Management (as a tax)", "summary": "Sale Ecotaxe managed as a tax", - "version": "16.0.2.0.0", + "version": "16.0.2.0.1", "author": "Akretion,Odoo Community Association (OCA)", "maintainers": ["mourad-ehm", "florian-dacosta"], "website": "https://github.com/OCA/account-fiscal-rule", diff --git a/account_ecotax_sale_tax/static/description/index.html b/account_ecotax_sale_tax/static/description/index.html index d89d01807..b8e7979f6 100644 --- a/account_ecotax_sale_tax/static/description/index.html +++ b/account_ecotax_sale_tax/static/description/index.html @@ -3,7 +3,7 @@ -sale Ecotax Management (as a tax) +README.rst -
-

sale Ecotax Management (as a tax)

+
+ + +Odoo Community Association + +
+

sale Ecotax Management (as a tax)

-

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

This module is an extension of the module l10n_fr_ecotax for sale orders. Please refer to the README of the module l10n_fr_ecotax for more info about ecotax management.

Table of contents

@@ -384,7 +389,7 @@

sale Ecotax Management (as a tax)

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed @@ -392,22 +397,22 @@

Bug Tracker

Do not contact contributors directly about support or help with technical issues.

+
From c2ac070e01a74d59999ec90483ef87f814d3f49a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 30 Nov 2025 05:13:00 +0000 Subject: [PATCH 09/13] [IMP] account_ecotax_sale_tax: pre-commit auto fixes --- account_ecotax_sale_tax/README.rst | 30 ++++++++--------- account_ecotax_sale_tax/pyproject.toml | 3 ++ .../readme/CONTRIBUTORS.md | 2 ++ .../readme/CONTRIBUTORS.rst | 2 -- account_ecotax_sale_tax/readme/DESCRIPTION.md | 3 ++ .../readme/DESCRIPTION.rst | 1 - .../static/description/index.html | 32 ++++++++----------- 7 files changed, 36 insertions(+), 37 deletions(-) create mode 100644 account_ecotax_sale_tax/pyproject.toml create mode 100644 account_ecotax_sale_tax/readme/CONTRIBUTORS.md delete mode 100644 account_ecotax_sale_tax/readme/CONTRIBUTORS.rst create mode 100644 account_ecotax_sale_tax/readme/DESCRIPTION.md delete mode 100644 account_ecotax_sale_tax/readme/DESCRIPTION.rst diff --git a/account_ecotax_sale_tax/README.rst b/account_ecotax_sale_tax/README.rst index 628cd57d5..d48b2dcf6 100644 --- a/account_ecotax_sale_tax/README.rst +++ b/account_ecotax_sale_tax/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ================================= sale Ecotax Management (as a tax) ================================= @@ -17,22 +13,24 @@ sale Ecotax Management (as a tax) .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status :alt: Beta -.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--fiscal--rule-lightgray.png?logo=github - :target: https://github.com/OCA/account-fiscal-rule/tree/16.0/account_ecotax_sale_tax + :target: https://github.com/OCA/account-fiscal-rule/tree/17.0/account_ecotax_sale_tax :alt: OCA/account-fiscal-rule .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-fiscal-rule-16-0/account-fiscal-rule-16-0-account_ecotax_sale_tax + :target: https://translation.odoo-community.org/projects/account-fiscal-rule-17-0/account-fiscal-rule-17-0-account_ecotax_sale_tax :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/account-fiscal-rule&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-fiscal-rule&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module is an extension of the module *l10n_fr_ecotax* for sale orders. Please refer to the README of the module *l10n_fr_ecotax* for more info about ecotax management. +This module is an extension of the module *l10n_fr_ecotax* for sale +orders. Please refer to the README of the module *l10n_fr_ecotax* for +more info about ecotax management. **Table of contents** @@ -45,7 +43,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -53,18 +51,18 @@ Credits ======= Authors -~~~~~~~ +------- * Akretion Contributors -~~~~~~~~~~~~ +------------ -* Mourad EL HADJ MIMOUNE -* Florian DA COSTA +- Mourad EL HADJ MIMOUNE +- Florian DA COSTA Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -87,6 +85,6 @@ Current `maintainers `__: |maintainer-mourad-ehm| |maintainer-florian-dacosta| -This module is part of the `OCA/account-fiscal-rule `_ project on GitHub. +This module is part of the `OCA/account-fiscal-rule `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_ecotax_sale_tax/pyproject.toml b/account_ecotax_sale_tax/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/account_ecotax_sale_tax/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/account_ecotax_sale_tax/readme/CONTRIBUTORS.md b/account_ecotax_sale_tax/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..18d13881d --- /dev/null +++ b/account_ecotax_sale_tax/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +- Mourad EL HADJ MIMOUNE \<\> +- Florian DA COSTA \<\> diff --git a/account_ecotax_sale_tax/readme/CONTRIBUTORS.rst b/account_ecotax_sale_tax/readme/CONTRIBUTORS.rst deleted file mode 100644 index b38466d33..000000000 --- a/account_ecotax_sale_tax/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,2 +0,0 @@ -* Mourad EL HADJ MIMOUNE -* Florian DA COSTA diff --git a/account_ecotax_sale_tax/readme/DESCRIPTION.md b/account_ecotax_sale_tax/readme/DESCRIPTION.md new file mode 100644 index 000000000..6f53d1678 --- /dev/null +++ b/account_ecotax_sale_tax/readme/DESCRIPTION.md @@ -0,0 +1,3 @@ +This module is an extension of the module *l10n_fr_ecotax* for sale +orders. Please refer to the README of the module *l10n_fr_ecotax* for +more info about ecotax management. diff --git a/account_ecotax_sale_tax/readme/DESCRIPTION.rst b/account_ecotax_sale_tax/readme/DESCRIPTION.rst deleted file mode 100644 index ad5cc0194..000000000 --- a/account_ecotax_sale_tax/readme/DESCRIPTION.rst +++ /dev/null @@ -1 +0,0 @@ -This module is an extension of the module *l10n_fr_ecotax* for sale orders. Please refer to the README of the module *l10n_fr_ecotax* for more info about ecotax management. diff --git a/account_ecotax_sale_tax/static/description/index.html b/account_ecotax_sale_tax/static/description/index.html index b8e7979f6..2c46d9a99 100644 --- a/account_ecotax_sale_tax/static/description/index.html +++ b/account_ecotax_sale_tax/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +sale Ecotax Management (as a tax) -
+
+

sale Ecotax Management (as a tax)

- - -Odoo Community Association - -
-

sale Ecotax Management (as a tax)

-

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

-

This module is an extension of the module l10n_fr_ecotax for sale orders. Please refer to the README of the module l10n_fr_ecotax for more info about ecotax management.

+

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

+

This module is an extension of the module l10n_fr_ecotax for sale +orders. Please refer to the README of the module l10n_fr_ecotax for +more info about ecotax management.

Table of contents

    @@ -389,30 +386,30 @@

    sale Ecotax Management (as a tax)

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

-

Credits

+

Credits

-

Authors

+

Authors

  • Akretion
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -422,11 +419,10 @@

Maintainers

promote its widespread use.

Current maintainers:

mourad-ehm florian-dacosta

-

This module is part of the OCA/account-fiscal-rule project on GitHub.

+

This module is part of the OCA/account-fiscal-rule project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

-
From d087433e7ae282cc343ed339157ce8972a12b9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sun, 30 Nov 2025 05:13:38 +0000 Subject: [PATCH 10/13] [MIG] account_ecotax_sale_tax: Migration to 17.0 --- account_ecotax_sale_tax/__manifest__.py | 2 +- account_ecotax_sale_tax/tests/test_sale_ecotax.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/account_ecotax_sale_tax/__manifest__.py b/account_ecotax_sale_tax/__manifest__.py index 1ddae635c..f0faf28bb 100644 --- a/account_ecotax_sale_tax/__manifest__.py +++ b/account_ecotax_sale_tax/__manifest__.py @@ -4,7 +4,7 @@ { "name": "sale Ecotax Management (as a tax)", "summary": "Sale Ecotaxe managed as a tax", - "version": "16.0.2.0.1", + "version": "17.0.2.0.1", "author": "Akretion,Odoo Community Association (OCA)", "maintainers": ["mourad-ehm", "florian-dacosta"], "website": "https://github.com/OCA/account-fiscal-rule", diff --git a/account_ecotax_sale_tax/tests/test_sale_ecotax.py b/account_ecotax_sale_tax/tests/test_sale_ecotax.py index 2998ee987..3c41a45be 100644 --- a/account_ecotax_sale_tax/tests/test_sale_ecotax.py +++ b/account_ecotax_sale_tax/tests/test_sale_ecotax.py @@ -3,6 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import Command from odoo.tests.common import Form from odoo.addons.account_ecotax_sale.tests.test_sale_ecotax import TestsaleEcotaxCommon @@ -13,6 +14,9 @@ class TestsaleEcotaxTax(TestInvoiceEcotaxTaxComon, TestsaleEcotaxCommon): @classmethod def setUpClass(cls): super().setUpClass() + # Remove default taxes to match test expectations (which expect no VAT) + cls.product_a.taxes_id = [Command.clear()] + cls.product_b.taxes_id = [Command.clear()] def test_01_classification_weight_based_ecotax(self): """Tests with weight based ecotaxs""" From 8013dc99e7f09ecb04ff8999656b96cb05d64eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 1 Dec 2025 15:15:08 +0000 Subject: [PATCH 11/13] [IMP] account_ecotax_sale_tax: pre-commit auto fixes --- account_ecotax_sale_tax/README.rst | 10 +++++----- account_ecotax_sale_tax/static/description/index.html | 6 +++--- account_ecotax_sale_tax/views/sale_view.xml | 2 -- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/account_ecotax_sale_tax/README.rst b/account_ecotax_sale_tax/README.rst index d48b2dcf6..9b1c72805 100644 --- a/account_ecotax_sale_tax/README.rst +++ b/account_ecotax_sale_tax/README.rst @@ -17,13 +17,13 @@ sale Ecotax Management (as a tax) :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--fiscal--rule-lightgray.png?logo=github - :target: https://github.com/OCA/account-fiscal-rule/tree/17.0/account_ecotax_sale_tax + :target: https://github.com/OCA/account-fiscal-rule/tree/18.0/account_ecotax_sale_tax :alt: OCA/account-fiscal-rule .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-fiscal-rule-17-0/account-fiscal-rule-17-0-account_ecotax_sale_tax + :target: https://translation.odoo-community.org/projects/account-fiscal-rule-18-0/account-fiscal-rule-18-0-account_ecotax_sale_tax :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/account-fiscal-rule&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-fiscal-rule&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -85,6 +85,6 @@ Current `maintainers `__: |maintainer-mourad-ehm| |maintainer-florian-dacosta| -This module is part of the `OCA/account-fiscal-rule `_ project on GitHub. +This module is part of the `OCA/account-fiscal-rule `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_ecotax_sale_tax/static/description/index.html b/account_ecotax_sale_tax/static/description/index.html index 2c46d9a99..55bc5dd05 100644 --- a/account_ecotax_sale_tax/static/description/index.html +++ b/account_ecotax_sale_tax/static/description/index.html @@ -369,7 +369,7 @@

sale Ecotax Management (as a tax)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:1bb5569058cef23c079b4a18bfe9e0ab55d3dff17a0eadb2ff8953f5850d14dd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/account-fiscal-rule Translate me on Weblate Try me on Runboat

This module is an extension of the module l10n_fr_ecotax for sale orders. Please refer to the README of the module l10n_fr_ecotax for more info about ecotax management.

@@ -390,7 +390,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -419,7 +419,7 @@

Maintainers

promote its widespread use.

Current maintainers:

mourad-ehm florian-dacosta

-

This module is part of the OCA/account-fiscal-rule project on GitHub.

+

This module is part of the OCA/account-fiscal-rule project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/account_ecotax_sale_tax/views/sale_view.xml b/account_ecotax_sale_tax/views/sale_view.xml index 063e95cd1..7de709e25 100644 --- a/account_ecotax_sale_tax/views/sale_view.xml +++ b/account_ecotax_sale_tax/views/sale_view.xml @@ -1,6 +1,5 @@ - sale.order.line @@ -10,5 +9,4 @@ - From 853a46fab4a566dd9dd5833df5f213c06dabb1fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 1 Dec 2025 15:16:31 +0000 Subject: [PATCH 12/13] [MIG] account_ecotax_sale_tax: Migration to 18.0 --- account_ecotax_sale_tax/__manifest__.py | 2 +- account_ecotax_sale_tax/tests/test_sale_ecotax.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/account_ecotax_sale_tax/__manifest__.py b/account_ecotax_sale_tax/__manifest__.py index f0faf28bb..b2fb43abf 100644 --- a/account_ecotax_sale_tax/__manifest__.py +++ b/account_ecotax_sale_tax/__manifest__.py @@ -4,7 +4,7 @@ { "name": "sale Ecotax Management (as a tax)", "summary": "Sale Ecotaxe managed as a tax", - "version": "17.0.2.0.1", + "version": "18.0.1.0.0", "author": "Akretion,Odoo Community Association (OCA)", "maintainers": ["mourad-ehm", "florian-dacosta"], "website": "https://github.com/OCA/account-fiscal-rule", diff --git a/account_ecotax_sale_tax/tests/test_sale_ecotax.py b/account_ecotax_sale_tax/tests/test_sale_ecotax.py index 3c41a45be..2d508d239 100644 --- a/account_ecotax_sale_tax/tests/test_sale_ecotax.py +++ b/account_ecotax_sale_tax/tests/test_sale_ecotax.py @@ -4,7 +4,7 @@ from odoo import Command -from odoo.tests.common import Form +from odoo.tests import Form from odoo.addons.account_ecotax_sale.tests.test_sale_ecotax import TestsaleEcotaxCommon from odoo.addons.account_ecotax_tax.tests.test_ecotax import TestInvoiceEcotaxTaxComon From a93140ac099c0bafeae87b2218896e3497832490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 1 Dec 2025 15:18:23 +0000 Subject: [PATCH 13/13] [DON'T MERGE] --- test-requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test-requirements.txt diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 000000000..3f07e09a3 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +odoo-addon-account_ecotax_sale @ git+https://github.com/OCA/account-fiscal-rule.git@refs/pull/535/head#subdirectory=account_ecotax_sale +odoo-addon-account_avatax_sale_oca @ git+https://github.com/OCA/account-fiscal-rule.git@refs/pull/535/head#subdirectory=account_avatax_sale_oca +odoo-addon-account_ecotax_tax @ git+https://github.com/OCA/account-fiscal-rule.git@refs/pull/562/head#subdirectory=account_ecotax_tax