我在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中获取销售价格的价值
答案 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