Skip to content

Fixed Asset Type Documentation

Overview

The Fixed Asset Type module (account.fixed.asset.type) defines categories for fixed assets with standardized depreciation settings and account mappings. Asset types ensure consistency when creating assets by providing default depreciation rates, methods, and GL accounts, streamlining asset management and ensuring proper accounting treatment for each asset category.


Model Information

Model Name: account.fixed.asset.type Display Name: Asset Type Name Field: name Key Fields: code (unique type code) Default Sort Order: Default (by ID)

Features

  • ✅ Unique type codes
  • ✅ Depreciation rate defaults
  • ✅ Depreciation method configuration
  • ✅ Account mapping templates
  • ✅ Reusable asset categories

Key Fields Reference

Core Fields

Field Type Required Description
name Char Type name (e.g., "Computers", "Vehicles")
code Char Unique type code (e.g., "COMP", "VEH")
description Text Type description and notes

Depreciation Settings

Field Type Description
dep_rate Decimal Default depreciation rate (%)
dep_method Selection Straight Line or Declining Balance

Depreciation Methods

Value Description Use Case
line Straight-Line Even depreciation over life
decline Declining Balance Accelerated depreciation

Account Mappings

Field Type Description
fixed_asset_account_id Many2One Fixed asset GL account
accum_dep_account_id Many2One Accumulated depreciation account
dep_exp_account_id Many2One Depreciation expense account

API Methods

1. Create Asset Type

Method: create(vals, context)

Creates new asset type with unique code.

Example:

type_id = get_model("account.fixed.asset.type").create({
    "name": "Computer Equipment",
    "code": "COMP",
    "dep_rate": 33.33,  # 3-year life
    "dep_method": "line",
    "fixed_asset_account_id": computer_asset_account_id,
    "accum_dep_account_id": accum_dep_computer_id,
    "dep_exp_account_id": dep_exp_computer_id,
    "description": "Desktop computers, laptops, servers"
})


Common Use Cases

Use Case 1: Standard Asset Types Setup

# Computer Equipment (3-year life, straight-line)
comp_type_id = get_model("account.fixed.asset.type").create({
    "name": "Computer Equipment",
    "code": "COMP",
    "dep_rate": 33.33,
    "dep_method": "line",
    "fixed_asset_account_id": 1510,  # Fixed Assets - Computers
    "accum_dep_account_id": 1520,    # Accum. Dep. - Computers
    "dep_exp_account_id": 6200,       # Depreciation Expense
    "description": "Computers, laptops, servers, peripherals"
})

# Vehicles (5-year life, declining balance)
vehicle_type_id = get_model("account.fixed.asset.type").create({
    "name": "Vehicles",
    "code": "VEH",
    "dep_rate": 30.0,
    "dep_method": "decline",
    "fixed_asset_account_id": 1530,  # Fixed Assets - Vehicles
    "accum_dep_account_id": 1540,    # Accum. Dep. - Vehicles
    "dep_exp_account_id": 6200,       # Depreciation Expense
    "description": "Cars, trucks, motorcycles"
})

# Furniture (10-year life, straight-line)
furniture_type_id = get_model("account.fixed.asset.type").create({
    "name": "Furniture & Fixtures",
    "code": "FURN",
    "dep_rate": 10.0,
    "dep_method": "line",
    "fixed_asset_account_id": 1550,  # Fixed Assets - Furniture
    "accum_dep_account_id": 1560,    # Accum. Dep. - Furniture
    "dep_exp_account_id": 6200,       # Depreciation Expense
    "description": "Office furniture, fixtures, fittings"
})

# Machinery (7-year life, straight-line)
machinery_type_id = get_model("account.fixed.asset.type").create({
    "name": "Machinery & Equipment",
    "code": "MACH",
    "dep_rate": 14.29,  # 100% / 7 years
    "dep_method": "line",
    "fixed_asset_account_id": 1570,  # Fixed Assets - Machinery
    "accum_dep_account_id": 1580,    # Accum. Dep. - Machinery
    "dep_exp_account_id": 6200,       # Depreciation Expense
    "description": "Manufacturing equipment, tools"
})

# Buildings (20-year life, straight-line)
building_type_id = get_model("account.fixed.asset.type").create({
    "name": "Buildings",
    "code": "BLDG",
    "dep_rate": 5.0,
    "dep_method": "line",
    "fixed_asset_account_id": 1590,  # Fixed Assets - Buildings
    "accum_dep_account_id": 1595,    # Accum. Dep. - Buildings
    "dep_exp_account_id": 6200,       # Depreciation Expense
    "description": "Office buildings, warehouses, factories"
})

print("✓ Standard asset types created")

Use Case 2: Create Asset Using Type

# Get asset type
comp_type = get_model("account.fixed.asset.type").search_browse([
    ["code", "=", "COMP"]
])[0]

# Create asset - type auto-fills settings
asset_id = get_model("account.fixed.asset").create({
    "name": "MacBook Pro 16\"",
    "date_purchase": "2025-01-15",
    "price_purchase": 85000.00,
    "type_id": comp_type.id
    # Auto-filled from type:
    # - dep_rate: 33.33%
    # - dep_method: line
    # - fixed_asset_account_id
    # - accum_dep_account_id
    # - dep_exp_account_id
})

print("✓ Asset created with type defaults")

Use Case 3: List Asset Types

# Get all asset types
types = get_model("account.fixed.asset.type").search_browse([], order="code")

print("ASSET TYPES")
print("=" * 80)
print(f"{'Code':10} {'Name':30} {'Rate':>8} {'Method':15}")
print("-" * 80)

for type in types:
    method = "Straight-Line" if type.dep_method == "line" else "Declining Bal."
    print(f"{type.code:10} {type.name[:30]:30} {type.dep_rate:>7.2f}% {method:15}")

print("=" * 80)

Use Case 4: Update Type Settings

# Change depreciation rate for all computers
comp_type = get_model("account.fixed.asset.type").search_browse([
    ["code", "=", "COMP"]
])[0]

comp_type.write({
    "dep_rate": 25.0  # Change from 3-year to 4-year life
})

print("✓ Updated computer depreciation to 4-year life")
# Note: Only affects new assets, not existing ones

Use Case 5: Asset Type with Multiple Variations

# Create specific vehicle types
sedan_type_id = get_model("account.fixed.asset.type").create({
    "name": "Vehicles - Sedans",
    "code": "VEH-SED",
    "dep_rate": 25.0,  # 4-year life
    "dep_method": "decline",
    "fixed_asset_account_id": vehicle_account_id,
    "accum_dep_account_id": accum_dep_vehicle_id,
    "dep_exp_account_id": dep_exp_id,
    "description": "Passenger sedans for sales staff"
})

truck_type_id = get_model("account.fixed.asset.type").create({
    "name": "Vehicles - Trucks",
    "code": "VEH-TRK",
    "dep_rate": 20.0,  # 5-year life
    "dep_method": "line",
    "fixed_asset_account_id": vehicle_account_id,
    "accum_dep_account_id": accum_dep_vehicle_id,
    "dep_exp_account_id": dep_exp_id,
    "description": "Delivery trucks and work vehicles"
})

print("✓ Created specialized vehicle types")

Best Practices

1. Use Meaningful Codes

# Good: Clear, hierarchical codes
"COMP"        # Computer Equipment
"COMP-LAP"    # Laptops
"COMP-SRV"    # Servers
"VEH-CAR"     # Cars
"VEH-TRK"     # Trucks

# Avoid: Cryptic codes
"TYPE1"
"AST-A"
"X123"

2. Align with Tax Regulations

# Set rates based on tax depreciation schedules
{
    "name": "Computer Equipment",
    "dep_rate": 33.33,  # Matches tax code for 3-year property
    "dep_method": "line"
}

3. Separate Accounts by Type

# Good: Dedicated accounts per type
{
    "name": "Computers",
    "fixed_asset_account_id": 1510,      # Computers
    "accum_dep_account_id": 1520,        # Accum Dep - Computers
}

{
    "name": "Vehicles",
    "fixed_asset_account_id": 1530,      # Vehicles
    "accum_dep_account_id": 1540,        # Accum Dep - Vehicles
}

# Enables separate reporting by asset class

4. Document Type Usage

{
    "name": "Manufacturing Equipment",
    "code": "MFG-EQ",
    "description": "Production machinery, assembly equipment, " +
                   "testing devices. Does not include hand tools " +
                   "under $5,000 (expense immediately)."
}

Common Asset Type Examples

Technology Assets (Fast Depreciation)

{
    "name": "Computer Equipment",
    "dep_rate": 33.33,  # 3 years
    "dep_method": "line"
}

{
    "name": "Software",
    "dep_rate": 33.33,  # 3 years
    "dep_method": "line"
}

Office Assets (Medium Depreciation)

{
    "name": "Furniture",
    "dep_rate": 10.0,  # 10 years
    "dep_method": "line"
}

{
    "name": "Office Equipment",
    "dep_rate": 20.0,  # 5 years
    "dep_method": "line"
}

Long-Term Assets (Slow Depreciation)

{
    "name": "Buildings",
    "dep_rate": 2.5,  # 40 years
    "dep_method": "line"
}

{
    "name": "Leasehold Improvements",
    "dep_rate": 10.0,  # 10 years or lease term
    "dep_method": "line"
}

Accelerated Depreciation

{
    "name": "Vehicles",
    "dep_rate": 30.0,
    "dep_method": "decline"  # Front-loaded depreciation
}

{
    "name": "Manufacturing Equipment",
    "dep_rate": 25.0,
    "dep_method": "decline"
}

Typical Depreciation Rates by Asset Class

Asset Class Useful Life Annual Rate Method
Land N/A 0% Not depreciated
Buildings 20-40 years 2.5-5% Straight-line
Leasehold Improvements 10-15 years 6.67-10% Straight-line
Machinery 5-10 years 10-20% Straight-line or Declining
Vehicles 4-5 years 20-25% Declining balance
Furniture 7-10 years 10-14.29% Straight-line
Computer Equipment 3-5 years 20-33.33% Straight-line
Software 3 years 33.33% Straight-line
Small Tools 3 years 33.33% Straight-line

Database Constraints

Unique Constraint

  • code: Asset type code must be unique

Model Relationship Description
account.fixed.asset One2Many Assets using this type
account.account Many2One GL accounts for assets/depreciation

Version History

Last Updated: 2025-12-16 Model Version: account_fixed_asset_type.py Framework: Netforce


Additional Resources

  • Fixed Asset Documentation: account.fixed.asset
  • Account Documentation: account.account

This documentation is generated for developer onboarding and reference purposes.