From 081f6e80ffa42f47091497740190d809708fadcd Mon Sep 17 00:00:00 2001 From: luc-demeyer Date: Tue, 2 Jun 2015 10:55:44 +0200 Subject: [PATCH] analytic enhancement --- account_asset_management/__openerp__.py | 4 ++-- account_asset_management/account_asset.py | 9 +++++++-- account_asset_management/account_asset_invoice_view.xml | 7 ++++--- account_asset_management/account_asset_view.xml | 5 +++-- account_asset_management/wizard/account_asset_remove.py | 9 ++++++--- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/account_asset_management/__openerp__.py b/account_asset_management/__openerp__.py index 28ee6dddd..aa27c5e9d 100644 --- a/account_asset_management/__openerp__.py +++ b/account_asset_management/__openerp__.py @@ -4,7 +4,7 @@ # OpenERP, Open Source Management Solution # # Copyright (C) 2010-2012 OpenERP s.a. (). -# Copyright (c) 2014 Noviat nv/sa (www.noviat.com). All rights reserved. +# Copyright (c) 2014-2015 Noviat nv/sa (www.noviat.com). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -22,7 +22,7 @@ ############################################################################## { 'name': 'Assets Management', - 'version': '2.4', + 'version': '2.6', 'depends': ['account'], 'conflicts': ['account_asset'], 'author': "OpenERP & Noviat,Odoo Community Association (OCA)", diff --git a/account_asset_management/account_asset.py b/account_asset_management/account_asset.py index 63c5c54f6..e29db3017 100644 --- a/account_asset_management/account_asset.py +++ b/account_asset_management/account_asset.py @@ -68,7 +68,8 @@ class account_asset_category(orm.Model): 'name': fields.char('Name', size=64, required=True, select=1), 'note': fields.text('Note'), 'account_analytic_id': fields.many2one( - 'account.analytic.account', 'Analytic account'), + 'account.analytic.account', 'Analytic account', + domain=[('type', '!=', 'view')]), 'account_asset_id': fields.many2one( 'account.account', 'Asset Account', required=True, domain=[('type', '=', 'other')]), @@ -1100,6 +1101,9 @@ class account_asset_asset(orm.Model): type='many2one', relation='res.currency', store=True, readonly=True,), + 'account_analytic_id': fields.many2one( + 'account.analytic.account', 'Analytic account', + domain=[('type', '!=', 'view')]), } _defaults = { @@ -1172,6 +1176,7 @@ class account_asset_asset(orm.Model): 'method_period': category_obj.method_period, 'method_progress_factor': category_obj.method_progress_factor, 'prorata': category_obj.prorata, + 'account_analytic_id': category_obj.account_analytic_id.id, } return res @@ -1575,7 +1580,7 @@ class account_asset_depreciation_line(orm.Model): elif type == 'expense': debit = amount > 0 and amount or 0.0 credit = amount < 0 and -amount or 0.0 - analytic_id = asset.category_id.account_analytic_id.id + analytic_id = asset.account_analytic_id.id move_line_data = { 'name': asset.name, 'ref': depreciation_line.name, diff --git a/account_asset_management/account_asset_invoice_view.xml b/account_asset_management/account_asset_invoice_view.xml index 5704c487a..538a8b5dc 100644 --- a/account_asset_management/account_asset_invoice_view.xml +++ b/account_asset_management/account_asset_invoice_view.xml @@ -3,12 +3,13 @@ - account.invoice.line.form + account.invoice.form.add.asset_category account.invoice.line - - + + + diff --git a/account_asset_management/account_asset_view.xml b/account_asset_management/account_asset_view.xml index e364df883..8ba46de57 100644 --- a/account_asset_management/account_asset_view.xml +++ b/account_asset_management/account_asset_view.xml @@ -11,7 +11,7 @@ - + @@ -126,8 +126,9 @@ - + + diff --git a/account_asset_management/wizard/account_asset_remove.py b/account_asset_management/wizard/account_asset_remove.py index b48b63e5a..f3085fe73 100644 --- a/account_asset_management/wizard/account_asset_remove.py +++ b/account_asset_management/wizard/account_asset_remove.py @@ -239,6 +239,7 @@ class account_asset_remove(orm.TransientModel): move_line_vals = { 'name': asset.name, 'account_id': wiz_data.account_residual_value_id.id, + 'analytic_account_id': asset.account_analytic_id.id, 'debit': residual_value, 'credit': 0.0, 'partner_id': partner_id, @@ -251,6 +252,7 @@ class account_asset_remove(orm.TransientModel): move_line_vals = { 'name': asset.name, 'account_id': wiz_data.account_sale_id.id, + 'analytic_account_id': asset.account_analytic_id.id, 'debit': sale_value, 'credit': 0.0, 'partner_id': partner_id, @@ -258,12 +260,13 @@ class account_asset_remove(orm.TransientModel): } move_lines.append((0, 0, move_line_vals)) balance = wiz_data.sale_value - residual_value - account_id = balance > 0 \ - and wiz_data.account_plus_value_id.id \ - or wiz_data.account_min_value_id.id + account_id = (wiz_data.account_plus_value_id.id + if balance > 0 + else wiz_data.account_min_value_id.id) move_line_vals = { 'name': asset.name, 'account_id': account_id, + 'analytic_account_id': asset.account_analytic_id.id, 'debit': balance < 0 and -balance or 0.0, 'credit': balance > 0 and balance or 0.0, 'partner_id': partner_id,