如何在odoo中将sale.order.line的自定义值发送到stock.move

时间:2019-04-05 05:13:24

标签: python odoo

我创建了两个字段,一个在 sale.order.line 中,一个在 stock.move 中。确认sales.order get后,它将在stock.move中创建带有产品信息的stock.picking。我想将我的自定义字段值从sale.order.line发送到stock.move。该怎么做?

要将价值从sale.order传递到库存。我使用了''' action_confirm '''函数。我可以获取''' picking_ids '''并在其中创建股票。但这不会有效。

在odoo中是否存在诸如''' _prepare_stock_moves()'''之类的现有功能来创建销售订单转移?

1 个答案:

答案 0 :(得分:0)

该功能在odoo v12中仍然存在,但以不同的方式。

  

在“ sale.order.line”模型中,将其写为-

@api.multi
def _prepare_procurement_values(self, group_id=False):
    res = super(YourModelName, self)._prepare_procurement_values(group_id)
    # I am assuming field name in both sale.order.line and in stock.move are same and called 'YourField'
    res.update({'YourField': self.YourField})
    return res
  

在创建stock.picking或stock.move时会产生影响   采购/库存规则。因此,您将必须在中添加值   股票规则。为此,继承了stock.rule模型。像这样-

class StockRuleInherit(models.Model):
_inherit = 'stock.rule'

    def _get_stock_move_values(self, product_id, product_qty, product_uom, location_id, name, origin, values, group_id):
        res = super(StockRuleInherit, self)._get_stock_move_values(product_id, product_qty, product_uom, location_id,
                                                           name, origin, values, group_id)
        res['YourField'] = values.get('YourField', False)
        return res

现在,当您确认销售订单时,订单行中的备注值也将与其他值一起转移到stock.move。