[IMP] account_asset: Improved create_move method
bzr revid: pso@tinyerp.com-20110512134420-joc4keo8jtjbklqp
This commit is contained in:
parent
ca431c8f68
commit
9c2ab087ca
|
@ -1,6 +1,6 @@
|
||||||
# -*- encoding: utf-8 -*-
|
# -*- encoding: utf-8 -*-
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
# OpenERP, Open Source Management Solution
|
# OpenERP, Open Source Management Solution
|
||||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||||
#
|
#
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ account_asset_category()
|
||||||
# #compute depreciation board
|
# #compute depreciation board
|
||||||
# depreciation_line_ids = obj.pool.get('account.asset.asset').compute_depreciation_board(cr, user, ids, context=context)
|
# depreciation_line_ids = obj.pool.get('account.asset.asset').compute_depreciation_board(cr, user, ids, context=context)
|
||||||
# for key, value in depreciation_line_ids.items():
|
# for key, value in depreciation_line_ids.items():
|
||||||
# #write values on asset
|
# #write values on asset
|
||||||
# obj.pool.get(self._obj).write(cr, user, key, {'depreciation_line_ids': [6,0,value]})
|
# obj.pool.get(self._obj).write(cr, user, key, {'depreciation_line_ids': [6,0,value]})
|
||||||
# return depreciation_line_ids
|
# return depreciation_line_ids
|
||||||
|
|
||||||
|
@ -103,14 +103,14 @@ class account_asset_asset(osv.osv):
|
||||||
amount = residual_amount * asset.method_progress_factor
|
amount = residual_amount * asset.method_progress_factor
|
||||||
residual_amount -= amount
|
residual_amount -= amount
|
||||||
vals = {
|
vals = {
|
||||||
'amount': amount,
|
'amount': amount,
|
||||||
'asset_id': asset.id,
|
'asset_id': asset.id,
|
||||||
'sequence':i,
|
'sequence':i,
|
||||||
'name': str(asset.id) +'/'+ str(i),
|
'name': str(asset.id) +'/'+ str(i),
|
||||||
'remaining_value': residual_amount,
|
'remaining_value': residual_amount,
|
||||||
'depreciated_value': asset.purchase_value - residual_amount,
|
'depreciated_value': asset.purchase_value - residual_amount,
|
||||||
'depreciation_date': depreciation_date.strftime('%Y-%m-%d'),
|
'depreciation_date': depreciation_date.strftime('%Y-%m-%d'),
|
||||||
}
|
}
|
||||||
self.pool.get('account.asset.depreciation.line').create(cr, uid, vals)
|
self.pool.get('account.asset.depreciation.line').create(cr, uid, vals)
|
||||||
month += asset.method_period
|
month += asset.method_period
|
||||||
depreciation_date = datetime(year + (month / 12), month % 12, day)
|
depreciation_date = datetime(year + (month / 12), month % 12, day)
|
||||||
|
@ -124,7 +124,7 @@ class account_asset_asset(osv.osv):
|
||||||
def _amount_total(self, cr, uid, ids, name, args, context={}):
|
def _amount_total(self, cr, uid, ids, name, args, context={}):
|
||||||
#FIXME: function not working²
|
#FIXME: function not working²
|
||||||
id_set=",".join(map(str,ids))
|
id_set=",".join(map(str,ids))
|
||||||
cr.execute("""SELECT l.asset_id,abs(SUM(l.debit-l.credit)) AS amount FROM
|
cr.execute("""SELECT l.asset_id,abs(SUM(l.debit-l.credit)) AS amount FROM
|
||||||
account_move_line l
|
account_move_line l
|
||||||
WHERE l.asset_id IN ("""+id_set+") GROUP BY l.asset_id ")
|
WHERE l.asset_id IN ("""+id_set+") GROUP BY l.asset_id ")
|
||||||
res=dict(cr.fetchall())
|
res=dict(cr.fetchall())
|
||||||
|
@ -133,7 +133,7 @@ class account_asset_asset(osv.osv):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _amount_residual(self, cr, uid, ids, name, args, context={}):
|
def _amount_residual(self, cr, uid, ids, name, args, context={}):
|
||||||
cr.execute("""SELECT
|
cr.execute("""SELECT
|
||||||
l.asset_id as id, SUM(abs(l.debit-l.credit)) AS amount
|
l.asset_id as id, SUM(abs(l.debit-l.credit)) AS amount
|
||||||
FROM
|
FROM
|
||||||
account_move_line l
|
account_move_line l
|
||||||
|
@ -160,7 +160,7 @@ class account_asset_asset(osv.osv):
|
||||||
'localisation': fields.char('Localisation', size=32, select=2),
|
'localisation': fields.char('Localisation', size=32, select=2),
|
||||||
'parent_id': fields.many2one('account.asset.asset', 'Parent Asset'),
|
'parent_id': fields.many2one('account.asset.asset', 'Parent Asset'),
|
||||||
'child_ids': fields.one2many('account.asset.asset', 'parent_id', 'Children Assets'),
|
'child_ids': fields.one2many('account.asset.asset', 'parent_id', 'Children Assets'),
|
||||||
'purchase_date': fields.date('Purchase Date', required=True),
|
'purchase_date': fields.date('Purchase Date', required=True),
|
||||||
'state': fields.selection([('view','View'),('draft','Draft'),('normal','Normal'),('close','Close')], 'state', required=True),
|
'state': fields.selection([('view','View'),('draft','Draft'),('normal','Normal'),('close','Close')], 'state', required=True),
|
||||||
'active': fields.boolean('Active', select=2),
|
'active': fields.boolean('Active', select=2),
|
||||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||||
|
@ -264,7 +264,7 @@ class account_asset_asset(osv.osv):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def _compute_entries(self, cr, uid, asset, period_id, context={}):
|
def _compute_entries(self, cr, uid, asset, period_id, context={}):
|
||||||
#FIXME: function not working CHECK all res
|
#FIXME: function not working CHECK all res
|
||||||
result = []
|
result = []
|
||||||
date_start = self.pool.get('account.period').browse(cr, uid, period_id, context).date_start
|
date_start = self.pool.get('account.period').browse(cr, uid, period_id, context).date_start
|
||||||
for property in asset.property_ids:
|
for property in asset.property_ids:
|
||||||
|
@ -290,13 +290,21 @@ class account_asset_depreciation_line(osv.osv):
|
||||||
}
|
}
|
||||||
|
|
||||||
def create_move(self, cr, uid,ids, context=None):
|
def create_move(self, cr, uid,ids, context=None):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
asset_obj = self.pool.get('account.asset.asset')
|
asset_obj = self.pool.get('account.asset.asset')
|
||||||
period_obj = self.pool.get('account.period')
|
period_obj = self.pool.get('account.period')
|
||||||
move_obj = self.pool.get('account.move')
|
move_obj = self.pool.get('account.move')
|
||||||
move_line_obj = self.pool.get('account.move.line')
|
move_line_obj = self.pool.get('account.move.line')
|
||||||
|
currency_obj = self.pool.get('res.currency')
|
||||||
for line in self.browse(cr, uid, ids, context=context):
|
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]
|
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)
|
period_ids = period_obj.find(cr, uid, depreciation_date, context=context)
|
||||||
|
company_currency = line.asset_id.company_id.currency_id.id
|
||||||
|
current_currency = line.asset_id.currency_id.id
|
||||||
|
context.update({'date': depreciation_date})
|
||||||
|
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.amount, context=context)
|
||||||
|
sign = line.asset_id.category_id.journal_id.type = 'purchase' and 1 or -1
|
||||||
move_vals = {
|
move_vals = {
|
||||||
'name': line.name,
|
'name': line.name,
|
||||||
'date': depreciation_date,
|
'date': depreciation_date,
|
||||||
|
@ -311,11 +319,12 @@ class account_asset_depreciation_line(osv.osv):
|
||||||
'move_id': move_id,
|
'move_id': move_id,
|
||||||
'account_id': line.asset_id.category_id.account_depreciation_id.id,
|
'account_id': line.asset_id.category_id.account_depreciation_id.id,
|
||||||
'debit': 0.0,
|
'debit': 0.0,
|
||||||
'credit': line.amount,
|
'credit': amount,
|
||||||
'period_id': period_ids and period_ids[0] or False,
|
'period_id': period_ids and period_ids[0] or False,
|
||||||
'journal_id': line.asset_id.category_id.journal_id.id,
|
'journal_id': line.asset_id.category_id.journal_id.id,
|
||||||
'partner_id': line.asset_id.partner_id.id,
|
'partner_id': line.asset_id.partner_id.id,
|
||||||
'currency_id': line.asset_id.currency_id.id,
|
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||||
|
'amount_currency': company_currency <> current_currency and - sign * line.amount or 0.0,
|
||||||
'analytic_account_id': line.asset_id.category_id.account_analytic_id.id,
|
'analytic_account_id': line.asset_id.category_id.account_analytic_id.id,
|
||||||
'date': depreciation_date,
|
'date': depreciation_date,
|
||||||
})
|
})
|
||||||
|
@ -325,11 +334,12 @@ class account_asset_depreciation_line(osv.osv):
|
||||||
'move_id': move_id,
|
'move_id': move_id,
|
||||||
'account_id': line.asset_id.category_id.account_expense_depreciation_id.id,
|
'account_id': line.asset_id.category_id.account_expense_depreciation_id.id,
|
||||||
'credit': 0.0,
|
'credit': 0.0,
|
||||||
'debit': line.amount,
|
'debit': amount,
|
||||||
'period_id': period_ids and period_ids[0] or False,
|
'period_id': period_ids and period_ids[0] or False,
|
||||||
'journal_id': line.asset_id.category_id.journal_id.id,
|
'journal_id': line.asset_id.category_id.journal_id.id,
|
||||||
'partner_id': line.asset_id.partner_id.id,
|
'partner_id': line.asset_id.partner_id.id,
|
||||||
'currency_id': line.asset_id.currency_id.id,
|
'currency_id': company_currency <> current_currency and current_currency or False,
|
||||||
|
'amount_currency': company_currency <> current_currency and sign * line.amount or 0.0,
|
||||||
'analytic_account_id': line.asset_id.category_id.account_analytic_id.id,
|
'analytic_account_id': line.asset_id.category_id.account_analytic_id.id,
|
||||||
'date': depreciation_date,
|
'date': depreciation_date,
|
||||||
})
|
})
|
||||||
|
@ -341,7 +351,7 @@ account_asset_depreciation_line()
|
||||||
#class account_asset_property(osv.osv):
|
#class account_asset_property(osv.osv):
|
||||||
# def _amount_total(self, cr, uid, ids, name, args, context={}):
|
# def _amount_total(self, cr, uid, ids, name, args, context={}):
|
||||||
# id_set=",".join(map(str,ids))
|
# id_set=",".join(map(str,ids))
|
||||||
# cr.execute("""SELECT l.asset_id,abs(SUM(l.debit-l.credit)) AS amount FROM
|
# cr.execute("""SELECT l.asset_id,abs(SUM(l.debit-l.credit)) AS amount FROM
|
||||||
# account_asset_property p
|
# account_asset_property p
|
||||||
# left join
|
# left join
|
||||||
# account_move_line l on (p.asset_id=l.asset_id)
|
# account_move_line l on (p.asset_id=l.asset_id)
|
||||||
|
@ -411,7 +421,7 @@ class account_move_line(osv.osv):
|
||||||
_inherit = 'account.move.line'
|
_inherit = 'account.move.line'
|
||||||
_columns = {
|
_columns = {
|
||||||
'asset_id': fields.many2one('account.asset.asset', 'Asset'),
|
'asset_id': fields.many2one('account.asset.asset', 'Asset'),
|
||||||
'entry_ids': fields.one2many('account.move.line', 'asset_id', 'Entries', readonly=True, states={'draft':[('readonly',False)]}),
|
'entry_ids': fields.one2many('account.move.line', 'asset_id', 'Entries', readonly=True, states={'draft':[('readonly',False)]}),
|
||||||
|
|
||||||
}
|
}
|
||||||
account_move_line()
|
account_move_line()
|
||||||
|
|
Loading…
Reference in New Issue