6d428fa582
It does not make sense that you cannot remove an asset where the time method used is not based on number of years or end date. If you choose, for example, to depreciate the asset using the time method 'Number of depreciations' you will want to remove the asset when it has been fully depreciated.
401 lines
19 KiB
XML
401 lines
19 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<odoo>
|
|
<record model="ir.ui.view" id="account_asset_view_form">
|
|
<field name="name">account.asset.form</field>
|
|
<field name="model">account.asset</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Asset">
|
|
<header>
|
|
<button
|
|
name="validate"
|
|
string="Confirm Asset"
|
|
type="object"
|
|
class="oe_highlight"
|
|
attrs="{'invisible': [('state', '!=', 'draft')]}"
|
|
/>
|
|
<button
|
|
name="set_to_draft"
|
|
states="open,close"
|
|
string="Set to Draft"
|
|
type="object"
|
|
groups="account.group_account_manager"
|
|
/>
|
|
<button
|
|
name="remove"
|
|
string="Remove"
|
|
type="object"
|
|
groups="account.group_account_manager"
|
|
attrs="{'invisible':[('state', 'not in', ['open', 'close'])]}"
|
|
help="Asset removal."
|
|
/>
|
|
<field
|
|
name="state"
|
|
widget="statusbar"
|
|
statusbar_visible="draft,open,close,removed"
|
|
/>
|
|
</header>
|
|
<sheet>
|
|
<widget
|
|
name="web_ribbon"
|
|
title="Archived"
|
|
bg_color="bg-danger"
|
|
attrs="{'invisible': [('active', '=', True)]}"
|
|
/>
|
|
<div class="oe_button_box" name="button_box">
|
|
<button
|
|
name="open_entries"
|
|
string="Journal Entries"
|
|
type="object"
|
|
class="oe_stat_button"
|
|
icon="fa-bars"
|
|
/>
|
|
</div>
|
|
<div class="oe_title">
|
|
<label for="name" class="oe_edit_only" />
|
|
<h1>
|
|
<field name="name" class="oe_inline" />
|
|
</h1>
|
|
</div>
|
|
<group col="4">
|
|
<field name="code" />
|
|
<field
|
|
name="company_id"
|
|
widget="selection"
|
|
groups="base.group_multi_company"
|
|
/>
|
|
<field
|
|
name="company_currency_id"
|
|
groups="base.group_multi_currency"
|
|
invisible="1"
|
|
/>
|
|
<field name="move_line_check" invisible="1" />
|
|
<newline />
|
|
<field
|
|
name="depreciation_base"
|
|
widget="monetary"
|
|
options="{'currency_field': 'company_currency_id'}"
|
|
/>
|
|
<field
|
|
name="value_depreciated"
|
|
widget="monetary"
|
|
options="{'currency_field': 'company_currency_id'}"
|
|
/>
|
|
<field
|
|
name="value_residual"
|
|
widget="monetary"
|
|
options="{'currency_field': 'company_currency_id'}"
|
|
/>
|
|
<field name="active" invisible="1" />
|
|
</group>
|
|
<notebook colspan="4">
|
|
<page string="General">
|
|
<group>
|
|
<group>
|
|
<field
|
|
name="purchase_value"
|
|
widget="monetary"
|
|
options="{'currency_field': 'currency_id'}"
|
|
attrs="{'readonly':['|', ('move_line_check', '=', True), ('state', '!=', 'draft')]}"
|
|
/>
|
|
<field
|
|
name="date_start"
|
|
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
|
/>
|
|
</group>
|
|
<group>
|
|
<field
|
|
name="salvage_value"
|
|
widget="monetary"
|
|
options="{'currency_field': 'company_currency_id'}"
|
|
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
|
/>
|
|
<field name="date_remove" />
|
|
</group>
|
|
</group>
|
|
<group col="4" string="Other Information">
|
|
<field name="profile_id" />
|
|
<field name="group_ids" widget="many2many_tags" />
|
|
<field name="partner_id" />
|
|
<field
|
|
name="account_analytic_id"
|
|
groups="analytic.group_analytic_accounting"
|
|
/>
|
|
<field
|
|
name="analytic_tag_ids"
|
|
groups="analytic.group_analytic_tags"
|
|
widget="many2many_tags"
|
|
/>
|
|
</group>
|
|
<group>
|
|
<group string="Depreciation Dates">
|
|
<field name="method_time" required="1" />
|
|
<field
|
|
name="method_number"
|
|
attrs="{'invisible': [('method_time', 'not in', ['number', 'year'])], 'required': [('method_time', 'in', ['number', 'year'])]}"
|
|
/>
|
|
<field name="method_period" required="1" />
|
|
<field
|
|
name="method_end"
|
|
attrs="{'required': [('method_time', '=', 'end')], 'invisible': [('method_time', 'in', ['number'])]}"
|
|
/>
|
|
<field name="days_calc" />
|
|
<field
|
|
name="use_leap_years"
|
|
attrs="{'invisible': [('days_calc', '=', True)]}"
|
|
/>
|
|
</group>
|
|
<group string="Depreciation Method">
|
|
<field name="method" required="1" />
|
|
<field
|
|
name="method_progress_factor"
|
|
attrs="{'invisible': [('method', 'in', ['linear', 'linear-limit'])], 'required': [('method', 'in', ['degressive', 'degr-linear', 'degr-limit'])]}"
|
|
/>
|
|
<field
|
|
name="prorata"
|
|
attrs="{'readonly': [('method_time', '!=', 'year')]}"
|
|
/>
|
|
</group>
|
|
</group>
|
|
</page>
|
|
<page string="Depreciation Board">
|
|
<div>
|
|
<button
|
|
type="object"
|
|
name="compute_depreciation_board"
|
|
string="Compute"
|
|
icon="fa-gears"
|
|
attrs="{'invisible': [('state', 'in', ['close', 'removed'])]}"
|
|
/>
|
|
</div>
|
|
<field
|
|
name="depreciation_line_ids"
|
|
mode="tree"
|
|
options="{'reload_on_button': true}"
|
|
>
|
|
<tree
|
|
string="Asset Lines"
|
|
decoration-info="(move_check == False) and (init_entry == False)"
|
|
create="false"
|
|
>
|
|
<field name="type" />
|
|
<field name="line_date" />
|
|
<field name="line_days" sum="Total Days" />
|
|
<field name="depreciated_value" readonly="1" />
|
|
<field name="amount" />
|
|
<field name="remaining_value" readonly="1" />
|
|
<field name="init_entry" string="Init" />
|
|
<field name="move_check" />
|
|
<field name="parent_state" invisible="1" />
|
|
<button
|
|
name="create_move"
|
|
icon="fa-cog"
|
|
string="Create Move"
|
|
type="object"
|
|
attrs="{'invisible': ['|', '|', ('init_entry', '=', True), ('move_check', '!=', False), ('parent_state', '!=', 'open')]}"
|
|
/>
|
|
<button
|
|
name="open_move"
|
|
icon="fa-folder-open-o"
|
|
string="View Move"
|
|
type="object"
|
|
attrs="{'invisible': [('move_check', '!=', True)]}"
|
|
/>
|
|
<button
|
|
name="unlink_move"
|
|
icon="fa-times"
|
|
string="Delete Move"
|
|
type="object"
|
|
confirm="Are you sure ?"
|
|
groups="account.group_account_manager"
|
|
attrs="{'invisible': [('move_check', '!=', True)]}"
|
|
/>
|
|
</tree>
|
|
<form string="Asset Line">
|
|
<group>
|
|
<group>
|
|
<field name="parent_state" invisible="1" />
|
|
<field
|
|
name="depreciation_base"
|
|
invisible="1"
|
|
/>
|
|
<field name="type" />
|
|
<field name="name" />
|
|
<field
|
|
name="amount"
|
|
attrs="{'readonly': [('move_check', '=', True)]}"
|
|
/>
|
|
<field
|
|
name="init_entry"
|
|
attrs="{'readonly': ['|', ('move_check', '=', True), ('type', '=', 'create')]}"
|
|
/>
|
|
<field name="move_id" />
|
|
<field name="move_check" />
|
|
</group>
|
|
<group>
|
|
<field
|
|
name="line_date"
|
|
attrs="{'readonly': [('move_check', '=', True)]}"
|
|
/>
|
|
<field
|
|
name="depreciated_value"
|
|
readonly="1"
|
|
/>
|
|
<field
|
|
name="remaining_value"
|
|
readonly="1"
|
|
/>
|
|
</group>
|
|
</group>
|
|
</form>
|
|
</field>
|
|
</page>
|
|
<page string="History">
|
|
<field name="account_move_line_ids" readonly="1">
|
|
<tree string="Journal Items">
|
|
<field name="date" />
|
|
<field name="move_id" />
|
|
<field name="journal_id" optional="show" />
|
|
<field name="account_id" />
|
|
<field name="partner_id" optional="show" />
|
|
<field
|
|
name="analytic_account_id"
|
|
groups="analytic.group_analytic_accounting"
|
|
optional="show"
|
|
/>
|
|
<field name="ref" />
|
|
<field name="name" optional="hide" />
|
|
<field name="debit" sum="1" />
|
|
<field name="credit" sum="1" />
|
|
</tree>
|
|
</field>
|
|
</page>
|
|
<page string="Notes">
|
|
<field
|
|
name="note"
|
|
placeholder="Add an internal note here..."
|
|
/>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
<record model="ir.ui.view" id="account_asset_view_tree">
|
|
<field name="name">account.asset.tree</field>
|
|
<field name="model">account.asset</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Assets">
|
|
<field name="name" />
|
|
<field name="code" optional="show" />
|
|
<field name="depreciation_base" optional="show" />
|
|
<field name="value_depreciated" optional="show" />
|
|
<field name="value_residual" optional="show" />
|
|
<field name="date_start" optional="show" />
|
|
<field name="date_remove" optional="show" />
|
|
<field name="profile_id" optional="show" />
|
|
<field name="account_analytic_id" optional="hide" />
|
|
<field name="method" optional="hide" />
|
|
<field name="prorata" optional="hide" />
|
|
<field name="group_ids" widget="many2many_tags" optional="hide" />
|
|
<field
|
|
name="company_id"
|
|
groups="base.group_multi_company"
|
|
optional="show"
|
|
/>
|
|
<field
|
|
name="state"
|
|
widget="badge"
|
|
decoration-success="state == 'open'"
|
|
decoration-warning="state == 'removed'"
|
|
decoration-info="state == 'draft'"
|
|
decoration-muted="state == 'close'"
|
|
/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
<record id="account_asset_view_search" model="ir.ui.view">
|
|
<field name="name">account.asset.search</field>
|
|
<field name="model">account.asset</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Account Asset">
|
|
<filter
|
|
string="Draft"
|
|
name="draft"
|
|
domain="[('state', '=', 'draft')]"
|
|
/>
|
|
<filter
|
|
string="Running"
|
|
name="running"
|
|
domain="[('state', '=', 'open')]"
|
|
/>
|
|
<filter
|
|
string="Close"
|
|
name="close"
|
|
domain="[('state', '=', 'close')]"
|
|
/>
|
|
<filter
|
|
string="Removed"
|
|
name="removed"
|
|
domain="[('state', '=', 'removed')]"
|
|
/>
|
|
<separator />
|
|
<filter
|
|
string="Archived"
|
|
name="inactive"
|
|
domain="[('active', '=', False)]"
|
|
/>
|
|
<separator />
|
|
<field name="name" />
|
|
<field name="code" />
|
|
<field name="date_start" />
|
|
<field name="profile_id" />
|
|
<field name="group_ids" />
|
|
<field
|
|
name="partner_id"
|
|
filter_domain="[('partner_id', 'child_of', self)]"
|
|
/>
|
|
<group name="groupby">
|
|
<filter
|
|
string="Profile"
|
|
name="profile"
|
|
domain=""
|
|
context="{'group_by': 'profile_id'}"
|
|
/>
|
|
<filter
|
|
string="Status"
|
|
name="state_groupby"
|
|
domain=""
|
|
context="{'group_by': 'state'}"
|
|
/>
|
|
<filter
|
|
string="Analytic account"
|
|
name="account_analytic_groupby"
|
|
domain=""
|
|
context="{'group_by': 'account_analytic_id'}"
|
|
/>
|
|
<filter
|
|
string="Computation Method"
|
|
name="method_groupby"
|
|
domain=""
|
|
context="{'group_by': 'method'}"
|
|
/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
<record id="account_asset_action" model="ir.actions.act_window">
|
|
<field name="name">Assets</field>
|
|
<field name="res_model">account.asset</field>
|
|
<field name="view_mode">tree,form</field>
|
|
</record>
|
|
<record id="act_entries_open" model="ir.actions.act_window">
|
|
<field name="name">Journal Items</field>
|
|
<field name="binding_model_id" ref="model_account_asset" />
|
|
<field name="binding_view_types">form</field>
|
|
<field name="res_model">account.move.line</field>
|
|
<field
|
|
name="domain"
|
|
>['|',('asset_id','in',context.get('active_ids')),('asset_id','=','active_id')]</field>
|
|
</record>
|
|
</odoo>
|