覆盖该字段作为计算它不起作用

时间:2016-10-05 20:08:38

标签: python odoo-9

我在product.template中做了一些更改,并覆盖了这样的字段

list_price = fields.Float(copy=False, string='Sale Price',  store=True,compute='_calculate_sale_price',
                              help='compute cost as per gun_dealer', default=0.00)

,计算方法就像

@api.multi
    @api.depends('profit_per_unit', 'estimated_shipping_charges'
                 , 'flat_rate_charges', 'list_price')
    def _calculate_sale_price(self):

        if self.category_parent_id == 33:
                self.list_price = self.standard_price+self.profit_per_unit+ \
                                  self.estimated_shipping_charges

        else:
            self.list_price = self.standard_price+self.profit_per_unit-self.collected_shipping_charges + \
                                  self.flat_rate_charges

但是在这样做之后,销售订单的订单行中的单价并没有从product.template中获取销售价格的价值

1 个答案:

答案 0 :(得分:0)

这不是解决方案。但我真的不能在评论中提出这个建议。

我不确定您是否应该在depends decorator参数中使用list_price。尝试进行一些登录,看看加载页面时发生了什么。

import logging
_logger = logging.getLogger(__name__)

@api.multi
@api.depends('profit_per_unit', 'estimated_shipping_charges', 'flat_rate_charges')
def _calculate_sale_price(self):
    _logger.info("EXECUTING _calculate_sale_price() function")
    if self.category_parent_id == 33:
        _logger.info("CATEGORY PARENT ID IS 33!")
        _logger.info("list_price = {} + {} + {}".format(self.standard_price, self.profit_per_unit, self.estimated_shipping_charges))
        self.list_price = self.standard_price+self.profit_per_unit + self.estimated_shipping_charges
    else:
        _logger.info("CATEGORY PARENT ID IS NOT 33! REPEAT NOT")
        _logger.info("list_price = {} + {} + {} - {} + {}".format(self.standard_price, self.profit_per_unit, self.collected_shipping_charges, self.flat_rate_charges))
        self.list_price = self.standard_price + self.profit_per_unit -self.collected_shipping_charges + self.flat_rate_charges