Ecotax Management

account_ecotax
REPOSITORY
REPOSITORYOCA/account-fiscal-rule
GIT
GIThttps://github.com/OCA/account-fiscal-rule.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-fiscal-rule/tree/18.0/account_ecotax
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYLocalization/Account Taxes
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSFlorian da Costa, David Beal, Weblate, OCA-git-bot, Mourad, oca-ci, Francois Poizat
WEBSITE
WEBSITEhttps://github.com/OCA/account-fiscal-rule
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds ecotax amount on invoice line. furthermore, a total
ecotax is added at the footer of each document.

To make easy ecotaxe management and to factor the data, ecotaxes are set
on products via ECOTAXE classifications. ECOTAXE classification can
either be a fixed or weight based ecotax.

A product can have one or serveral ecotax classifications. For example,
wooden window blinds equipped with electric motor can have ecotax for
wood and ecotax for electric motor.

This module has some limits : - The ecotax amount is always included in
the price of the product. - The ecotax amount is not isolated in an
specific accounting account but is included in the product income
account.

If one of these limits is an issue, you could install the submodule
account_ecotax_tax. This second module lets you manage the ecotax as a
tax, so you can configure if you want it to be included or excluded of
product price and also configuring an accounting account to isolate it.
The main consequence of this approach is that the ecotax won't be
considered in the turnover, since it is considered as a tax.

This module version add the possibility to manage several ecotax
classifications by product. A migration script is necessary to update
from previous versions.

There is the main change to manage in migration script:

renamed field model old field new field account.move.line
unit_ecotaxe_amount ecotaxe_amount_unit product.template
manual_fixed_ecotaxe force_ecotaxe_amount

changed fields model old field new field product.template
ecotaxe_classification_id ecotaxe_classification_ids

added fields model new field account.move.line ecotaxe_line_ids
product.template ecotaxe_line_product_ids

Code Analysis

Views touched (21)
XML IDNameModelTypeStatus
document_tax_totals document_tax_totals ir.ui.view qweb Inherits account.document_tax_totals
ecotax_category_form account.ecotax.category form New
ecotax_category_search account.ecotax.category search New
ecotax_category_tree account.ecotax.category list New
ecotax_classification_form account.ecotax.classification form New
ecotax_classification_search account.ecotax.classification search New
ecotax_classification_tree account.ecotax.classification list New
ecotax_collector_form ecotax.collector form New
ecotax_collector_search ecotax.collector search New
ecotax_collector_tree ecotax.collector list New
ecotax_sector_form ecotax.sector form New
ecotax_sector_search ecotax.sector search New
ecotax_sector_tree ecotax.sector list New
product_normal_form_view product.product xpath Inherits product.product_normal_form_view
product_search_form_view product.product filter Inherits product.product_search_form_view
product_template_form_view ecotax.base.product.template.form product.template group Inherits account.product_template_form_view
product_template_search_view product.template xpath Inherits product.product_template_search_view
product_variant_easy_edit_view product.product group Inherits product.product_variant_easy_edit_view
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
view_move_form_inherit account.move xpath Inherits account.view_move_form
view_move_line_ecotax_form account.move.line.ecotax.form account.move.line form New
Models touched (11)

New fields (4)
  • active Boolean
    default=True
  • code Char
    required=True
  • description Char
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (14)
  • active Boolean
    default=True
  • categ_id Many2one → account.ecotax.category
    comodel_name='account.ecotax.category' string='Category'
  • code Char
  • collector_id Many2one → ecotax.collector
    comodel_name='ecotax.collector' string='Ecotax collector'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> help='Specify a company if you want to define this Ecotax Classification only for specific company. Otherwise, this Fiscal Classification will be available for all companies.'
  • default_fixed_ecotax Float
    compute='_compute_ecotax_vals' digits='Ecotax' help='Default fixed ecotax amount.' readonly=False store=True
  • ecotax_coef Float
    compute='_compute_ecotax_vals' digits='Ecotax' readonly=False store=True
  • ecotax_type Selection
    help='If ecotax is weight based,the ecotax coef must take into account\nthe weight unit of measure (kg by default)' required=True args: [('fixed', 'Fixed'), ('weight_based', 'Weight based')]
  • intrastat_code Char
  • name Char
    required=True
  • product_status Selection
    required=True args: [('M', 'Domestic'), ('P', 'Professional')]
  • scale_code Char
  • sector_id Many2one → ecotax.sector
    comodel_name='ecotax.sector' string='Ecotax sector'
  • supplier_status Selection
    help='MAN ==> Manufacturer: is locally established in the country, and manufactures goods which are subject to ecotaxes\nunder their own name and brand, or designs such goods, subcontracts the manufacturing and then sells them under their own name and brand\nRES ==> Reseller, under their own brand: is locally established in the country, and sells under their own name or brand goods subject to ecotax manufactured by others\nINT ==> Introducer: is locally established and sells on the local market goods subject to ecotax coming from other countries of the European Union\nIMP ==> Importer: is established in France, and sells on the local market goods subject to ecotax coming from countries outsidethe European Union\nREM ==> Remote vendor: is established in another country of the European Union or outside the EU, and remotely sells good subject to ecotaxes to customers in the country' required=True args: [('MAN', 'Manufacturer'), ('RES', 'Reseller, under their own brand'), ('INT', 'Introducer'), ('IMP', 'Importer'), ('REM', 'Remote vendor')]
Public methods (0)

No public methods.

New fields (1)
  • amount_ecotax Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Included Ecotax'
Public methods (0)

No public methods.

New fields (3)
  • ecotax_amount_unit Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Ecotax Unit'
  • ecotax_line_ids One2many → account.move.line.ecotax
    compute='_compute_ecotax_line_ids' copy=True readonly=False store=True string='Ecotax Lines' args: 'account.move.line.ecotax', 'account_move_line_id'
  • subtotal_ecotax Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Ecotax'
Public methods (1)
  • edit_ecotax_lines(self)

New fields (4)
  • account_move_line_id Many2one → account.move.line
    auto_join=True comodel_name='account.move.line' index=True ondelete='cascade' readonly=True required=True string='Journal Item'
  • currency_id Many2one
    readonly=True related='account_move_line_id.currency_id' store=True
  • product_id Many2one → product.product
    readonly=True related='account_move_line_id.product_id' store=True args: 'product.product'
  • quantity Float
    readonly=True related='account_move_line_id.quantity' store=True
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • name Char
    required=True
  • partner_id Many2one → res.partner
    required=False args: 'res.partner'
Public methods (0)

No public methods.

New fields (7)
  • amount_total Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount total computed from Classification or forced ecotax amount' store=True
  • amount_unit Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed from Classification or Manual ecotax' store=True
  • classification_id Many2one → account.ecotax.classification
    ondelete='restrict' args: 'account.ecotax.classification'
  • currency_id Many2one → res.currency
    args: 'res.currency'
  • force_amount_unit Float
    digits='Ecotax' help='Force ecotax.\nAllow to add a subtitle to the default Ecotax Classification'
  • product_id Many2one → product.product
    readonly=True args: 'product.product'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
Public methods (0)

No public methods.

New fields (7)
  • amount Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed form Classification or forced ecotax amount' store=True
  • classification_id Many2one → account.ecotax.classification
    args: 'account.ecotax.classification'
  • currency_id Many2one
    readonly=True related='product_tmpl_id.currency_id'
  • display_name Char
    compute='_compute_display_name'
  • force_amount Float
    digits='Ecotax' help='Force ecotax amount.\nAllow to substitute default Ecotax Classification'
  • product_id Many2one → product.product
    readonly=True args: 'product.product'
  • product_tmpl_id Many2one → product.template
    readonly=True string='Product Template' args: 'product.template'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • description Char
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (5)
  • additional_ecotax_line_product_ids One2many → ecotax.line.product
    copy=True domain="[('id', 'not in', ecotax_line_product_ids)]" string='Additional Ecotax Lines' args: 'ecotax.line.product', 'product_id'
  • all_ecotax_line_product_ids One2many → ecotax.line.product
    compute='_compute_all_ecotax_line_product_ids' help='Contain all ecotaxs classification defined in product templateand the additionnal.\necotaxs defined in product variant. For more detailssee the product variant accounting tab' search='_search_all_ecotax_line_product_ids' string='All Ecotax Lines' args: 'ecotax.line.product'
  • ecotax_amount Float
    compute='_compute_product_ecotax' digits='Ecotax' help='Ecotax Amount computed form all ecotax line classification' store=True
  • fixed_ecotax Float
    compute='_compute_product_ecotax' help='Fixed ecotax of the Ecotax Classification' store=True
  • weight_based_ecotax Float
    compute='_compute_product_ecotax' help='Ecotax value :\nproduct weight * ecotax coef of Ecotax Classification' store=True
Public methods (0)

No public methods.

New fields (4)
  • ecotax_amount Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed from Classification' store=True
  • ecotax_line_product_ids One2many → ecotax.line.product
    copy=True string='Ecotax Lines' args: 'ecotax.line.product', 'product_tmpl_id'
  • fixed_ecotax Float
    compute='_compute_ecotax' help='Fixed ecotax of the Ecotax Classification' store=True
  • weight_based_ecotax Float
    compute='_compute_ecotax' help='Ecotax value :\nproduct weight * ecotax coef of Ecotax Classification' store=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-fiscal-rule
GIT
GIThttps://github.com/OCA/account-fiscal-rule.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-fiscal-rule/tree/17.0/account_ecotax
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYLocalization/Account Taxes
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSRaphaël Valyi, GitHub, Florian da Costa, Weblate, OCA-git-bot, Mourad, SilvioC2C, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-fiscal-rule
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:19:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds ecotax amount on invoice line. furthermore, a total
ecotax is added at the footer of each document.

To make easy ecotaxe management and to factor the data, ecotaxes are set
on products via ECOTAXE classifications. ECOTAXE classification can
either be a fixed or weight based ecotax.

A product can have one or serveral ecotax classifications. For example,
wooden window blinds equipped with electric motor can have ecotax for
wood and ecotax for electric motor.

This module has some limits : - The ecotax amount is always included in
the price of the product. - The ecotax amount is not isolated in an
specific accounting account but is included in the product income
account.

If one of these limits is an issue, you could install the submodule
account_ecotax_tax. This second module lets you manage the ecotax as a
tax, so you can configure if you want it to be included or excluded of
product price and also configuring an accounting account to isolate it.
The main consequence of this approach is that the ecotax won't be
considered in the turnover, since it is considered as a tax.

This module version add the possibility to manage several ecotax
classifications by product. A migration script is necessary to update
from previous versions.

There is the main change to manage in migration script:

renamed field model old field new field account.move.line
unit_ecotaxe_amount ecotaxe_amount_unit product.template
manual_fixed_ecotaxe force_ecotaxe_amount

changed fields model old field new field product.template
ecotaxe_classification_id ecotaxe_classification_ids

added fields model new field account.move.line ecotaxe_line_ids
product.template ecotaxe_line_product_ids

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
document_tax_totals document_tax_totals ir.ui.view qweb Inherits account.document_tax_totals
ecotax_category_form account.ecotax.category form New
ecotax_category_search account.ecotax.category search New
ecotax_category_tree account.ecotax.category tree New
ecotax_classification_form account.ecotax.classification form New
ecotax_classification_search account.ecotax.classification search New
ecotax_classification_tree account.ecotax.classification tree New
ecotax_collector_form ecotax.collector form New
ecotax_collector_search ecotax.collector search New
ecotax_collector_tree ecotax.collector tree New
ecotax_sector_form ecotax.sector form New
ecotax_sector_search ecotax.sector search New
ecotax_sector_tree ecotax.sector tree New
product_normal_form_view usability.product.product.form product.product xpath Inherits product.product_normal_form_view
product_template_form_view ecotax.base.product.template.form product.template group Inherits account.product_template_form_view
product_variant_easy_edit_view product.product group Inherits product.product_variant_easy_edit_view
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
view_move_form_inherit account.move xpath Inherits account.view_move_form
view_move_line_ecotax_form account.move.line.ecotax.form account.move.line form New
Models touched (11)

New fields (4)
  • active Boolean
    default=True
  • code Char
    required=True
  • description Char
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (14)
  • active Boolean
    default=True
  • categ_id Many2one → account.ecotax.category
    comodel_name='account.ecotax.category' string='Category'
  • code Char
  • collector_id Many2one → ecotax.collector
    comodel_name='ecotax.collector' string='Ecotax collector'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> help='Specify a company if you want to define this Ecotax Classification only for specific company. Otherwise, this Fiscal Classification will be available for all companies.'
  • default_fixed_ecotax Float
    compute='_compute_ecotax_vals' digits='Ecotax' help='Default fixed ecotax amount.' readonly=False store=True
  • ecotax_coef Float
    compute='_compute_ecotax_vals' digits='Ecotax' readonly=False store=True
  • ecotax_type Selection
    help='If ecotax is weight based,the ecotax coef must take into account\nthe weight unit of measure (kg by default)' required=True args: [('fixed', 'Fixed'), ('weight_based', 'Weight based')]
  • intrastat_code Char
  • name Char
    required=True
  • product_status Selection
    required=True args: [('M', 'Domestic'), ('P', 'Professional')]
  • scale_code Char
  • sector_id Many2one → ecotax.sector
    comodel_name='ecotax.sector' string='Ecotax sector'
  • supplier_status Selection
    help='MAN ==> Manufacturer: is locally established in the country, and manufactures goods which are subject to ecotaxes\nunder their own name and brand, or designs such goods, subcontracts the manufacturing and then sells them under their own name and brand\nRES ==> Reseller, under their own brand: is locally established in the country, and sells under their own name or brand goods subject to ecotax manufactured by others\nINT ==> Introducer: is locally established and sells on the local market goods subject to ecotax coming from other countries of the European Union\nIMP ==> Importer: is established in France, and sells on the local market goods subject to ecotax coming from countries outsidethe European Union\nREM ==> Remote vendor: is established in another country of the European Union or outside the EU, and remotely sells good subject to ecotaxes to customers in the country' required=True args: [('MAN', 'Manufacturer'), ('RES', 'Reseller, under their own brand'), ('INT', 'Introducer'), ('IMP', 'Importer'), ('REM', 'Remote vendor')]
Public methods (0)

No public methods.

New fields (1)
  • amount_ecotax Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Included Ecotax'
Public methods (0)

No public methods.

New fields (3)
  • ecotax_amount_unit Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Ecotax Unit'
  • ecotax_line_ids One2many → account.move.line.ecotax
    compute='_compute_ecotax_line_ids' copy=True readonly=False store=True string='Ecotax Lines' args: 'account.move.line.ecotax', 'account_move_line_id'
  • subtotal_ecotax Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Ecotax'
Public methods (1)
  • edit_ecotax_lines(self)

New fields (4)
  • account_move_line_id Many2one → account.move.line
    auto_join=True comodel_name='account.move.line' index=True ondelete='cascade' readonly=True required=True string='Journal Item'
  • currency_id Many2one
    readonly=True related='account_move_line_id.currency_id' store=True
  • product_id Many2one → product.product
    readonly=True related='account_move_line_id.product_id' store=True args: 'product.product'
  • quantity Float
    readonly=True related='account_move_line_id.quantity' store=True
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • name Char
    required=True
  • partner_id Many2one → res.partner
    required=False args: 'res.partner'
Public methods (0)

No public methods.

New fields (7)
  • amount_total Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount total computed from Classification or forced ecotax amount' store=True
  • amount_unit Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed from Classification or Manual ecotax' store=True
  • classification_id Many2one → account.ecotax.classification
    ondelete='restrict' args: 'account.ecotax.classification'
  • currency_id Many2one → res.currency
    args: 'res.currency'
  • force_amount_unit Float
    digits='Ecotax' help='Force ecotax.\nAllow to add a subtitle to the default Ecotax Classification'
  • product_id Many2one → product.product
    readonly=True args: 'product.product'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
Public methods (0)

No public methods.

New fields (7)
  • amount Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed form Classification or forced ecotax amount' store=True
  • classification_id Many2one → account.ecotax.classification
    args: 'account.ecotax.classification'
  • currency_id Many2one
    readonly=True related='product_tmpl_id.currency_id'
  • display_name Char
    compute='_compute_display_name'
  • force_amount Float
    digits='Ecotax' help='Force ecotax amount.\nAllow to substitute default Ecotax Classification'
  • product_id Many2one → product.product
    readonly=True args: 'product.product'
  • product_tmpl_id Many2one → product.template
    readonly=True string='Product Template' args: 'product.template'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • description Char
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (5)
  • additional_ecotax_line_product_ids One2many → ecotax.line.product
    copy=True domain="[('id', 'not in', ecotax_line_product_ids)]" string='Additional Ecotax Lines' args: 'ecotax.line.product', 'product_id'
  • all_ecotax_line_product_ids One2many → ecotax.line.product
    compute='_compute_all_ecotax_line_product_ids' help='Contain all ecotaxs classification defined in product templateand the additionnal.\necotaxs defined in product variant. For more detailssee the product variant accounting tab' search='_search_all_ecotax_line_product_ids' string='All Ecotax Lines' args: 'ecotax.line.product'
  • ecotax_amount Float
    compute='_compute_product_ecotax' digits='Ecotax' help='Ecotax Amount computed form all ecotax line classification' store=True
  • fixed_ecotax Float
    compute='_compute_product_ecotax' help='Fixed ecotax of the Ecotax Classification' store=True
  • weight_based_ecotax Float
    compute='_compute_product_ecotax' help='Ecotax value :\nproduct weight * ecotax coef of Ecotax Classification' store=True
Public methods (0)

No public methods.

New fields (4)
  • ecotax_amount Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed from Classification' store=True
  • ecotax_line_product_ids One2many → ecotax.line.product
    copy=True string='Ecotax Lines' args: 'ecotax.line.product', 'product_tmpl_id'
  • fixed_ecotax Float
    compute='_compute_ecotax' help='Fixed ecotax of the Ecotax Classification' store=True
  • weight_based_ecotax Float
    compute='_compute_ecotax' help='Ecotax value :\nproduct weight * ecotax coef of Ecotax Classification' store=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/account-fiscal-rule
GIT
GIThttps://github.com/OCA/account-fiscal-rule.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/account-fiscal-rule/tree/16.0/account_ecotax
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYLocalization/Account Taxes
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSFlorian da Costa, Weblate, OCA-git-bot, Mourad, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-fiscal-rule
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:43
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (19)
XML IDNameModelTypeStatus
document_tax_totals document_tax_totals ir.ui.view qweb Inherits account.document_tax_totals
ecotax_category_form account.ecotax.category form New
ecotax_category_search account.ecotax.category search New
ecotax_category_tree account.ecotax.category tree New
ecotax_classification_form account.ecotax.classification form New
ecotax_classification_search account.ecotax.classification search New
ecotax_classification_tree account.ecotax.classification tree New
ecotax_collector_form ecotax.collector form New
ecotax_collector_search ecotax.collector search New
ecotax_collector_tree ecotax.collector tree New
ecotax_sector_form ecotax.sector form New
ecotax_sector_search ecotax.sector search New
ecotax_sector_tree ecotax.sector tree New
product_normal_form_view usability.product.product.form product.product xpath Inherits product.product_normal_form_view
product_template_form_view ecotax.base.product.template.form product.template group Inherits account.product_template_form_view
product_variant_easy_edit_view product.product group Inherits product.product_variant_easy_edit_view
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
view_move_form_inherit account.move xpath Inherits account.view_move_form
view_move_line_ecotax_form account.move.line.ecotax.form account.move.line form New
Models touched (11)

New fields (4)
  • active Boolean
    default=True
  • code Char
    required=True
  • description Char
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (15)
  • active Boolean
    default=True
  • categ_id Many2one → account.ecotax.category
    comodel_name='account.ecotax.category' string='Category'
  • code Char
  • collector_id Many2one → ecotax.collector
    comodel_name='ecotax.collector' string='Ecotax collector'
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> help='Specify a company if you want to define this Ecotax Classification only for specific company. Otherwise, this Fiscal Classification will be available for all companies.'
  • country_ids Many2many → res.country
    help='Ecotax will be applied when delivered in the listed countries (or all countries if empty)' string='Countries' args: 'res.country'
  • default_fixed_ecotax Float
    compute='_compute_ecotax_vals' digits='Ecotax' help='Default fixed ecotax amount.' readonly=False store=True
  • ecotax_coef Float
    compute='_compute_ecotax_vals' digits='Ecotax' readonly=False store=True
  • ecotax_type Selection
    help='If ecotax is weight based,the ecotax coef must take into account\nthe weight unit of measure (kg by default)' required=True args: [('fixed', 'Fixed'), ('weight_based', 'Weight based')]
  • intrastat_code Char
  • name Char
    required=True
  • product_status Selection
    required=True args: [('M', 'Menager'), ('P', 'Professionnel')]
  • scale_code Char
  • sector_id Many2one → ecotax.sector
    comodel_name='ecotax.sector' string='Ecotax sector'
  • supplier_status Selection
    help='MAN ==> Manufacturer: is locally established in the country, and manufactures goods which are subject to ecotaxes\nunder their own name and brand, or designs such goods, subcontracts the manufacturing and then sells them under their own name and brand\nRES ==> Reseller, under their own brand: is locally established in the country, and sells under their own name or brand goods subject to ecotax manufactured by others\nINT ==> Introducer: is locally established and sells on the local market goods subject to ecotax coming from other countries of the European Union\nIMP ==> Importer: is established in France, and sells on the local market goods subject to ecotax coming from countries outsidethe European Union\nREM ==> Remote vendor: is established in another country of the European Union or outside the EU, and remotely sells good subject to ecotaxes to customers in the country' required=True args: [('MAN', 'Manufacturer'), ('RES', 'Reseller, under their own brand'), ('INT', 'Introducer'), ('IMP', 'Importer'), ('REM', 'Remote vendor')]
Public methods (0)

No public methods.

New fields (1)
  • amount_ecotax Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Included Ecotax'
Public methods (0)

No public methods.

New fields (3)
  • ecotax_amount_unit Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Ecotax Unit'
  • ecotax_line_ids One2many → account.move.line.ecotax
    compute='_compute_ecotax_line_ids' copy=True readonly=False store=True string='Ecotax lines' args: 'account.move.line.ecotax', 'account_move_line_id'
  • subtotal_ecotax Float
    compute='_compute_ecotax' digits='Ecotax' store=True string='Ecotax'
Public methods (1)
  • edit_ecotax_lines(self)

New fields (4)
  • account_move_line_id Many2one → account.move.line
    auto_join=True comodel_name='account.move.line' index=True ondelete='cascade' readonly=True required=True string='Account move line'
  • currency_id Many2one
    readonly=True related='account_move_line_id.currency_id' store=True
  • product_id Many2one → product.product
    readonly=True related='account_move_line_id.product_id' store=True args: 'product.product'
  • quantity Float
    readonly=True related='account_move_line_id.quantity' store=True
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • name Char
    required=True
  • partner_id Many2one → res.partner
    required=False string='Partner' args: 'res.partner'
Public methods (0)

No public methods.

New fields (7)
  • amount_total Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount total computed from Classification or forced ecotax amount' store=True
  • amount_unit Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed from Classification or Manual ecotax' store=True
  • classification_id Many2one → account.ecotax.classification
    ondelete='restrict' string='Classification' args: 'account.ecotax.classification'
  • currency_id Many2one → res.currency
    string='Currency' args: 'res.currency'
  • force_amount_unit Float
    digits='Ecotax' help='Force ecotax.\nAllow to add a subtitle to the default Ecotax Classification'
  • product_id Many2one → product.product
    readonly=True string='Product' args: 'product.product'
  • quantity Float
    digits='Product Unit of Measure' readonly=True
Public methods (0)

No public methods.

New fields (8)
  • amount Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed form Classification or forced ecotax amount' store=True
  • classification_id Many2one → account.ecotax.classification
    string='Classification' args: 'account.ecotax.classification'
  • country_ids Many2many → res.country
    related='classification_id.country_ids' string='Countries' args: 'res.country'
  • currency_id Many2one
    readonly=True related='product_tmpl_id.currency_id'
  • display_name Char
    compute='_compute_display_name'
  • force_amount Float
    digits='Ecotax' help='Force ecotax amount.\nAllow to substitute default Ecotax Classification'
  • product_id Many2one → product.product
    readonly=True string='Product' args: 'product.product'
  • product_tmpl_id Many2one → product.template
    readonly=True string='Product Template' args: 'product.template'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • description Char
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (5)
  • additional_ecotax_line_product_ids One2many → ecotax.line.product
    copy=True domain="[('id', 'not in', ecotax_line_product_ids)]" string='Additional ecotax lines' args: 'ecotax.line.product', 'product_id'
  • all_ecotax_line_product_ids One2many → ecotax.line.product
    compute='_compute_all_ecotax_line_product_ids' help='Contain all ecotaxs classification defined in product templateand the additionnal.\necotaxs defined in product variant. For more detailssee the product variant accounting tab' search='_search_all_ecotax_line_product_ids' string='All ecotax lines' args: 'ecotax.line.product'
  • ecotax_amount Float
    compute='_compute_product_ecotax' digits='Ecotax' help='Ecotax Amount computed form all ecotax line classification' store=True
  • fixed_ecotax Float
    compute='_compute_product_ecotax' help='Fixed ecotax of the Ecotax Classification' store=True
  • weight_based_ecotax Float
    compute='_compute_product_ecotax' help='Ecotax value :\nproduct weight * ecotax coef of Ecotax Classification' store=True
Public methods (0)

No public methods.

New fields (4)
  • ecotax_amount Float
    compute='_compute_ecotax' digits='Ecotax' help='Ecotax Amount computed from Classification' store=True
  • ecotax_line_product_ids One2many → ecotax.line.product
    copy=True string='Ecotax lines' args: 'ecotax.line.product', 'product_tmpl_id'
  • fixed_ecotax Float
    compute='_compute_ecotax' help='Fixed ecotax of the Ecotax Classification' store=True
  • weight_based_ecotax Float
    compute='_compute_ecotax' help='Ecotax value :\nproduct weight * ecotax coef of Ecotax Classification' store=True
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/account-fiscal-rule
PULL REQUEST
PULL REQUEST[19.0][MIG] account_ecotax: Migration to 19.0 (#589)