From ad3ed4c59c0db1c35367f192dc1282eee06acd9a Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Wed, 6 Jul 2011 14:41:36 +0530 Subject: [PATCH] [FIX] account_asset: Fixed ending date method with any period length. bzr revid: uco@tinyerp.com-20110706091136-egklk5e7qhdzmxwz --- addons/account_asset/account_asset.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index 17a7815c281..a87266ae1c8 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -130,10 +130,9 @@ class account_asset_asset(osv.osv): undone_dotation_number = asset.method_delay if asset.method_time == 'end': end_date = datetime.strptime(asset.method_end, '%Y-%m-%d') - total_days = asset.method_period != 12 and asset.method_period * 30 or total_days - no_of_days = float((end_date - depreciation_date).days) / float(total_days) - undone_dotation_number = (end_date - depreciation_date).days / total_days - if no_of_days - undone_dotation_number > 0.5: + undone_dotation_number = 0 + while depreciation_date <= end_date: + depreciation_date = (datetime(depreciation_date.year, depreciation_date.month, depreciation_date.day) + relativedelta(months=+asset.method_period)) undone_dotation_number += 1 if asset.prorata: undone_dotation_number += 1 @@ -156,6 +155,8 @@ class account_asset_asset(osv.osv): month = depreciation_date.month year = depreciation_date.year total_days = (year % 4) and 365 or 366 + if asset.method_time == 'end': + total_days = asset.method_period != 12 and asset.method_period * 30 or total_days undone_dotation_number = self._compute_board_undone_dotation_nb(cr, uid, asset, depreciation_date, total_days, context=context) for x in range(len(posted_depreciation_line_ids), undone_dotation_number):