Odoo12社区版分拣单处理时生成欠单流程

1.stock.picking:
button_validate方法中

# _check_backorder方法校验行数量是否全部满足,不满足则需要弹框提示是否创建欠单
if self._check_backorder():
    return self.action_generate_backorder_wizard()
self.action_done()

在这里插入图片描述

2.stock.picking:
action_generate_backorder_wizard方法返回确认对象及界面

def action_generate_backorder_wizard(self):
     view = self.env.ref('stock.view_backorder_confirmation')
     wiz = self.env['stock.backorder.confirmation'].create({'pick_ids': [(4, p.id) for p in self]})
     return {
         'name': _('Create Backorder?'),
         'type': 'ir.actions.act_window',
         'view_type': 'form',
         'view_mode': 'form',
         'res_model': 'stock.backorder.confirmation',
         'views': [(view.id, 'form')],
         'view_id': view.id,
         'target': 'new',
         'res_id': wiz.id,
         'context': self.env.context,
     }

在这里插入图片描述

3.stock.move:
_action_done方法
在这里插入图片描述

4.stock.picking:
_create_backorder方法会创建对应的欠单

@api.multi
def _create_backorder(self, backorder_moves=[]):
    """ Move all non-done lines into a new backorder picking.
    """
    backorders = self.env['stock.picking']
    for picking in self:
        moves_to_backorder = picking.move_lines.filtered(lambda x: x.state not in ('done', 'cancel'))
        if moves_to_backorder:
            backorder_picking = picking.copy({
                'name': '/',
                'move_lines': [],
                'move_line_ids': [],
                'backorder_id': picking.id
            })
            picking.message_post(
                body=_('The backorder <a href=# data-oe-model=stock.picking data-oe-id=%d>%s</a> has been created.') % (
                    backorder_picking.id, backorder_picking.name))
            moves_to_backorder.write({'picking_id': backorder_picking.id})
            moves_to_backorder.mapped('package_level_id').write({'picking_id':backorder_picking.id})
            moves_to_backorder.mapped('move_line_ids').write({'picking_id': backorder_picking.id})
            backorder_picking.action_assign()
            backorders |= backorder_picking
    return backorders

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值