Analytic Accounting

analytic
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/analytic
VERSION
VERSION 1.2
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Xavier Morel, Aaron Bohy, Yannick Tivisse, Jorge Pinna Puissant, Julien Castiaux, Julien Mougenot, Anh Thao Pham (pta), Alvaro Fuentes, Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Mathieu Duckerts-Antoine, Florent Xicluna, william-andre, John (jol), Hubert Van De Walle, Renaud Thiry, Louis Wicket (wil), Maximilien (malb), Victor Piryns (pivi), Gauthier Wala (gawa), Antoine Boonen, Dylan Kiss (dyki), guva-odoo, Paul Stroobant, Mélanie, lase@odoo.com, Maxime de Neuville, reka-odoo, AMZIL Ayoub, yosa-odoo, Harsh Shah, Ahmad (alah), Logan Staelens, Maira Salazar (srma), elhayyany, Mohammad Abdulmoneim (abdu), khsr-odoo, Pierre Lamotte (pila), Michaël Mattiello, Pierre Pulinckx, Krzysztof Magusiak (krma), Akash Pandey, Hazem Ibrahim, Junqi, igbe, macs-odoo, Ayush Modi, saurabh, Camila Vives
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_distribution_model_form_view account.analytic.distribution.model.form account.analytic.distribution.model form New
account_analytic_distribution_model_tree_view account.analytic.distribution.model.list account.analytic.distribution.model list New
account_analytic_plan_form_view account.analytic.plan.form account.analytic.plan form New
account_analytic_plan_tree_view account.analytic.plan.list account.analytic.plan list New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account list New
view_account_analytic_account_list_select account.analytic.account.list.select account.analytic.account list Inherits analytic.view_account_analytic_account_list
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.list account.analytic.line list New
Models touched (9)

New fields (13)
  • active Boolean
    default=True help='Deactivate the account.' tracking=True args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index='btree' string='Reference' tracking=True
  • color Integer
    related='plan_id.color' args: 'Color Index'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'auto_account_id'
  • name Char
    index='trigram' required=True string='Analytic Account' tracking=True translate=True
  • partner_id Many2one → res.partner
    bypass_search_access=True check_company=True index='btree_not_null' string='Customer' tracking=True args: 'res.partner'
  • plan_id Many2one → account.analytic.plan
    index=True required=True string='Plan' args: 'account.analytic.plan'
  • root_plan_id Many2one → account.analytic.plan
    related='plan_id.root_id' store=True string='Root Plan' args: 'account.analytic.plan'
Public methods (3)
  • copy_data(self, default=None)
  • web_read(self, specification: <expr>) -> <expr>
  • write(self, vals)

New fields (4)
  • analytic_plan_id Many2one → account.analytic.plan
    index='btree_not_null' args: 'account.analytic.plan'
  • applicability Selection
    required=True string='Applicability' args: [('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')]
  • business_domain Selection
    required=True selection=[('general', 'Miscellaneous')] string='Domain'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (4)
  • company_id Many2one → res.company
    default=<expr> help='Select a company for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)' ondelete='cascade' string='Company' args: 'res.company'
  • partner_category_id Many2one → res.partner.category
    help='Select a partner category for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner Category' args: 'res.partner.category'
  • partner_id Many2one → res.partner
    help='Select a partner for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner' args: 'res.partner'
  • sequence Integer
    default=10
Public methods (0)

No public methods.

New fields (13)
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • analytic_distribution Json
    compute='_compute_analytic_distribution' inverse='_inverse_analytic_distribution' args: 'Analytic Distribution'
  • analytic_precision Integer
    default=<expr> store=False
  • category Selection
    default='other' args: [('other', 'Other')]
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • fiscal_year_search Boolean
    export_string_translation=False exportable=False search='_search_fiscal_date' store=False
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • product_uom_id Many2one → uom.uom
    string='Unit' args: 'uom.uom'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=<expr> index=True string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (15)
  • account_count Integer
    compute='_compute_analytic_account_count' args: 'Analytic Accounts Count'
  • account_ids One2many → account.analytic.account
    string='Accounts' args: 'account.analytic.account', 'plan_id'
  • all_account_count Integer
    compute='_compute_all_analytic_account_count' args: 'All Analytic Accounts Count'
  • applicability_ids One2many → account.analytic.applicability
    domain="[('company_id', '=', current_company_id)]" string='Applicability' args: 'account.analytic.applicability', 'analytic_plan_id'
  • children_count Integer
    compute='_compute_children_count' args: 'Children Plans Count'
  • children_ids One2many → account.analytic.plan
    string='Childrens' args: 'account.analytic.plan', 'parent_id'
  • color Integer
    default=_default_color args: 'Color'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True args: 'Complete Name'
  • default_applicability Selection
    company_dependent=True readonly=False selection=[('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')] string='Default Applicability'
  • description Text
    string='Description'
  • name Char
    inverse='_inverse_name' required=True translate=True
  • parent_id Many2one → account.analytic.plan
    domain="['!', ('id', 'child_of', id)]" index='btree_not_null' inverse='_inverse_parent_id' ondelete='cascade' string='Parent' args: 'account.analytic.plan'
  • parent_path Char
    index='btree'
  • root_id Many2one → account.analytic.plan
    compute='_compute_root_id' search='_search_root_id' args: 'account.analytic.plan'
  • sequence Integer
    default=10
Public methods (6)
  • action_view_analytical_accounts(self)
  • action_view_children_plans(self)
  • create(self, vals_list)
    @api.model_create_multi
  • get_relevant_plans(self, **kwargs)
    @api.model
    Returns the list of plans that should be available. This list is computed based on the applicabilities of root plans.
  • unlink(self)
  • write(self, vals)

New fields (3)
  • analytic_distribution Json
    compute='_compute_analytic_distribution' copy=True readonly=False search='_search_analytic_distribution' store=True args: 'Analytic Distribution'
  • analytic_precision Integer
    default=<expr> store=False
  • distribution_analytic_account_ids Many2many → account.analytic.account
    comodel_name='account.analytic.account' compute='_compute_distribution_analytic_account_ids' search='_search_distribution_analytic_account_ids'
Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
    Format the analytic_distribution float value, so equality on analytic_distribution can be done
  • filtered_domain(self, domain)
  • init(self)
  • write(self, vals)
    Format the analytic_distribution float value, so equality on analytic_distribution can be done

New fields (2)
  • account_id Many2one → account.analytic.account
    check_company=True index=True ondelete='restrict' args: 'account.analytic.account', 'Project Account'
  • auto_account_id Many2one → account.analytic.account
    comodel_name='account.analytic.account' compute='_compute_auto_account' inverse='_inverse_auto_account' search='_search_auto_account' string='Analytic Account'
Public methods (2)
  • default_get(self, fields)
    @api.model
  • fields_get(self, allfields=None, attributes=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)
    When this paramater is changed, dynamic fields needs to be recomputed

New fields (1)
  • group_analytic_accounting Boolean
    implied_group='analytic.group_analytic_accounting' string='Analytic Accounting'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/analytic
VERSION
VERSION 1.2
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Christophe Simonis, Xavier Morel, Jeremy Kersten, Odoo Online, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Alvaro Fuentes, Achraf (abz), Brice bib Bartoletti, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, william-andre, John (jol), Abdelouahab (abla), assellalou, Hubert Van De Walle, Renaud Thiry, Habib (ayh), alsh-odoo, Louis Wicket (wil), Maximilien (malb), Victor Piryns (pivi), Thomas Becquevort (thbe), Gauthier Wala (gawa), Antoine Boonen, Dylan Kiss (dyki), Bruno Boi, Chong Wang (cwg), Xavier Bol (xbo), Nguyễn Đại Dương, omra-odoo, sesn-odoo, guva-odoo, kdeb@odoo.com, Paul Stroobant, Hesham, lase@odoo.com, Maryam Kia, Maxime de Neuville, AMZIL Ayoub, yosa-odoo, sami odoo, Louis (wil), ThiagoMForgeFlow, Harsh Shah, Logan Staelens, Maira Salazar (srma), elhayyany, khsr-odoo, Pierre Lamotte (pila), Carmine, Krzysztof Magusiak (krma), eduardo, Junqi, igbe, macs-odoo, Killian Frappart, Camila Vives
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_distribution_model_form_view account.analytic.distribution.model.form account.analytic.distribution.model form New
account_analytic_distribution_model_tree_view account.analytic.distribution.model.list account.analytic.distribution.model list New
account_analytic_plan_form_view account.analytic.plan.form account.analytic.plan form New
account_analytic_plan_tree_view account.analytic.plan.list account.analytic.plan list New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account list New
view_account_analytic_account_list_select account.analytic.account.list.select account.analytic.account list Inherits analytic.view_account_analytic_account_list
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.list account.analytic.line list New
Models touched (9)

New fields (13)
  • active Boolean
    default=True help='Deactivate the account.' tracking=True args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index='btree' string='Reference' tracking=True
  • color Integer
    related='plan_id.color' args: 'Color Index'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'auto_account_id'
  • name Char
    index='trigram' required=True string='Analytic Account' tracking=True translate=True
  • partner_id Many2one → res.partner
    auto_join=True check_company=True string='Customer' tracking=True args: 'res.partner'
  • plan_id Many2one → account.analytic.plan
    required=True string='Plan' args: 'account.analytic.plan'
  • root_plan_id Many2one → account.analytic.plan
    related='plan_id.root_id' store=True string='Root Plan' args: 'account.analytic.plan'
Public methods (3)
  • copy_data(self, default=None)
  • web_read(self, specification: <expr>) -> <expr>
  • write(self, vals)

New fields (4)
  • analytic_plan_id Many2one → account.analytic.plan
    args: 'account.analytic.plan'
  • applicability Selection
    required=True string='Applicability' args: [('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')]
  • business_domain Selection
    required=True selection=[('general', 'Miscellaneous')] string='Domain'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
Public methods (0)

No public methods.

New fields (4)
  • company_id Many2one → res.company
    default=<expr> help='Select a company for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)' ondelete='cascade' string='Company' args: 'res.company'
  • partner_category_id Many2one → res.partner.category
    help='Select a partner category for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner Category' args: 'res.partner.category'
  • partner_id Many2one → res.partner
    help='Select a partner for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner' args: 'res.partner'
  • sequence Integer
    default=10
Public methods (1)
  • action_read_distribution_model(self)

New fields (13)
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • analytic_distribution Json
    compute='_compute_analytic_distribution' inverse='_inverse_analytic_distribution' args: 'Analytic Distribution'
  • analytic_precision Integer
    default=<expr> store=False
  • category Selection
    default='other' args: [('other', 'Other')]
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • product_uom_category_id Many2one
    readonly=True related='product_uom_id.category_id' string='UoM Category'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', product_uom_category_id)]" string='Unit of Measure' args: 'uom.uom'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=<expr> index=True string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (15)
  • account_count Integer
    compute='_compute_analytic_account_count' args: 'Analytic Accounts Count'
  • account_ids One2many → account.analytic.account
    string='Accounts' args: 'account.analytic.account', 'plan_id'
  • all_account_count Integer
    compute='_compute_all_analytic_account_count' args: 'All Analytic Accounts Count'
  • applicability_ids One2many → account.analytic.applicability
    domain="[('company_id', '=', current_company_id)]" string='Applicability' args: 'account.analytic.applicability', 'analytic_plan_id'
  • children_count Integer
    compute='_compute_children_count' args: 'Children Plans Count'
  • children_ids One2many → account.analytic.plan
    string='Childrens' args: 'account.analytic.plan', 'parent_id'
  • color Integer
    default=_default_color args: 'Color'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True args: 'Complete Name'
  • default_applicability Selection
    company_dependent=True readonly=False selection=[('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')] string='Default Applicability'
  • description Text
    string='Description'
  • name Char
    inverse='_inverse_name' required=True translate=True
  • parent_id Many2one → account.analytic.plan
    domain="['!', ('id', 'child_of', id)]" inverse='_inverse_parent_id' ondelete='cascade' string='Parent' args: 'account.analytic.plan'
  • parent_path Char
    index='btree'
  • root_id Many2one → account.analytic.plan
    compute='_compute_root_id' search='_search_root_id' args: 'account.analytic.plan'
  • sequence Integer
    default=10
Public methods (5)
  • action_view_analytical_accounts(self)
  • action_view_children_plans(self)
  • get_relevant_plans(self, **kwargs)
    @api.model
    Returns the list of plans that should be available. This list is computed based on the applicabilities of root plans.
  • unlink(self)
  • write(self, vals)

New fields (3)
  • analytic_distribution Json
    compute='_compute_analytic_distribution' copy=True readonly=False store=True args: 'Analytic Distribution'
  • analytic_precision Integer
    default=<expr> store=False
  • distribution_analytic_account_ids Many2many → account.analytic.account
    comodel_name='account.analytic.account' compute='_compute_distribution_analytic_account_ids' search='_search_distribution_analytic_account_ids'
Public methods (5)
  • create(self, vals_list)
    @api.model_create_multi
    Format the analytic_distribution float value, so equality on analytic_distribution can be done
  • filtered_domain(self, domain)
  • init(self)
  • mapped(self, func)
  • write(self, vals)
    Format the analytic_distribution float value, so equality on analytic_distribution can be done

New fields (2)
  • account_id Many2one → account.analytic.account
    check_company=True index=True ondelete='restrict' args: 'account.analytic.account', 'Project Account'
  • auto_account_id Many2one → account.analytic.account
    comodel_name='account.analytic.account' compute='_compute_auto_account' inverse='_inverse_auto_account' search='_search_auto_account' string='Analytic Account'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • fields_get(self, allfields=None, attributes=None)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)
    When this paramater is changed, dynamic fields needs to be recomputed

New fields (1)
  • group_analytic_accounting Boolean
    implied_group='analytic.group_analytic_accounting' string='Analytic Accounting'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/analytic
VERSION
VERSION 1.2
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Denis Ledoux, Christophe Simonis, Thibault Francois, qdp-odoo, Géry Debongnie, Holger Brunn, Aaron Bohy, Jeremy Kersten, Damien Bouvy, Odoo Online, Jorge Pinna Puissant, Lucas Perais, Victor Feyens, Andrea Grazioso (agr-odoo), Joseph Caburnay, Julien Mougenot, Anh Thao Pham (pta), Samuel Degueldre, Alvaro Fuentes, Achraf (abz), Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Hubert Van de Walle (huvw), Nicolas (vin), william-andre, william, Yolann Sabaux, Abdelouahab (abla), John Laterre (jol), Thomas Beckers, gawa-odoo, Hubert Van De Walle, luvi, Renaud Thiry, Habib (ayh), damr, Louis Wicket (wil), nda, Maximilien (malb), Thomas Becquevort (thbe), Gauthier Wala (gawa), Pieter Claeys (clpi), Antoine Boonen, Dylan Kiss (dyki), Bruno Boi, Julien Alardot (jual), FrancoisGe, Michael (mcm), ArnaudVerlaine, Xavier Bol (xbo), Nguyễn Đại Dương, sesn-odoo, guva-odoo, kdeb@odoo.com, Paul Stroobant, lase@odoo.com, yosa-odoo, Julien Carion (juca), sami odoo, Louis (wil), asm, Adesh Jolhe (adjo), Harsh Shah, Maira Salazar (srma), Pierre Lamotte (pila), Pierre Pulinckx (pipu), Carmine, erl-odoo, eduardo, Junqi, igbe, macs-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_distribution_model_form_view account.analytic.distribution.model.form account.analytic.distribution.model form New
account_analytic_distribution_model_tree_view account.analytic.distribution.model.tree account.analytic.distribution.model tree New
account_analytic_plan_form_view account.analytic.plan.form account.analytic.plan form New
account_analytic_plan_tree_view account.analytic.plan.tree account.analytic.plan tree New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_list_select account.analytic.account.list.select account.analytic.account tree Inherits analytic.view_account_analytic_account_list
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (10)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (13)
  • active Boolean
    default=True help='Deactivate the account.' tracking=True args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index='btree' string='Reference' tracking=True
  • color Integer
    related='plan_id.color' args: 'Color Index'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'auto_account_id'
  • name Char
    index='trigram' required=True string='Analytic Account' tracking=True translate=True
  • partner_id Many2one → res.partner
    auto_join=True check_company=True string='Customer' tracking=True args: 'res.partner'
  • plan_id Many2one → account.analytic.plan
    required=True string='Plan' args: 'account.analytic.plan'
  • root_plan_id Many2one → account.analytic.plan
    related='plan_id.root_id' store=True string='Root Plan' args: 'account.analytic.plan'
Public methods (2)
  • copy_data(self, default=None)
  • write(self, vals)

New fields (4)
  • analytic_plan_id Many2one → account.analytic.plan
    args: 'account.analytic.plan'
  • applicability Selection
    required=True string='Applicability' args: [('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')]
  • business_domain Selection
    required=True selection=[('general', 'Miscellaneous')] string='Domain'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
Public methods (0)

No public methods.

New fields (3)
  • company_id Many2one → res.company
    default=<expr> help='Select a company for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)' ondelete='cascade' string='Company' args: 'res.company'
  • partner_category_id Many2one → res.partner.category
    help='Select a partner category for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner Category' args: 'res.partner.category'
  • partner_id Many2one → res.partner
    help='Select a partner for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner' args: 'res.partner'
Public methods (1)
  • action_read_distribution_model(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (13)
  • account_id Many2one → account.analytic.account
    check_company=True index=True ondelete='restrict' args: 'account.analytic.account', 'Project Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • auto_account_id Many2one → account.analytic.account
    comodel_name='account.analytic.account' compute='_compute_auto_account' inverse='_inverse_auto_account' search='_search_auto_account' string='Analytic Account'
  • category Selection
    default='other' args: [('other', 'Other')]
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • product_uom_category_id Many2one
    readonly=True related='product_uom_id.category_id' string='UoM Category'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', product_uom_category_id)]" string='Unit of Measure' args: 'uom.uom'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=<expr> index=True string='User' args: 'res.users'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • fields_get(self, allfields=None, attributes=None)
    @api.model

New fields (15)
  • account_count Integer
    compute='_compute_analytic_account_count' args: 'Analytic Accounts Count'
  • account_ids One2many → account.analytic.account
    string='Accounts' args: 'account.analytic.account', 'plan_id'
  • all_account_count Integer
    compute='_compute_all_analytic_account_count' args: 'All Analytic Accounts Count'
  • applicability_ids One2many → account.analytic.applicability
    domain="[('company_id', '=', current_company_id)]" string='Applicability' args: 'account.analytic.applicability', 'analytic_plan_id'
  • children_count Integer
    compute='_compute_children_count' args: 'Children Plans Count'
  • children_ids One2many → account.analytic.plan
    string='Childrens' args: 'account.analytic.plan', 'parent_id'
  • color Integer
    default=_default_color args: 'Color'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True args: 'Complete Name'
  • default_applicability Selection
    company_dependent=True default='optional' readonly=False required=True selection=[('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')] string='Default Applicability'
  • description Text
    string='Description'
  • name Char
    inverse='_inverse_name' required=True translate=True
  • parent_id Many2one → account.analytic.plan
    domain="['!', ('id', 'child_of', id)]" inverse='_inverse_parent_id' ondelete='cascade' string='Parent' args: 'account.analytic.plan'
  • parent_path Char
    index='btree' unaccent=False
  • root_id Many2one → account.analytic.plan
    compute='_compute_root_id' args: 'account.analytic.plan'
  • sequence Integer
    default=10
Public methods (5)
  • action_view_analytical_accounts(self)
  • action_view_children_plans(self)
  • get_relevant_plans(self, **kwargs)
    @api.model
    Returns the list of plans that should be available. This list is computed based on the applicabilities of root plans.
  • unlink(self)
  • write(self, vals)

New fields (4)
  • analytic_distribution Json
    compute='_compute_analytic_distribution' copy=True readonly=False store=True args: 'Analytic Distribution'
  • analytic_distribution_search Json
    search='_search_analytic_distribution' store=False
  • analytic_precision Integer
    default=<expr> store=False
  • distribution_analytic_account_ids Many2many → account.analytic.account
    comodel_name='account.analytic.account' compute='_compute_distribution_analytic_account_ids' search='_search_analytic_distribution'
Public methods (7)
  • create(self, vals_list)
    @api.model_create_multi
    Format the analytic_distribution float value, so equality on analytic_distribution can be done
  • fields_get(self, allfields=None, attributes=None)
    @api.model
    Hide analytic_distribution_search from filterable/searchable fields
  • filtered_domain(self, domain)
  • init(self)
  • mapped(self, func)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
  • write(self, vals)
    Format the analytic_distribution float value, so equality on analytic_distribution can be done

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)
    When this paramater is changed, dynamic fields needs to be recomputed

New fields (1)
  • group_analytic_accounting Boolean
    implied_group='analytic.group_analytic_accounting' string='Analytic Accounting'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Denis Ledoux, Christophe Simonis, Xavier Morel, Thibault Francois, Géry Debongnie, Aaron Bohy, Romeo Fragomeli, Victor Feyens, Julien Mougenot, Anh Thao Pham (pta), Tiffany Chang (tic), Hubert Van de Walle (huvw), Nicolas (vin), william, Yolann Sabaux, Abdelouahab (abla), Thomas Beckers, Laurent Stukkens (LTU), gawa-odoo, Renaud Thiry, Moises Lopez - https://www.vauxoo.com/, Habib (ayh), Louis Wicket (wil), Maximilien (malb), Yash Vaishnav, Gauthier Wala (gawa), Dylan Kiss (dyki), Michael (mcm), Kartik Chavda, guva-odoo, Adesh Jolhe (adjo), Mathieu Coutant, Pierre Lamotte (pila), erl-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_distribution_model_form_view account.analytic.distribution.model.form account.analytic.distribution.model form New
account_analytic_distribution_model_tree_view account.analytic.distribution.model.tree account.analytic.distribution.model tree New
account_analytic_plan_form_view account.analytic.plan.form account.analytic.plan form New
account_analytic_plan_tree_view account.analytic.plan.tree account.analytic.plan tree New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_list_select account.analytic.account.list.select account.analytic.account tree Inherits analytic.view_account_analytic_account_list
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (7)

New fields (13)
  • active Boolean
    default=True help='Deactivate the account.' tracking=True args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index='btree' string='Reference' tracking=True
  • color Integer
    related='plan_id.color' args: 'Color Index'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index='trigram' required=True string='Analytic Account' tracking=True
  • partner_id Many2one → res.partner
    auto_join=True check_company=True string='Customer' tracking=True args: 'res.partner'
  • plan_id Many2one → account.analytic.plan
    check_company=True required=True string='Plan' args: 'account.analytic.plan'
  • root_plan_id Many2one → account.analytic.plan
    check_company=True compute='_compute_root_plan' store=True string='Root Plan' args: 'account.analytic.plan'
Public methods (3)
  • copy_data(self, default=None)
  • name_get(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Override read_group to calculate the sum of the non-stored fields that depend on the user context

New fields (3)
  • analytic_plan_id Many2one → account.analytic.plan
    args: 'account.analytic.plan'
  • applicability Selection
    required=True string='Applicability' args: [('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')]
  • business_domain Selection
    required=True selection=[('general', 'Miscellaneous')] string='Domain'
Public methods (0)

No public methods.

New fields (3)
  • company_id Many2one → res.company
    default=<expr> help='Select a company for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this company, it will automatically take this as an analytic account)' ondelete='cascade' string='Company' args: 'res.company'
  • partner_category_id Many2one → res.partner.category
    help='Select a partner category for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner Category' args: 'res.partner.category'
  • partner_id Many2one → res.partner
    help='Select a partner for which the analytic distribution will be used (e.g. create new customer invoice or Sales order if we select this partner, it will automatically take this as an analytic account)' ondelete='cascade' string='Partner' args: 'res.partner'
Public methods (1)
  • action_read_distribution_model(self)

New fields (13)
  • account_id Many2one → account.analytic.account
    check_company=True index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • category Selection
    default='other' args: [('other', 'Other')]
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • plan_id Many2one → account.analytic.plan
    compute_sudo=True readonly=True related='account_id.plan_id' store=True args: 'account.analytic.plan'
  • product_uom_category_id Many2one
    readonly=True related='product_uom_id.category_id' string='UoM Category'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', product_uom_category_id)]" string='Unit of Measure' args: 'uom.uom'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=<expr> index=True string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (14)
  • account_count Integer
    compute='_compute_analytic_account_count' args: 'Analytic Accounts Count'
  • account_ids One2many → account.analytic.account
    string='Accounts' args: 'account.analytic.account', 'plan_id'
  • all_account_count Integer
    compute='_compute_all_analytic_account_count' args: 'All Analytic Accounts Count'
  • applicability_ids One2many → account.analytic.applicability
    string='Applicability' args: 'account.analytic.applicability', 'analytic_plan_id'
  • children_count Integer
    compute='_compute_children_count' args: 'Children Plans Count'
  • children_ids One2many → account.analytic.plan
    string='Childrens' args: 'account.analytic.plan', 'parent_id'
  • color Integer
    default=_default_color args: 'Color'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True args: 'Complete Name'
  • default_applicability Selection
    default='optional' readonly=False required=True selection=[('optional', 'Optional'), ('mandatory', 'Mandatory'), ('unavailable', 'Unavailable')] string='Default Applicability'
  • description Text
    string='Description'
  • name Char
    required=True
  • parent_id Many2one → account.analytic.plan
    check_company=True domain="[('id', '!=', id), ('company_id', 'in', [False, company_id])]" ondelete='cascade' string='Parent' args: 'account.analytic.plan'
  • parent_path Char
    index='btree' unaccent=False
Public methods (3)
  • action_view_analytical_accounts(self)
  • action_view_children_plans(self)
  • get_relevant_plans(self, **kwargs)
    @api.model
    Returns the list of plans that should be available. This list is computed based on the applicabilities of root plans.

New fields (3)
  • analytic_distribution Json
    compute='_compute_analytic_distribution' copy=True readonly=False store=True args: 'Analytic'
  • analytic_distribution_search Json
    search='_search_analytic_distribution' store=False
  • analytic_precision Integer
    default=<expr> store=False
Public methods (5)
  • create(self, vals_list)
    @api.model_create_multi
    Format the analytic_distribution float value, so equality on analytic_distribution can be done
  • fields_get(self, allfields=None, attributes=None)
    @api.model
    Hide analytic_distribution_search from filterable/searchable fields
  • init(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
  • write(self, vals)
    Format the analytic_distribution float value, so equality on analytic_distribution can be done

New fields (1)
  • group_analytic_accounting Boolean
    implied_group='analytic.group_analytic_accounting' string='Analytic Accounting'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Nicolas Lempereur, Yannick Tivisse, Xavier-Do, Victor Feyens, Tiffany Chang (tic), Mathieu Duckerts-Antoine, Julien CHEVREAU (JCU), yhu-odoo, Laurent Stukkens (LTU), Michael Mattiello (mcm), Gauthier Wala (gawa), Kartik Chavda
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:30
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_group_form_view account.analytic.group.form account.analytic.group form New
account_analytic_group_tree_view account.analytic.group.tree account.analytic.group tree New
account_analytic_tag_form_view account.analytic.tag.form account.analytic.tag form New
account_analytic_tag_tree_view account.analytic.tag.tree account.analytic.tag tree New
account_analytic_tag_view_search account.analytic.tag.view.search account.analytic.tag search New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (6)

New fields (11)
  • active Boolean
    default=True help='If the active field is set to False, it will allow you to hide the account without removing it.' args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' tracking=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • group_id Many2one → account.analytic.group
    check_company=True string='Group' args: 'account.analytic.group'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' tracking=True
  • partner_id Many2one → res.partner
    auto_join=True check_company=True string='Customer' tracking=True args: 'res.partner'
Public methods (2)
  • name_get(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Override read_group to calculate the sum of the non-stored fields that depend on the user context

New fields (4)
  • account_id Many2one → account.analytic.account
    required=True string='Analytic Account' args: 'account.analytic.account'
  • name Char
    readonly=False related='account_id.name' string='Name'
  • percentage Float
    default=100.0 required=True string='Percentage'
  • tag_id Many2one → account.analytic.tag
    required=True string='Parent tag' args: 'account.analytic.tag'
Public methods (0)

No public methods.

New fields (7)
  • children_ids One2many → account.analytic.group
    string='Childrens' args: 'account.analytic.group', 'parent_id'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • complete_name Char
    compute='_compute_complete_name' recursive=True store=True args: 'Complete Name'
  • description Text
    string='Description'
  • name Char
    required=True
  • parent_id Many2one → account.analytic.group
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" ondelete='cascade' string='Parent' args: 'account.analytic.group'
  • parent_path Char
    index=True
Public methods (0)

No public methods.

New fields (14)
  • account_id Many2one → account.analytic.account
    check_company=True index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • category Selection
    default='other' args: [('other', 'Other')]
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • group_id Many2one → account.analytic.group
    compute_sudo=True readonly=True related='account_id.group_id' store=True args: 'account.analytic.group'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • product_uom_category_id Many2one
    readonly=True related='product_uom_id.category_id' string='UoM Category'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', product_uom_category_id)]" string='Unit of Measure' args: 'uom.uom'
  • tag_ids Many2many → account.analytic.tag
    check_company=True copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True help='Set active to false to hide the Analytic Tag without removing it.'
  • active_analytic_distribution Boolean
    args: 'Analytic Distribution'
  • analytic_distribution_ids One2many → account.analytic.distribution
    string='Analytic Accounts' args: 'account.analytic.distribution', 'tag_id'
  • color Integer
    args: 'Color Index'
  • company_id Many2one → res.company
    string='Company' args: 'res.company'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

New fields (1)
  • group_analytic_accounting Boolean
    implied_group='analytic.group_analytic_accounting' string='Analytic Accounting'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Nicolas Martinelli, Yannick Tivisse, Laurent Smet, Xavier-Do, jerome hanke (jhk), Victor Feyens, Andrea Grazioso (agr-odoo), Sébastien Theys, Julien Mougenot, Mathieu Duckerts-Antoine, Kevin Baptiste
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_group_form_view account.analytic.group.form account.analytic.group form New
account_analytic_group_tree_view account.analytic.group.tree account.analytic.group tree New
account_analytic_tag_form_view account.analytic.tag.form account.analytic.tag form New
account_analytic_tag_tree_view account.analytic.tag.tree account.analytic.tag tree New
account_analytic_tag_view_search account.analytic.tag.view.search account.analytic.tag search New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (5)

New fields (11)
  • active Boolean
    default=True help='If the active field is set to False, it will allow you to hide the account without removing it.' args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' tracking=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • group_id Many2one → account.analytic.group
    check_company=True string='Group' args: 'account.analytic.group'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' tracking=True
  • partner_id Many2one → res.partner
    auto_join=True check_company=True string='Customer' tracking=True args: 'res.partner'
Public methods (2)
  • name_get(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Override read_group to calculate the sum of the non-stored fields that depend on the user context

New fields (4)
  • account_id Many2one → account.analytic.account
    required=True string='Analytic Account' args: 'account.analytic.account'
  • name Char
    readonly=False related='account_id.name' string='Name'
  • percentage Float
    default=100.0 required=True string='Percentage'
  • tag_id Many2one → account.analytic.tag
    required=True string='Parent tag' args: 'account.analytic.tag'
Public methods (0)

No public methods.

New fields (7)
  • children_ids One2many → account.analytic.group
    string='Childrens' args: 'account.analytic.group', 'parent_id'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • complete_name Char
    compute='_compute_complete_name' store=True args: 'Complete Name'
  • description Text
    string='Description'
  • name Char
    required=True
  • parent_id Many2one → account.analytic.group
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" ondelete='cascade' string='Parent' args: 'account.analytic.group'
  • parent_path Char
    index=True
Public methods (0)

No public methods.

New fields (13)
  • account_id Many2one → account.analytic.account
    check_company=True index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • group_id Many2one → account.analytic.group
    compute_sudo=True readonly=True related='account_id.group_id' store=True args: 'account.analytic.group'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    check_company=True string='Partner' args: 'res.partner'
  • product_uom_category_id Many2one
    readonly=True related='product_uom_id.category_id'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', product_uom_category_id)]" string='Unit of Measure' args: 'uom.uom'
  • tag_ids Many2many → account.analytic.tag
    check_company=True copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True help='Set active to false to hide the Analytic Tag without removing it.'
  • active_analytic_distribution Boolean
    args: 'Analytic Distribution'
  • analytic_distribution_ids One2many → account.analytic.distribution
    string='Analytic Accounts' args: 'account.analytic.distribution', 'tag_id'
  • color Integer
    args: 'Color Index'
  • company_id Many2one → res.company
    string='Company' args: 'res.company'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier ALT, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Damien Bouvy, Yannick Tivisse, Martin Geubelle, jem-odoo, Adrien Dieudonne, Toufik Ben Jaa, Adrian Torres, Xavier-Do, jerome hanke (jhk), Andrea Grazioso (agr-odoo), Prakash Prajapati
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_analytic_group_form_view account.analytic.group.form account.analytic.group form New
account_analytic_group_tree_view account.analytic.group.tree account.analytic.group tree New
account_analytic_tag_form_view account.analytic.tag.form account.analytic.tag form New
account_analytic_tag_tree_view account.analytic.tag.tree account.analytic.tag tree New
account_analytic_tag_view_search account.analytic.tag.view.search account.analytic.tag search New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (5)

New fields (11)
  • active Boolean
    default=True help='If the active field is set to False, it will allow you to hide the account without removing it.' args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' tracking=True
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • group_id Many2one → account.analytic.group
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" string='Group' args: 'account.analytic.group'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' tracking=True
  • partner_id Many2one → res.partner
    auto_join=True domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" string='Customer' tracking=True args: 'res.partner'
Public methods (2)
  • name_get(self)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Override read_group to calculate the sum of the non-stored fields that depend on the user context

New fields (4)
  • account_id Many2one → account.analytic.account
    required=True string='Analytic Account' args: 'account.analytic.account'
  • name Char
    readonly=False related='account_id.name' string='Name'
  • percentage Float
    default=100.0 required=True string='Percentage'
  • tag_id Many2one → account.analytic.tag
    required=True string='Parent tag' args: 'account.analytic.tag'
Public methods (0)

No public methods.

New fields (7)
  • children_ids One2many → account.analytic.group
    string='Childrens' args: 'account.analytic.group', 'parent_id'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • complete_name Char
    compute='_compute_complete_name' store=True args: 'Complete Name'
  • description Text
    string='Description'
  • name Char
    required=True
  • parent_id Many2one → account.analytic.group
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" ondelete='cascade' string='Parent' args: 'account.analytic.group'
  • parent_path Char
    index=True
Public methods (0)

No public methods.

New fields (13)
  • account_id Many2one → account.analytic.account
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • group_id Many2one → account.analytic.group
    compute_sudo=True readonly=True related='account_id.group_id' store=True args: 'account.analytic.group'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" string='Partner' args: 'res.partner'
  • product_uom_category_id Many2one
    readonly=True related='product_uom_id.category_id'
  • product_uom_id Many2one → uom.uom
    domain="[('category_id', '=', product_uom_category_id)]" string='Unit of Measure' args: 'uom.uom'
  • tag_ids Many2many → account.analytic.tag
    copy=True domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True help='Set active to false to hide the Analytic Tag without removing it.'
  • active_analytic_distribution Boolean
    args: 'Analytic Distribution'
  • analytic_distribution_ids One2many → account.analytic.distribution
    string='Analytic Accounts' args: 'account.analytic.distribution', 'tag_id'
  • color Integer
    args: 'Color Index'
  • company_id Many2one → res.company
    string='Company' args: 'res.company'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Christophe Simonis, Nicolas Martinelli, Nicolas Lempereur, qdp-odoo, Géry Debongnie, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, jem-odoo, Christophe Monniez, Adrian Torres, Xavier-Do
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
account_analytic_group_form_view account.analytic.group.form account.analytic.group form New
account_analytic_group_tree_view account.analytic.group.tree account.analytic.group tree New
account_analytic_tag_form_view account.analytic.tag.form account.analytic.tag form New
account_analytic_tag_tree_view account.analytic.tag.tree account.analytic.tag tree New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (5)

New fields (11)
  • active Boolean
    default=True help='If the active field is set to False, it will allow you to hide the account without removing it.' args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' track_visibility='onchange'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • group_id Many2one → account.analytic.group
    string='Group' args: 'account.analytic.group'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' track_visibility='onchange'
  • partner_id Many2one → res.partner
    auto_join=True string='Customer' track_visibility='onchange' args: 'res.partner'
Public methods (2)
  • name_get(self)
    @api.multi
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model
    Override read_group to calculate the sum of the non-stored fields that depend on the user context

New fields (4)
  • account_id Many2one → account.analytic.account
    required=True string='Analytic Account' args: 'account.analytic.account'
  • name Char
    readonly=False related='account_id.name' string='Name'
  • percentage Float
    default=100.0 required=True string='Percentage'
  • tag_id Many2one → account.analytic.tag
    required=True string='Parent tag' args: 'account.analytic.tag'
Public methods (0)

No public methods.

New fields (7)
  • children_ids One2many → account.analytic.group
    string='Childrens' args: 'account.analytic.group', 'parent_id'
  • company_id Many2one → res.company
    string='Company' args: 'res.company'
  • complete_name Char
    compute='_compute_complete_name' store=True args: 'Complete Name'
  • description Text
    string='Description'
  • name Char
    required=True
  • parent_id Many2one → account.analytic.group
    ondelete='cascade' string='Parent' args: 'account.analytic.group'
  • parent_path Char
    index=True
Public methods (0)

No public methods.

New fields (12)
  • account_id Many2one → account.analytic.account
    index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • currency_id Many2one
    compute_sudo=True readonly=True related='company_id.currency_id' store=True string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • group_id Many2one → account.analytic.group
    compute_sudo=True readonly=True related='account_id.group_id' store=True args: 'account.analytic.group'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • product_uom_id Many2one → uom.uom
    string='Unit of Measure' args: 'uom.uom'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (6)
  • active Boolean
    default=True help='Set active to false to hide the Analytic Tag without removing it.'
  • active_analytic_distribution Boolean
    args: 'Analytic Distribution'
  • analytic_distribution_ids One2many → account.analytic.distribution
    string='Analytic Accounts' args: 'account.analytic.distribution', 'tag_id'
  • color Integer
    args: 'Color Index'
  • company_id Many2one → res.company
    string='Company' args: 'res.company'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Christophe Simonis, Nicolas Martinelli, GitHub, Yannick Tivisse, Odoo Online, Laurent Smet, Adrien Dieudonne
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
account_analytic_tag_form_view account.analytic.tag.form account.analytic.tag form New
account_analytic_tag_tree_view account.analytic.tag.tree account.analytic.tag tree New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_kanban account.analytic.account.kanban account.analytic.account kanban New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_kanban account.analytic.line.kanban account.analytic.line kanban New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (3)

New fields (11)
  • active Boolean
    default=True help='If the active field is set to False, it will allow you to hide the account without removing it.' args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' track_visibility='onchange'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' track_visibility='onchange'
  • partner_id Many2one → res.partner
    auto_join=True string='Customer' track_visibility='onchange' args: 'res.partner'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_account_tag_rel', 'account_id', 'tag_id'
Public methods (2)
  • name_get(self)
    @api.multi
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (10)
  • account_id Many2one → account.analytic.account
    index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • company_id Many2one
    readonly=True related='account_id.company_id' store=True string='Company'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True help='Set active to false to hide the Analytic Tag without removing it.'
  • color Integer
    default=10 args: 'Color Index'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Julien Legros, qdp-odoo, Damien Bouvy, Yannick Tivisse
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In Odoo, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
account_analytic_tag_form_view account.analytic.tag.form account.analytic.tag form New
account_analytic_tag_tree_view account.analytic.tag.tree account.analytic.tag tree New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (3)

New fields (11)
  • active Boolean
    default=True help='If the active field is set to False, it will allow you to hide the account without removing it.' args: 'Active'
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' track_visibility='onchange'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' track_visibility='onchange'
  • partner_id Many2one → res.partner
    auto_join=True string='Customer' track_visibility='onchange' args: 'res.partner'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_account_tag_rel', 'account_id', 'tag_id'
Public methods (2)
  • name_get(self)
    @api.multi
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (10)
  • account_id Many2one → account.analytic.account
    index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • company_id Many2one
    readonly=True related='account_id.company_id' store=True string='Company'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, Damien Bouvy, Yannick Tivisse, Martin Geubelle, odoo-tac, Olivier Laurent
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:31
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - report
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In OpenERP, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
account_analytic_chart_view Chart of Analytic Accounts account.analytic.chart form New
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
view_account_analytic_account_list account.analytic.account.list account.analytic.account tree New
view_account_analytic_account_search account.analytic.account.search account.analytic.account search New
view_account_analytic_line_filter account.analytic.line.select account.analytic.line search New
view_account_analytic_line_form account.analytic.line.form account.analytic.line form New
view_account_analytic_line_graph account.analytic.line.graph account.analytic.line graph New
view_account_analytic_line_pivot account.analytic.line.pivot account.analytic.line pivot New
view_account_analytic_line_tree account.analytic.line.tree account.analytic.line tree New
Models touched (3)

New fields (11)
  • account_type Selection
    default='normal' required=True string='State' args: [('normal', 'Active'), ('closed', 'Archived')]
  • balance Monetary
    compute='_compute_debit_credit_balance' string='Balance'
  • code Char
    index=True string='Reference' track_visibility='onchange'
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • credit Monetary
    compute='_compute_debit_credit_balance' string='Credit'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • debit Monetary
    compute='_compute_debit_credit_balance' string='Debit'
  • line_ids One2many → account.analytic.line
    string='Analytic Lines' args: 'account.analytic.line', 'account_id'
  • name Char
    index=True required=True string='Analytic Account' track_visibility='onchange'
  • partner_id Many2one → res.partner
    auto_join=True string='Customer' args: 'res.partner'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_account_tag_rel', 'account_id', 'tag_id'
Public methods (2)
  • name_get(self)
    @api.multi
  • name_search(self, name='', args=None, operator='ilike', limit=100)
    @api.model

New fields (10)
  • account_id Many2one → account.analytic.account
    index=True ondelete='restrict' required=True args: 'account.analytic.account', 'Analytic Account'
  • amount Monetary
    default=0.0 required=True args: 'Amount'
  • company_id Many2one
    readonly=True related='account_id.company_id' store=True string='Company'
  • currency_id Many2one
    readonly=True related='company_id.currency_id' string='Currency'
  • date Date
    default=fields.Date.context_today index=True required=True args: 'Date'
  • name Char
    required=True args: 'Description'
  • partner_id Many2one → res.partner
    string='Partner' args: 'res.partner'
  • tag_ids Many2many → account.analytic.tag
    copy=True string='Tags' args: 'account.analytic.tag', 'account_analytic_line_tag_rel', 'line_id', 'tag_id'
  • unit_amount Float
    default=0.0 args: 'Quantity'
  • user_id Many2one → res.users
    default=_default_user string='User' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    args: 'Color Index'
  • name Char
    index=True required=True string='Analytic Tag'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Christophe Matthieu, Martin Trigaux, Foram Katharotiya (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, ggh-openerp, Christophe Simonis, Xavier Morel, Amit Bhavsar (Open ERP), Nicolas Lempereur, Julien Legros, Richard Mathot, sgo@tinyerp.com, Damien Bouvy, Sanjay Gohel (OpenERP)
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In OpenERP, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/7.0/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Jagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Randhir Mayatra (OpenERP), Odoo Translation Bot, Christophe Matthieu, DBR (OpenERP), Antonin Bourguignon, Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Purnendu Singh (OpenERP), Saurang Suthar (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Rajesh Prajapati (OpenERP), Divyesh Makwana (Open ERP), Thibault Delavallée, Vo Minh Thu, Hardik, pso (OpenERP), Amit Patel (OpenERP), Launchpad Translations on behalf of openerp, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, Sanjay Gohel (Open ERP), Alexis de Lattre, olt@tinyerp.com, Frédéric van der Essen, Amit (OpenERP)
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:43:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In OpenERP, analytic accounts are linked to general accounts but are treated
totally independently. So, you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_account_analytic_account_form analytic.analytic.account.form account.analytic.account form New
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/6.1/analytic
VERSION
VERSION 1.1
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Jagdish Panchal (Open ERP), Rucha (Open ERP), Stephane Wirtel, Fabien Pinckaers, Meera Trambadia (OpenERP), Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), vro, niv-openerp, Ujjvala Collins (OpenERP), Thibault Francois, Carlos Vásquez, Jacques-Etienne Baudoux, Els Van Vossel, Israel Fermin Montilla, ARA (OpenERP), Sbh (OpenERP), mtr, fp, Mustufa Rangwala, Atik Agewan (OpenERP)
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:41:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
    - decimal_precision
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Module for defining analytic accounting object.
===============================================

In OpenERP, analytic accounts are linked to general accounts but are treated
totally independently. So you can enter various different analytic operations
that have no counterpart in the general financial accounts.
    

Code Analysis

Views touched (0)

No views found for this module.

Models touched (0)

No models found for this module.