From 07ece3d6f717e27a045fe38a719764326c8a5c49 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Fri, 29 May 2015 08:02:10 +0200 Subject: [PATCH 1/5] [IMP][account_asset_management] Define a list of move's fields that can't be modified if a move is linked with a depriciation line --- account_asset_management/account_move.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/account_asset_management/account_move.py b/account_asset_management/account_move.py index db85fc71e..1c65de728 100644 --- a/account_asset_management/account_move.py +++ b/account_asset_management/account_move.py @@ -26,6 +26,10 @@ from openerp.tools.translate import _ import logging _logger = logging.getLogger(__name__) +# List of move's fields that can't be modified if move is linked +# with a depreciation line +FIELDS_AFFETCS_ASSET_MOVE = ['period_id', 'journal_id', 'date'] + class account_move(orm.Model): _inherit = 'account.move' @@ -51,7 +55,7 @@ class account_move(orm.Model): cr, uid, ids, context=context, check=check) def write(self, cr, uid, ids, vals, context=None): - if vals: + if set(vals).intersection(set(FIELDS_AFFETCS_ASSET_MOVE)): if isinstance(ids, (int, long)): ids = [ids] depr_obj = self.pool.get('account.asset.depreciation.line') From e6319983af81818f404111dd616a7ab27b8dd88c Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 1 Jun 2015 17:36:56 +0200 Subject: [PATCH 2/5] [IMP][account_asset_management] Define FIELDS_AFFETCS_ASSET_MOVE as a set directly --- account_asset_management/account_move.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_asset_management/account_move.py b/account_asset_management/account_move.py index 1c65de728..ff97b4f31 100644 --- a/account_asset_management/account_move.py +++ b/account_asset_management/account_move.py @@ -28,7 +28,7 @@ _logger = logging.getLogger(__name__) # List of move's fields that can't be modified if move is linked # with a depreciation line -FIELDS_AFFETCS_ASSET_MOVE = ['period_id', 'journal_id', 'date'] +FIELDS_AFFETCS_ASSET_MOVE = set(['period_id', 'journal_id', 'date']) class account_move(orm.Model): @@ -55,7 +55,7 @@ class account_move(orm.Model): cr, uid, ids, context=context, check=check) def write(self, cr, uid, ids, vals, context=None): - if set(vals).intersection(set(FIELDS_AFFETCS_ASSET_MOVE)): + if set(vals).intersection(FIELDS_AFFETCS_ASSET_MOVE): if isinstance(ids, (int, long)): ids = [ids] depr_obj = self.pool.get('account.asset.depreciation.line') From 962436d225d52d4bd41c1ed4641df9d94c5cb8bf Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Mon, 1 Jun 2015 18:57:18 +0200 Subject: [PATCH 3/5] [IMP][account_asset_management] Typo --- account_asset_management/account_move.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_asset_management/account_move.py b/account_asset_management/account_move.py index ff97b4f31..4fbc7fe1c 100644 --- a/account_asset_management/account_move.py +++ b/account_asset_management/account_move.py @@ -28,7 +28,7 @@ _logger = logging.getLogger(__name__) # List of move's fields that can't be modified if move is linked # with a depreciation line -FIELDS_AFFETCS_ASSET_MOVE = set(['period_id', 'journal_id', 'date']) +FIELDS_AFFECTS_ASSET_MOVE = set(['period_id', 'journal_id', 'date']) class account_move(orm.Model): @@ -55,7 +55,7 @@ class account_move(orm.Model): cr, uid, ids, context=context, check=check) def write(self, cr, uid, ids, vals, context=None): - if set(vals).intersection(FIELDS_AFFETCS_ASSET_MOVE): + if set(vals).intersection(FIELDS_AFFECTS_ASSET_MOVE): if isinstance(ids, (int, long)): ids = [ids] depr_obj = self.pool.get('account.asset.depreciation.line') From 9defad9c4ae2e49a0ba2a220c773b555da1bf598 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Tue, 2 Jun 2015 11:57:59 +0200 Subject: [PATCH 4/5] [ADD][account_asset_management] Add check on account move line --- account_asset_management/account_move.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/account_asset_management/account_move.py b/account_asset_management/account_move.py index 4fbc7fe1c..47c3509ff 100644 --- a/account_asset_management/account_move.py +++ b/account_asset_management/account_move.py @@ -29,6 +29,10 @@ _logger = logging.getLogger(__name__) # List of move's fields that can't be modified if move is linked # with a depreciation line FIELDS_AFFECTS_ASSET_MOVE = set(['period_id', 'journal_id', 'date']) +# List of move line's fields that can't be modified if move is linked +# with a depreciation line +FIELDS_AFFECTS_ASSET_MOVE_LINE = \ + set(['credit', 'debit', 'account_id', 'journal_id', 'date']) class account_move(orm.Model): @@ -128,6 +132,13 @@ class account_move_line(orm.Model): def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True): + for move_line in self.browse(cr, uid, ids, context=context): + if move_line.asset_id.id: + if set(vals).intersection(FIELDS_AFFECTS_ASSET_MOVE_LINE): + raise orm.except_orm( + _('Error!'), + _("You cannot change an accounting item " + "linked to an asset depreciation line.")) if vals.get('asset_id'): raise orm.except_orm( _('Error!'), From 3289e35074599326dce41982f8edd0094a34bc81 Mon Sep 17 00:00:00 2001 From: "Adrien Peiffer (ACSONE)" Date: Tue, 2 Jun 2015 17:16:27 +0200 Subject: [PATCH 5/5] [FIX][account_asset_management] Add items on affects fields list --- account_asset_management/account_move.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/account_asset_management/account_move.py b/account_asset_management/account_move.py index 47c3509ff..9f4b536c3 100644 --- a/account_asset_management/account_move.py +++ b/account_asset_management/account_move.py @@ -32,7 +32,8 @@ FIELDS_AFFECTS_ASSET_MOVE = set(['period_id', 'journal_id', 'date']) # List of move line's fields that can't be modified if move is linked # with a depreciation line FIELDS_AFFECTS_ASSET_MOVE_LINE = \ - set(['credit', 'debit', 'account_id', 'journal_id', 'date']) + set(['credit', 'debit', 'account_id', 'journal_id', 'date', + 'asset_category_id', 'asset_id', 'tax_code_id', 'tax_amount']) class account_move(orm.Model):