Odoo 8覆盖_amount_line [英] Odoo 8 override _amount_line
本文介绍了Odoo 8覆盖_amount_line的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图覆盖sale.order.line
模型中的_amount_line
函数,以添加自定义逻辑.
I'm trying to override the _amount_line
function in sale.order.line
model in order to add custum logic.
这是我的代码:
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'
def _amount_line(self):
tax_obj = self.env['account.tax']
cur_obj = self.env['res.currency']
res = {}
for line in self:
print line.tax_id
price = self._calc_line_base_price(line)
qty = self._calc_line_quantity(line)
print" price:{} & quantity: {}".format(price,qty)
taxes = tax_obj.compute_all(line.tax_id, price, qty,
line.product_id,
line.order_id.partner_id)
cur = line.order_id.pricelist_id.currency_id
res[line.id] = cur_obj.round(cur, taxes['total'])
return res
remise_palier = fields.Float('Remise palier (%)')
remise_total = fields.Float('Remise totale (%)')
price_subtotal = fields.Float(compute='_amount_line', string='Subtotal')
当我运行Odoo时,出现该错误:
When i run Odoo, i get that error:
推荐答案
您在调用calculate_all方法时犯了错误.
You have made mistake in compute_all method calling.
这种方法应该是这样的,
This method should be like this,
@api.multi
def _amount_line(self):
tax_obj = self.env['account.tax']
cur_obj = self.env['res.currency']
for line in self:
print line.tax_id
price = self._calc_line_base_price(line)
qty = self._calc_line_quantity(line)
print" price:{} & quantity: {}".format(price,qty)
taxes = line.tax_id.compute_all(price, qty, line.product_id, line.order_id.partner_id)
cur = line.order_id.pricelist_id.currency_id
line.price_subtotal = cur.round(taxes['total'])
这篇关于Odoo 8覆盖_amount_line的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文