简体   繁体   English

odoo10如何继承其他功能和更新线路?

[英]odoo10 how to inherit other function and update line?

now i'm trying code on the purchase module if i would like to modify a calculation of purchase order?如果我想修改采购订单的计算,现在我正在尝试采购模块上的代码?

this code it about the calculation.这段代码是关于计算的。

@api.depends('order_line.price_total')
def _amount_all(self):
    for order in self:
        amount_untaxed = amount_tax = 0.0
        for line in order.order_line:
            amount_untaxed += line.price_subtotal
            # FORWARDPORT UP TO 10.0
            if order.company_id.tax_calculation_rounding_method == 'round_globally':
                taxes = line.taxes_id.compute_all(line.price_unit, line.order_id.currency_id, line.product_qty, product=line.product_id, partner=line.order_id.partner_id)
                amount_tax += sum(t.get('amount', 0.0) for t in taxes.get('taxes', []))
            else:
                amount_tax += line.price_tax
        order.update({
            'amount_untaxed': order.currency_id.round(amount_untaxed),
            'amount_tax': order.currency_id.round(amount_tax),
            'amount_total': amount_untaxed + amount_tax,
        }) 

and this my module for inherit that code.这是我用于继承该代码的模块。

class PurchaseOrderNew(models.Model):
    _inherit = "purchase.order.line"

    new_currency = fields.Float()

 def _amount_all(self):
    res = super(PurchaseOrderLine, self)_amount_all()

       #### i don't have no idea how to let 'new_currency' to  
     #### multiple with amount_total in order.update

    return res 

anyone have idea about it?有人知道吗?
I just want new_currency multiple a amount_total in order.update .我只想要 new_currency 多个 a amount_total 在 order.update 。
[ new_currency * amount_total ] [ new_currency * amount_total ]
but no idea how to code a function like that one.但不知道如何编写这样的函数。

Please try the below code请尝试以下代码

def _amount_all(self):
    res = super(PurchaseOrderLine, self)_amount_all()
    for record in self:
       record.amount_total = self.new_currency*(amount_untaxed + amount_tax)
    return res 

if you don't want the tax you can leave that如果你不想交税,你可以留下

 def _amount_all(self):
     res = super(PurchaseOrderLine, self)_amount_all()
     for record in self:
         record.amount_total = self.new_currency*amount_untaxed
     return res

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM