Я пытаюсь переопределить функцию _amount_line
в модели sale.order.line
, чтобы добавить логику custum.Odoo 8 override _amount_line
Вот мой код:
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, я получаю эту ошибку:
Hi. это не сработало. Вот исходная строка в sale.py 'tax = tax_obj.compute_all (cr, uid, line.tax_id, price, qty, line.product_id, line.order_id.partner_id)' –
Простите, это работает, но я получив другую ошибку: 'return new_api (self, * args, ** kwargs) TypeError: round() принимает ровно 2 аргумента (3 данных)' –
'line.price_subtotal = cur.round (налоги ['total']) 'Это не сработало? –