Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Accounting
Folder size
2.88 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://www.odoo.com/page/accounting
Last tracking update
2026-08-07 05:03:19
Authors
Maintainers
None
Committers
Xavier Morel, Olivier Dony, Christophe Simonis, Thibault Delavallée, Martin Trigaux, Odoo Translation Bot, Denis Ledoux, Goffin Simon, David Monjoie, Nicolas Martinelli, Jérome Maes, qdp-odoo, Aaron Bohy, GitHub, Lucas Perais (lpe), Yannick Tivisse, Martin Geubelle, Odoo Online, De Paoli Quentin, len-odoo, Fanny He
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
account_analytic_asset, account_asset_disposal, l10n_es_account_asset
Description
Assets management
=================
Manage assets owned by a company or a person.
Keeps track of depreciations, and creates corresponding journal entries.

    

Code Analysis

Views touched (18)
XML IDNameModelTypeStatus
action_account_asset_report_graph asset.asset.report.graph asset.asset.report graph New
action_account_asset_report_pivot asset.asset.report.pivot asset.asset.report pivot New
asset_modify_form wizard.asset.modify.form asset.modify form New
assets_backend account assets ir.ui.view qweb Inherits web.assets_backend
qunit_suite account_asset_tests ir.ui.view qweb Inherits web.qunit_suite
res_config_settings_view_form res.config.settings.view.form.inherit.account.asset res.config.settings form Inherits account.res_config_settings_view_form
view_account_asset_asset_category_kanban account.asset.category.kanban account.asset.category kanban New
view_account_asset_asset_form account.asset.asset.form account.asset.asset form New
view_account_asset_asset_kanban account.asset.asset.kanban account.asset.asset kanban New
view_account_asset_asset_purchase_tree account.asset.asset.purchase.tree account.asset.asset tree New
view_account_asset_category_form account.asset.category.form account.asset.category form New
view_account_asset_category_search account.asset.category.search account.asset.category search New
view_account_asset_category_tree account.asset.category.tree account.asset.category tree New
view_account_asset_search account.asset.asset.search account.asset.asset search New
view_asset_asset_report_search asset.asset.report.search asset.asset.report search New
view_asset_depreciation_confirmation_wizard asset.depreciation.confirmation.wizard asset.depreciation.confirmation.wizard form New
view_invoice_asset_category account.invoice.supplier.form account.invoice form Inherits account.invoice_supplier_form
view_product_template_form_inherit Product Template (form) product.template form Inherits account.product_template_form_view
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (10)

New fields (24)
  • active Boolean
    default=True
  • category_id Many2one → account.asset.category
    change_default=True readonly=True required=True states={'draft': [('readonly', False)]} string='Category' args: 'account.asset.category'
  • code Char
    readonly=True size=32 states={'draft': [('readonly', False)]} string='Reference'
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Company' args: 'res.company'
  • currency_id Many2one → res.currency
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Currency' args: 'res.currency'
  • date Date
    default=fields.Date.context_today oldname='purchase_date' readonly=True required=True states={'draft': [('readonly', False)]} string='Date'
  • depreciation_line_ids One2many → account.asset.depreciation.line
    readonly=True states={'draft': [('readonly', False)], 'open': [('readonly', False)]} string='Depreciation Lines' args: 'account.asset.depreciation.line', 'asset_id'
  • entry_count Integer
    compute='_entry_count' string='# Asset Entries'
  • invoice_id Many2one → account.invoice
    copy=False states={'draft': [('readonly', False)]} string='Invoice' args: 'account.invoice'
  • method Selection
    default='linear' help='Choose the method to use to compute the amount of depreciation lines.\n * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n * Degressive: Calculated on basis of: Residual Value * Degressive Factor' readonly=True required=True states={'draft': [('readonly', False)]} string='Computation Method' args: [('linear', 'Linear'), ('degressive', 'Degressive')]
  • method_end Date
    readonly=True states={'draft': [('readonly', False)]} string='Ending Date'
  • method_number Integer
    default=5 help='The number of depreciations needed to depreciate your asset' readonly=True states={'draft': [('readonly', False)]} string='Number of Depreciations'
  • method_period Integer
    default=12 help='The amount of time between two depreciations, in months' readonly=True required=True states={'draft': [('readonly', False)]} string='Number of Months in a Period'
  • method_progress_factor Float
    default=0.3 readonly=True states={'draft': [('readonly', False)]} string='Degressive Factor'
  • method_time Selection
    default='number' help="Choose the method to use to compute the dates and number of entries.\n * Number of Entries: Fix the number of entries and the time between 2 depreciations.\n * Ending Date: Choose the time between 2 depreciations and the date the depreciations won't go beyond." readonly=True required=True states={'draft': [('readonly', False)]} string='Time Method' args: [('number', 'Number of Entries'), ('end', 'Ending Date')]
  • name Char
    readonly=True required=True states={'draft': [('readonly', False)]} string='Asset Name'
  • note Text
  • partner_id Many2one → res.partner
    readonly=True states={'draft': [('readonly', False)]} string='Partner' args: 'res.partner'
  • prorata Boolean
    help='Indicates that the first depreciation entry for this asset have to be done from the purchase date instead of the first January / Start date of fiscal year' readonly=True states={'draft': [('readonly', False)]} string='Prorata Temporis'
  • salvage_value Float
    digits=0 help='It is the amount you plan to have that you cannot depreciate.' readonly=True states={'draft': [('readonly', False)]} string='Salvage Value'
  • state Selection
    copy=False default='draft' help="When an asset is created, the status is 'Draft'.\nIf the asset is confirmed, the status goes in 'Running' and the depreciation lines can be posted in the accounting.\nYou can manually close an asset when the depreciation is over. If the last line of depreciation is posted, the asset automatically goes in that status." required=True args: [('draft', 'Draft'), ('open', 'Running'), ('close', 'Close')], 'Status'
  • type Selection
    related='category_id.type' required=True string='Type'
  • value Float
    digits=0 oldname='purchase_value' readonly=True required=True states={'draft': [('readonly', False)]} string='Gross Value'
  • value_residual Float
    compute='_amount_residual' digits=0 method=True string='Residual Value'
Public methods (14)
  • compute_depreciation_board(self)
    @api.multi
  • compute_generated_entries(self, date, asset_type=None)
    @api.model
  • copy_data(self, default=None)
    @api.multi
  • create(self, vals)
    @api.model
  • onchange_category_id(self)
    @api.onchange('category_id')
  • onchange_category_id_values(self, category_id)
  • onchange_company_id(self)
    @api.onchange('company_id')
  • onchange_method_time(self)
    @api.onchange('method_time')
  • open_entries(self)
    @api.multi
  • set_to_close(self)
    @api.multi
  • set_to_draft(self)
    @api.multi
  • unlink(self)
    @api.multi
  • validate(self)
    @api.multi
  • write(self, vals)
    @api.multi

New fields (18)
  • account_analytic_id Many2one → account.analytic.account
    string='Analytic Account' args: 'account.analytic.account'
  • account_asset_id Many2one → account.account
    domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)] help='Account used to record the purchase of the asset at its original price.' required=True string='Asset Account' args: 'account.account'
  • account_depreciation_expense_id Many2one → account.account
    domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)] help='Account used in the periodical entries, to record a part of the asset as expense.' oldname='account_income_recognition_id' required=True string='Depreciation Entries: Expense Account' args: 'account.account'
  • account_depreciation_id Many2one → account.account
    domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)] help='Account used in the depreciation entries, to decrease the asset value.' required=True string='Depreciation Entries: Asset Account' args: 'account.account'
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> required=True string='Company' args: 'res.company'
  • group_entries Boolean
    help='Check this if you want to group the generated entries by categories.' string='Group Journal Entries'
  • journal_id Many2one → account.journal
    required=True string='Journal' args: 'account.journal'
  • method Selection
    default='linear' help='Choose the method to use to compute the amount of depreciation lines.\n * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n * Degressive: Calculated on basis of: Residual Value * Degressive Factor' required=True string='Computation Method' args: [('linear', 'Linear'), ('degressive', 'Degressive')]
  • method_end Date
    args: 'Ending date'
  • method_number Integer
    default=5 help='The number of depreciations needed to depreciate your asset' string='Number of Depreciations'
  • method_period Integer
    default=1 help='State here the time between 2 depreciations, in months' required=True string='Period Length'
  • method_progress_factor Float
    default=0.3 args: 'Degressive Factor'
  • method_time Selection
    default='number' help="Choose the method to use to compute the dates and number of entries.\n * Number of Entries: Fix the number of entries and the time between 2 depreciations.\n * Ending Date: Choose the time between 2 depreciations and the date the depreciations won't go beyond." required=True string='Time Method' args: [('number', 'Number of Entries'), ('end', 'Ending Date')]
  • name Char
    index=True required=True string='Asset Type'
  • open_asset Boolean
    help='Check this if you want to automatically confirm the assets of this category when created by invoices.' string='Auto-confirm Assets'
  • prorata Boolean
    help='Indicates that the first depreciation entry for this asset have to be done from the purchase date instead of the first of January' string='Prorata Temporis'
  • type Selection
    default='purchase' index=True required=True args: [('sale', 'Sale: Revenue Recognition'), ('purchase', 'Purchase: Asset')]
Public methods (2)
  • onchange_account_asset(self)
    @api.onchange('account_asset_id')
  • onchange_type(self)
    @api.onchange('type')

New fields (11)
  • amount Float
    digits=0 required=True string='Current Depreciation'
  • asset_id Many2one → account.asset.asset
    ondelete='cascade' required=True string='Asset' args: 'account.asset.asset'
  • depreciated_value Float
    required=True string='Cumulative Depreciation'
  • depreciation_date Date
    index=True args: 'Depreciation Date'
  • move_check Boolean
    compute='_get_move_check' store=True string='Linked' track_visibility='always'
  • move_id Many2one → account.move
    string='Depreciation Entry' args: 'account.move'
  • move_posted_check Boolean
    compute='_get_move_posted_check' store=True string='Posted' track_visibility='always'
  • name Char
    index=True required=True string='Depreciation Name'
  • parent_state Selection
    related='asset_id.state' string='State of Asset'
  • remaining_value Float
    digits=0 required=True string='Next Period Depreciation'
  • sequence Integer
    required=True
Public methods (5)
  • create_grouped_move(self, post_move=True)
    @api.multi
  • create_move(self, post_move=True)
    @api.multi
  • log_message_when_posted(self)
    @api.multi
  • post_lines_and_close_asset(self)
    @api.multi
  • unlink(self)
    @api.multi

New fields (0)

No new fields.

Public methods (2)
  • action_cancel(self)
    @api.multi
  • action_move_create(self)
    @api.multi

New fields (4)
  • asset_category_id Many2one → account.asset.category
    string='Asset Category' args: 'account.asset.category'
  • asset_end_date Date
    compute='_get_asset_date' readonly=True store=True string='Asset End Date'
  • asset_mrr Float
    compute='_get_asset_date' digits=dp.get_precision('Account') readonly=True store=True string='Monthly Recurring Revenue'
  • asset_start_date Date
    compute='_get_asset_date' readonly=True store=True string='Asset Start Date'
Public methods (3)
  • asset_create(self)
    @api.one
  • get_invoice_line_account(self, type, product, fpos, company)
  • onchange_asset_category_id(self)
    @api.onchange('asset_category_id')

New fields (1)
  • asset_depreciation_ids One2many → account.asset.depreciation.line
    ondelete='restrict' string='Assets Depreciation Lines' args: 'account.asset.depreciation.line', 'move_id'
Public methods (2)
  • button_cancel(self)
    @api.multi
  • post(self)
    @api.multi

New fields (16)
  • asset_category_id Many2one → account.asset.category
    readonly=True string='Asset category' args: 'account.asset.category'
  • asset_id Many2one → account.asset.asset
    readonly=True string='Asset' args: 'account.asset.asset'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date Date
    readonly=True
  • depreciation_date Date
    readonly=True string='Depreciation Date'
  • depreciation_nbr Integer
    readonly=True string='# of Depreciation Lines'
  • depreciation_value Float
    readonly=True string='Amount of Depreciation Lines'
  • gross_value Float
    readonly=True string='Gross Amount'
  • installment_nbr Integer
    readonly=True string='# of Installment Lines'
  • installment_value Float
    readonly=True string='Amount of Installment Lines'
  • move_check Boolean
    readonly=True string='Posted'
  • name Char
    readonly=True required=False string='Year'
  • partner_id Many2one → res.partner
    readonly=True string='Partner' args: 'res.partner'
  • posted_value Float
    readonly=True string='Posted Amount'
  • state Selection
    readonly=True string='Status' args: [('draft', 'Draft'), ('open', 'Running'), ('close', 'Close')]
  • unposted_value Float
    readonly=True string='Unposted Amount'
Public methods (1)
  • init(self)
    @api.model_cr

New fields (1)
  • date Date
    default=fields.Date.context_today help='Choose the period for which you want to automatically post the depreciation lines of running assets' required=True args: 'Account Date'
Public methods (1)
  • asset_compute(self)
    @api.multi

New fields (5)
  • asset_method_time Char
    compute='_get_asset_method_time' readonly=True string='Asset Method Time'
  • method_end Date
    string='Ending date'
  • method_number Integer
    required=True string='Number of Depreciations'
  • method_period Integer
    string='Period Length'
  • name Text
    required=True string='Reason'
Public methods (3)
  • default_get(self, fields)
    @api.model
  • fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
    @api.model
  • modify(self)
    @api.multi
    Modifies the duration of asset for calculating depreciation and maintains the history of old values, in the chatter.

New fields (2)
  • asset_category_id Many2one → account.asset.category
    company_dependent=True ondelete='restrict' string='Asset Type' args: 'account.asset.category'
  • deferred_revenue_category_id Many2one → account.asset.category
    company_dependent=True ondelete='restrict' string='Deferred Revenue Type' args: 'account.asset.category'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…