diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index 3a4e10740ec..0fed9f239c4 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -112,6 +112,13 @@ class account_asset_asset(osv.osv): amount = (amount_to_depr / asset.method_number) / total_days * (total_days - days) elif asset.method == 'degressive': amount = residual_amount * asset.method_progress_factor + #TODO: calculations need to be checked + if asset.prorata: + days = total_days - float(depreciation_date.strftime('%j')) + if i == 1: + amount = (residual_amount * asset.method_progress_factor) / total_days * days + elif i == undone_dotation_number: + amount = (residual_amount * asset.method_progress_factor) / total_days * (total_days - days) return amount def _compute_board_undone_dotation_nb(self, cr, uid, asset, depreciation_date, total_days, context=None): @@ -242,13 +249,13 @@ class account_asset_asset(osv.osv): def _check_prorata(self, cr, uid, ids, context=None): for asset in self.browse(cr, uid, ids, context=context): - if asset.prorata and (asset.method != 'linear' or asset.method_time != 'number'): + if asset.prorata and asset.method_time != 'number': return False return True _constraints = [ (_check_recursion, 'Error ! You can not create recursive assets.', ['parent_id']), - (_check_prorata, 'Prorata temporis can be applied only for computation method "linear" and time method "number of depreciations".', ['prorata']), + (_check_prorata, 'Prorata temporis can be applied only for time method "number of depreciations".', ['prorata']), ] def onchange_category_id(self, cr, uid, ids, category_id, context=None): @@ -267,9 +274,9 @@ class account_asset_asset(osv.osv): } return res - def onchange_method_time(self, cr, uid, ids, method='linear', method_time='number', context=None): + def onchange_method_time(self, cr, uid, ids, method_time='number', context=None): res = {'value': {}} - if method != 'linear' or method_time != 'number': + if method_time != 'number': res['value'] = {'prorata': False} return res diff --git a/addons/account_asset/account_asset_view.xml b/addons/account_asset/account_asset_view.xml index f9bbf551330..1cf76e5c6b5 100644 --- a/addons/account_asset/account_asset_view.xml +++ b/addons/account_asset/account_asset_view.xml @@ -29,7 +29,7 @@ - + @@ -109,9 +109,9 @@ - + - +