在领料中设置销售订单字段参考 - odoo
Set sales order fields reference in picking - odoo
我想设置销售团队在销售订单确认和创建拣货时直接在拣货中参考。
但我没有得到足够的提示,我该如何实现。因为销售订单确认时调用的方法如下
def action_button_confirm(self, cr, uid, ids, context=None):
if not context:
context = {}
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
self.signal_workflow(cr, uid, ids, 'order_confirm')
if context.get('send_email'):
self.force_quotation_send(cr, uid, ids, context=context)
return True
这里没有任何提示我如何将其传递给采摘?
Purpose:
My aim is to set sales team reference in picking / shipment.
没那么容易。 Odoo 使用 procurement.order
s 来创建 stock.move
s 并为它们创建 stock.picking
s。问题:可能一次领料有多个销售订单作为来源。因此可能会引用多个销售团队。
但尝试使用计算字段:
section_id = fields.Many2one(
comodel_name="crm.case.section", string="Sales Team",
compute="_compute_section_id")
@api.multi
def _compute_section_id(self):
for picking in self:
section_ids = set()
for move in picking.move_lines:
if move.sale_line_id.order_id.section_id
section_ids.add(move.sale_line_id.order_id.section_id.id)
if len(section_ids) == 1:
picking.section_id = section_ids.pop()
您也可以使用相关字段,但这可能会产生非常糟糕的副作用。因为 Odoo 会先走一步。
section_id = fields.Many2one(
comodel_name="crm.case.section", string="Sales Team",
related="move_lines.sale_line_id.order_id.section_id")
我从创建采摘的地方得到了那个方法。所以我刚刚继承了它并添加了我的代码。 action_ship_create 将始终在从销售订单创建发货时被调用。
@api.cr_uid_ids_context
def action_ship_create(self,cr,uid,ids,context={}):
result=super(sale_order,self).action_ship_create(cr,uid,ids,context=context)
for order in self.browse(cr,uid,ids,context=context):
order.picking_ids.write({'section_id':order.section_id.id})
return result
我想设置销售团队在销售订单确认和创建拣货时直接在拣货中参考。
但我没有得到足够的提示,我该如何实现。因为销售订单确认时调用的方法如下
def action_button_confirm(self, cr, uid, ids, context=None):
if not context:
context = {}
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
self.signal_workflow(cr, uid, ids, 'order_confirm')
if context.get('send_email'):
self.force_quotation_send(cr, uid, ids, context=context)
return True
这里没有任何提示我如何将其传递给采摘?
Purpose:
My aim is to set sales team reference in picking / shipment.
没那么容易。 Odoo 使用 procurement.order
s 来创建 stock.move
s 并为它们创建 stock.picking
s。问题:可能一次领料有多个销售订单作为来源。因此可能会引用多个销售团队。
但尝试使用计算字段:
section_id = fields.Many2one(
comodel_name="crm.case.section", string="Sales Team",
compute="_compute_section_id")
@api.multi
def _compute_section_id(self):
for picking in self:
section_ids = set()
for move in picking.move_lines:
if move.sale_line_id.order_id.section_id
section_ids.add(move.sale_line_id.order_id.section_id.id)
if len(section_ids) == 1:
picking.section_id = section_ids.pop()
您也可以使用相关字段,但这可能会产生非常糟糕的副作用。因为 Odoo 会先走一步。
section_id = fields.Many2one(
comodel_name="crm.case.section", string="Sales Team",
related="move_lines.sale_line_id.order_id.section_id")
我从创建采摘的地方得到了那个方法。所以我刚刚继承了它并添加了我的代码。 action_ship_create 将始终在从销售订单创建发货时被调用。
@api.cr_uid_ids_context
def action_ship_create(self,cr,uid,ids,context={}):
result=super(sale_order,self).action_ship_create(cr,uid,ids,context=context)
for order in self.browse(cr,uid,ids,context=context):
order.picking_ids.write({'section_id':order.section_id.id})
return result