在创建销售订单行时,如何为产品设置价格表折扣?在Odoo 9

时间:2017-05-19 11:51:34

标签: openerp odoo-9

我有一个从外部服务器检索销售订单的功能。

然后,我将每个销售订单订单行一起插入odoo数据库。

折扣外,所有内容都已正常插入。

我在销售订单中有价格表,并且有折扣(例如,每件产品的折扣为10%),但在所有中销售订单行折扣为0%。

如果我手动添加销售订单行,折扣会正确显示(10%)。

这是我的代码:

vals = {}
vals['order_id'] = downloaded_sale_order_id
vals['product_id'] = downloaded_product_id
vals['product_uom'] = downloaded_product_uom

new_line_id = self.env['sale.order.line'].create(vals)

我已进入调试模式并意识到如果我在创建后调用其中一些功能,则会应用折扣

选项1:

new_line_id.product_id_change()

选项2:

new_line_id.product_uom_change()

但是......当我启动创建订单时,为什么不调用它们? 我错过了代码中的内容吗?

1 个答案:

答案 0 :(得分:1)

从外部服务器来源创建时,您在销售订单行中有以下设置折扣选项。

1)如果您从他们那里获得折扣价值,只需从外部服务器的源数据中设置折扣,如uom,product,price等其他参数。

2)您必须调用product或uom onchange方法根据onchange调用设置折扣,这是根据onchange设置大部分数据的默认和安全方法。它不会错过使用onchange方法进行任何自定义内的任何特殊字段。如果任何折扣数据不是来自外部服务器源,我特别推荐使用此方法。

3)您可以根据外部服务器来源(如价格和数量等)手动管理折扣计算。并将其设置在销售订单行内。

我希望这对你很有帮助。如果不清楚,请毫不犹豫地询问任何事情。

相关问题