Avatax Exemptions Base

account_avatax_exemption_base
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_avatax_exemption_base
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Sodexis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Sodexis
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Don Kendall, oca-ci, kobros-tech
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:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account
    - onboarding
    - product
    - 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 is a component of the Avatax Exemption Integration with odoo
app and it is used as an anchor module for account_avatax_exemption to
add support for odoo enterprise module such as sign and document
extension.

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
exemption_form_view res.partner.exemption.form.view res.partner.exemption form New
exemption_reason_type_form_view res.partner.exemption.business.type.form.view res.partner.exemption.business.type form New
exemption_reason_type_tree_view res.partner.exemption.business.type.tree.view res.partner.exemption.business.type list New
exemption_tree_view res.partner.exemption.tree.view res.partner.exemption list New
exemption_type_form_view res.partner.exemption.type.form.view res.partner.exemption.type form New
exemption_type_tree_view res.partner.exemption.type.tree.view res.partner.exemption.type list New
group_of_states_form_view group.of.states.form.view res.partner.group.state form New
group_of_states_tree_view group.of.states.tree.view res.partner.group.state list New
view_country_state_tree res.country.state.inherit res.country.state xpath Inherits base.view_country_state_tree
Models touched (7)

New fields (3)
  • avatax_code Char
    copy=False
  • avatax_name Char
    copy=False
  • avatax_nexus Boolean
    copy=False
Public methods (0)

No public methods.

New fields (2)
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Customer ID'
  • exemption_ids One2many → res.partner.exemption
    string='Avalara Exemptions' args: 'res.partner.exemption', 'partner_id'
Public methods (0)

No public methods.

New fields (10)
  • effective_date Date
    default=<expr>
  • exemption_line_ids One2many → res.partner.exemption.line
    args: 'res.partner.exemption.line', 'exemption_id'
  • exemption_number Char
  • exemption_number_type Selection
    default='exemption_number/taxpayer_id' args: [('exemption_number/taxpayer_id', 'Exemption Number/Taxpayer ID'), ('foreign_diplomat_number', 'Foreign Diplomat Number'), ('drivers_license_number', 'Drivers License Number'), ('fein', 'FEIN')]
  • exemption_type Many2one → res.partner.exemption.type
    args: 'res.partner.exemption.type'
  • expiry_date Date
  • group_of_state Many2one
  • partner_id Many2one → res.partner
    index=True required=True args: 'res.partner'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('progress', 'In Progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
  • state_ids Many2many
Public methods (3)
  • onchange_effective_date(self)
    @api.onchange('exemption_type', 'effective_date')
  • onchange_exemption_type(self)
    @api.onchange('exemption_type', 'group_of_state')
  • onchange_state_ids(self)
    @api.onchange('state_ids')

New fields (2)
  • avatax_id Char
    readonly=True required=True
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • add_exemption_number Boolean
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Certificate ID'
  • avatax_status Boolean
    default=True
  • exemption_id Many2one → res.partner.exemption
    required=True args: 'res.partner.exemption'
  • exemption_number Char
  • linked_to_customer Boolean
    readonly=True
  • name Char
    default=<expr> index=True
  • partner_id Many2one
    related='exemption_id.partner_id' store=True
  • state_id Many2one → res.country.state
    args: 'res.country.state'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (5)
  • business_type Many2one → res.partner.exemption.business.type
    string='Activity Type' args: 'res.partner.exemption.business.type'
  • exemption_validity_duration Integer
    default=30 help='Validity duration in days'
  • group_of_state Many2one → res.partner.group.state
    string='Group of States' args: 'res.partner.group.state'
  • name Char
  • state_ids Many2many → res.country.state
    string='States' args: 'res.country.state'
Public methods (1)
  • onchange_group_of_state(self)
    @api.onchange('group_of_state')

New fields (3)
  • country_id Many2one → res.country
    args: 'res.country'
  • name Char
  • state_ids Many2many → res.country.state
    args: 'res.country.state'
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_avatax_exemption_base
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Sodexis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Sodexis
COMMITTERS
COMMITTERSJordi Ballester Alomar, Weblate, OCA-git-bot, oca-ci, kobros-tech, AlexPForgeFlow
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:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - 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 (9)
XML IDNameModelTypeStatus
exemption_form_view res.partner.exemption.form.view res.partner.exemption form New
exemption_reason_type_form_view res.partner.exemption.business.type.form.view res.partner.exemption.business.type form New
exemption_reason_type_tree_view res.partner.exemption.business.type.tree.view res.partner.exemption.business.type tree New
exemption_tree_view res.partner.exemption.tree.view res.partner.exemption tree New
exemption_type_form_view res.partner.exemption.type.form.view res.partner.exemption.type form New
exemption_type_tree_view res.partner.exemption.type.tree.view res.partner.exemption.type tree New
group_of_states_form_view group.of.states.form.view res.partner.group.state form New
group_of_states_tree_view group.of.states.tree.view res.partner.group.state tree New
view_country_state_tree res.country.state.inherit res.country.state xpath Inherits base.view_country_state_tree
Models touched (7)

New fields (3)
  • avatax_code Char
    copy=False
  • avatax_name Char
    copy=False
  • avatax_nexus Boolean
    copy=False
Public methods (0)

No public methods.

New fields (2)
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Customer ID'
  • exemption_ids One2many → res.partner.exemption
    string='Avalara Exemptions' args: 'res.partner.exemption', 'partner_id'
Public methods (0)

No public methods.

New fields (11)
  • business_type Many2one
    readonly=True states={'draft': [('readonly', False)]} string='Activity Type'
  • effective_date Date
    default=<expr> readonly=True states={'draft': [('readonly', False)]}
  • exemption_line_ids One2many → res.partner.exemption.line
    readonly=True states={'draft': [('readonly', False)]} args: 'res.partner.exemption.line', 'exemption_id'
  • exemption_number Char
    readonly=True states={'draft': [('readonly', False)]}
  • exemption_number_type Selection
    default='exemption_number/taxpayer_id' readonly=True states={'draft': [('readonly', False)]} args: [('exemption_number/taxpayer_id', 'Exemption Number/Taxpayer ID'), ('foreign_diplomat_number', 'Foreign Diplomat Number'), ('drivers_license_number', 'Drivers License Number'), ('fein', 'FEIN')]
  • exemption_type Many2one → res.partner.exemption.type
    readonly=True states={'draft': [('readonly', False)]} args: 'res.partner.exemption.type'
  • expiry_date Date
  • group_of_state Many2one
    readonly=True states={'draft': [('readonly', False)]}
  • partner_id Many2one → res.partner
    index=True readonly=True required=True states={'draft': [('readonly', False)]} args: 'res.partner'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('progress', 'In Progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
  • state_ids Many2many
    readonly=True states={'draft': [('readonly', False)]}
Public methods (4)
  • name_get(self)
  • onchange_effective_date(self)
    @api.onchange('exemption_type', 'effective_date')
  • onchange_exemption_type(self)
    @api.onchange('exemption_type', 'group_of_state')
  • onchange_state_ids(self)
    @api.onchange('state_ids')

New fields (2)
  • avatax_id Char
    readonly=True required=True
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • add_exemption_number Boolean
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Certificate ID'
  • avatax_status Boolean
    default=True
  • exemption_id Many2one → res.partner.exemption
    required=True args: 'res.partner.exemption'
  • exemption_number Char
  • linked_to_customer Boolean
    readonly=True
  • name Char
    default=<expr> index=True
  • partner_id Many2one
    related='exemption_id.partner_id' store=True
  • state_id Many2one → res.country.state
    args: 'res.country.state'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (5)
  • business_type Many2one → res.partner.exemption.business.type
    string='Activity Type' args: 'res.partner.exemption.business.type'
  • exemption_validity_duration Integer
    default=30 help='Validity duration in days'
  • group_of_state Many2one → res.partner.group.state
    string='Group of States' args: 'res.partner.group.state'
  • name Char
  • state_ids Many2many → res.country.state
    string='States' args: 'res.country.state'
Public methods (1)
  • onchange_group_of_state(self)
    @api.onchange('group_of_state')

New fields (3)
  • country_id Many2one → res.country
    args: 'res.country'
  • name Char
  • state_ids Many2many → res.country.state
    args: 'res.country.state'
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/15.0/account_avatax_exemption_base
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Sodexis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Sodexis
COMMITTERS
COMMITTERSAaronHForgeFlow, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/account-fiscal-rule
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:32
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - 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 (9)
XML IDNameModelTypeStatus
exemption_form_view res.partner.exemption.form.view res.partner.exemption form New
exemption_reason_type_form_view res.partner.exemption.business.type.form.view res.partner.exemption.business.type form New
exemption_reason_type_tree_view res.partner.exemption.business.type.tree.view res.partner.exemption.business.type tree New
exemption_tree_view res.partner.exemption.tree.view res.partner.exemption tree New
exemption_type_form_view res.partner.exemption.type.form.view res.partner.exemption.type form New
exemption_type_tree_view res.partner.exemption.type.tree.view res.partner.exemption.type tree New
group_of_states_form_view group.of.states.form.view res.partner.group.state form New
group_of_states_tree_view group.of.states.tree.view res.partner.group.state tree New
view_country_state_tree res.country.state.inherit res.country.state xpath Inherits base.view_country_state_tree
Models touched (7)

New fields (3)
  • avatax_code Char
    copy=False
  • avatax_name Char
    copy=False
  • avatax_nexus Boolean
    copy=False
Public methods (0)

No public methods.

New fields (2)
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Customer ID'
  • exemption_ids One2many → res.partner.exemption
    string='Avalara Exemptions' args: 'res.partner.exemption', 'partner_id'
Public methods (0)

No public methods.

New fields (11)
  • business_type Many2one
    readonly=True states={'draft': [('readonly', False)]} string='Activity Type'
  • effective_date Date
    default=<expr> readonly=True states={'draft': [('readonly', False)]}
  • exemption_line_ids One2many → res.partner.exemption.line
    readonly=True states={'draft': [('readonly', False)]} args: 'res.partner.exemption.line', 'exemption_id'
  • exemption_number Char
    readonly=True states={'draft': [('readonly', False)]}
  • exemption_number_type Selection
    default='exemption_number/taxpayer_id' readonly=True states={'draft': [('readonly', False)]} args: [('exemption_number/taxpayer_id', 'Exemption Number/Taxpayer ID'), ('foreign_diplomat_number', 'Foreign Diplomat Number'), ('drivers_license_number', 'Drivers License Number'), ('fein', 'FEIN')]
  • exemption_type Many2one → res.partner.exemption.type
    readonly=True states={'draft': [('readonly', False)]} args: 'res.partner.exemption.type'
  • expiry_date Date
  • group_of_state Many2one
    readonly=True states={'draft': [('readonly', False)]}
  • partner_id Many2one → res.partner
    index=True readonly=True required=True states={'draft': [('readonly', False)]} args: 'res.partner'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('progress', 'In Progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
  • state_ids Many2many
    readonly=True states={'draft': [('readonly', False)]}
Public methods (4)
  • name_get(self)
  • onchange_effective_date(self)
    @api.onchange('exemption_type', 'effective_date')
  • onchange_exemption_type(self)
    @api.onchange('exemption_type', 'group_of_state')
  • onchange_state_ids(self)
    @api.onchange('state_ids')

New fields (2)
  • avatax_id Char
    readonly=True required=True
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • add_exemption_number Boolean
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Certificate ID'
  • avatax_status Boolean
    default=True
  • exemption_id Many2one → res.partner.exemption
    required=True args: 'res.partner.exemption'
  • exemption_number Char
  • linked_to_customer Boolean
    readonly=True
  • name Char
    default=<expr> index=True
  • partner_id Many2one
    related='exemption_id.partner_id' store=True
  • state_id Many2one → res.country.state
    args: 'res.country.state'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (5)
  • business_type Many2one → res.partner.exemption.business.type
    string='Activity Type' args: 'res.partner.exemption.business.type'
  • exemption_validity_duration Integer
    default=30 help='Validity duration in days'
  • group_of_state Many2one → res.partner.group.state
    string='Group of States' args: 'res.partner.group.state'
  • name Char
  • state_ids Many2many → res.country.state
    string='States' args: 'res.country.state'
Public methods (1)
  • onchange_group_of_state(self)
    @api.onchange('group_of_state')

New fields (3)
  • country_id Many2one → res.country
    args: 'res.country'
  • name Char
  • state_ids Many2many → res.country.state
    args: 'res.country.state'
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/14.0/account_avatax_exemption_base
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYSales
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Sodexis
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Sodexis
COMMITTERS
COMMITTERSDaniel Reis, oca-travis, Weblate, OCA-git-bot, Atchuthan, Sodexis, oca-ci, Atchuthan Ubendran
WEBSITE
WEBSITEhttps://github.com/OCA/account-fiscal-rule
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - 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 (9)
XML IDNameModelTypeStatus
exemption_form_view res.partner.exemption.form.view res.partner.exemption form New
exemption_reason_type_form_view res.partner.exemption.business.type.form.view res.partner.exemption.business.type form New
exemption_reason_type_tree_view res.partner.exemption.business.type.tree.view res.partner.exemption.business.type tree New
exemption_tree_view res.partner.exemption.tree.view res.partner.exemption tree New
exemption_type_form_view res.partner.exemption.type.form.view res.partner.exemption.type form New
exemption_type_tree_view res.partner.exemption.type.tree.view res.partner.exemption.type tree New
group_of_states_form_view group.of.states.form.view res.partner.group.state form New
group_of_states_tree_view group.of.states.tree.view res.partner.group.state tree New
view_country_state_tree res.country.state.inherit res.country.state xpath Inherits base.view_country_state_tree
Models touched (7)

New fields (3)
  • avatax_code Char
    copy=False
  • avatax_name Char
    copy=False
  • avatax_nexus Boolean
    copy=False
Public methods (0)

No public methods.

New fields (2)
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Customer ID'
  • exemption_ids One2many → res.partner.exemption
    string='Avalara Exemptions' args: 'res.partner.exemption', 'partner_id'
Public methods (0)

No public methods.

New fields (11)
  • business_type Many2one
    readonly=True states={'draft': [('readonly', False)]} string='Activity Type'
  • effective_date Date
    default=<expr> readonly=True states={'draft': [('readonly', False)]}
  • exemption_line_ids One2many → res.partner.exemption.line
    readonly=True states={'draft': [('readonly', False)]} args: 'res.partner.exemption.line', 'exemption_id'
  • exemption_number Char
    readonly=True states={'draft': [('readonly', False)]}
  • exemption_number_type Selection
    default='exemption_number/taxpayer_id' readonly=True states={'draft': [('readonly', False)]} args: [('exemption_number/taxpayer_id', 'Exemption Number/Taxpayer ID'), ('foreign_diplomat_number', 'Foreign Diplomat Number'), ('drivers_license_number', 'Drivers License Number'), ('fein', 'FEIN')]
  • exemption_type Many2one → res.partner.exemption.type
    readonly=True states={'draft': [('readonly', False)]} args: 'res.partner.exemption.type'
  • expiry_date Date
  • group_of_state Many2one
    readonly=True states={'draft': [('readonly', False)]}
  • partner_id Many2one → res.partner
    index=True readonly=True required=True states={'draft': [('readonly', False)]} args: 'res.partner'
  • state Selection
    default='draft' args: [('draft', 'Draft'), ('progress', 'In Progress'), ('done', 'Done'), ('cancel', 'Cancelled')]
  • state_ids Many2many
    readonly=True states={'draft': [('readonly', False)]}
Public methods (5)
  • name_get(self)
  • onchange_effective_date(self)
    @api.onchange('exemption_type', 'effective_date')
  • onchange_exemption_type(self)
    @api.onchange('exemption_type', 'group_of_state')
  • onchange_partner_id(self)
    @api.onchange('partner_id')
  • onchange_state_ids(self)
    @api.onchange('state_ids')

New fields (2)
  • avatax_id Char
    readonly=True required=True
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • add_exemption_number Boolean
  • avatax_id Char
    copy=False readonly=True args: 'Avatax Certificate ID'
  • avatax_status Boolean
    default=True
  • exemption_id Many2one → res.partner.exemption
    required=True args: 'res.partner.exemption'
  • exemption_number Char
  • linked_to_customer Boolean
    readonly=True
  • name Char
    default=<expr> index=True
  • partner_id Many2one
    related='exemption_id.partner_id' store=True
  • state_id Many2one → res.country.state
    args: 'res.country.state'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (5)
  • business_type Many2one → res.partner.exemption.business.type
    string='Activity Type' args: 'res.partner.exemption.business.type'
  • exemption_validity_duration Integer
    default=30 help='Validity duration in days'
  • group_of_state Many2one → res.partner.group.state
    string='Group of States' args: 'res.partner.group.state'
  • name Char
  • state_ids Many2many → res.country.state
    string='States' args: 'res.country.state'
Public methods (1)
  • onchange_group_of_state(self)
    @api.onchange('group_of_state')

New fields (3)
  • country_id Many2one → res.country
    args: 'res.country'
  • name Char
  • state_ids Many2many → res.country.state
    args: 'res.country.state'
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_avatax_exemption_base: Migration to 19.0 (#592)