diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index 63cfe638d0d..e14076000f7 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -286,8 +286,53 @@ class account_asset_depreciation_line(osv.osv): 'remaining_value': fields.float('Amount to Depreciate', required=True), 'depreciated_value': fields.float('Amount Already Depreciated', required=True), 'depreciation_date': fields.char('Depreciation Date', size=64, select=1), - 'move_line_id': fields.many2one('account.move.line', 'Depreciation Entry'), + 'move_id': fields.many2one('account.move', 'Depreciation Entry'), } + + def create_move(self, cr, uid,ids, context=None): + asset_obj = self.pool.get('account.asset.asset') + period_obj = self.pool.get('account.period') + move_obj = self.pool.get('account.move') + move_line_obj = self.pool.get('account.move.line') + for line in self.browse(cr, uid, ids, context=context): + depreciation_date = asset_obj._get_last_depreciation_date(cr, uid, [line.asset_id.id], context=context)[line.asset_id.id] + period_ids = period_obj.find(cr, uid, depreciation_date, context=context) + move_vals = { + 'name': line.name, + 'date': depreciation_date, + 'period_id': period_ids and period_ids[0] or False, + 'journal_id': line.asset_id.category_id.journal_id.id, + } + move_id = move_obj.create(cr, uid, move_vals, context=context) + move_line_obj.create(cr, uid, { + 'name': line.name, + 'move_id': move_id, + 'account_id': line.asset_id.category_id.account_expense_depreciation_id.id, + 'debit': 0.0, + 'credit': line.amount, + 'period_id': period_ids and period_ids[0] or False, + 'journal_id': line.asset_id.category_id.journal_id.id, + 'partner_id': line.asset_id.partner_id.id, + 'currency_id': line.asset_id.currency_id.id, + 'analytic_account_id': line.asset_id.category_id.account_analytic_id.id, + 'date': depreciation_date, + }) + move_line_obj.create(cr, uid, { + 'name': line.name, + 'move_id': move_id, + 'account_id': line.asset_id.category_id.account_depreciation_id.id, + 'credit': 0.0, + 'debit': line.amount, + 'period_id': period_ids and period_ids[0] or False, + 'journal_id': line.asset_id.category_id.journal_id.id, + 'partner_id': line.asset_id.partner_id.id, + 'currency_id': line.asset_id.currency_id.id, + 'analytic_account_id': line.asset_id.category_id.account_analytic_id.id, + 'date': depreciation_date, + }) + self.write(cr, uid, line.id, {'move_id': move_id}, context=context) + return True + account_asset_depreciation_line() #class account_asset_property(osv.osv): diff --git a/addons/account_asset/account_asset_view.xml b/addons/account_asset/account_asset_view.xml index ab9f9ff3a3c..2e64ecc464b 100644 --- a/addons/account_asset/account_asset_view.xml +++ b/addons/account_asset/account_asset_view.xml @@ -88,8 +88,8 @@ - -