Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

求助:采购订单后wizard的采购明细选择,无法使用Checkbox。



  • 各位大神,我们想实现个ERP系统的进销存功能。
    在采购订单->入库单中间,我想实现个让用户可以选择生成入库的采购订单明细的操作。所以想法是加个Wizard来实现。流程为:采购订单->wizard->入库单。
    但是在wizard实现过程中,在明细行前面的Checkbox,要每次编辑才能点击,体验很差。

    所以我们讨论的方案在每行前面加个Button来实现选择的操作。但这样带来问题是点击button,wizard会消掉。我们的方案是在点击后重新掉起这个Wizard。但又带来个新的问题,就是这个重新掉起wizard会有很明显的延迟。

    问题1、有没有可以解决checkbox不用选择编辑再多次选择的方案来实现目标操作。
    问题2、如果只能是我现在的方案,要怎么能解决Button刷新延迟的问题呢?

    先谢谢。

    相关源码的两个函数:

    @api.multi
    def wizard_view(self):
        view = self.env.ref('buy.buy_order_generate_receipt_wizard_form')
        # name = (self.type == 'buy' and u'采购入库单选择行' or u'采购退货单选择行')
        return {
            'name': u'采购入库单选择行',
            'view_mode': 'form',
            'views': [(view.id, 'form')],
            'res_model': 'buy.order.generate.receipt.wizard',
            'res_id': self.ids[0],
            'type': 'ir.actions.act_window',
            'target': 'new',
            # 'domain': [('id', '=', receipt_id)],
            # 'context':self.env.context,
        }
    
    @api.multi
    def button_select(self):
        if self.select == True:
            self.select = False
        else:
            self.select = True
        ret = self.order_id.wizard_view()
        return ret
    


  • 管理员

    能解释一下为什么不用Odoo本身的进销存功能,或者说Odoo的哪些部分不符合需求,需要另起炉灶的原因是什么?



  • @digitalsatori 说个前提:我用的是GoodErp,这个汉化的比较好,当然都算是odoo啦。
    初衷是这样的:
    一个采购订单,实际场景下会有多次采购入库情况,这样要多次生成,现在的模式过于固定,想中间加个Wizard让采购人员来勾选,这样更灵活呀。。
    帮助看下,谢谢啦 :)


  • 管理员

    采购订单分次入库是一个很通用的业务过程。在Odoo中当收货确认时,仓管可指定实际收货数量,当本次实际收货数量小于采购订单订货数量时,系统自动根据未交付数量生成“欠单”(Back order),该欠单也会跟采购订单和已执行收货单关联,便于跟踪回溯。

    另外,Odoo也允许你选择不生成 Back order, 这在一些业务场景下也很普遍。

    我没有看出来您的需求有定制开发的必要。



  • @digitalsatori 我们会有较多的场景是这样,在仓管收货 生成入库单时,只是部分货物,现行的方式,要把未入库的行删除掉。因为是多次出现。所以多次的删除操作体验不好。就在入库时直接可选择入库明细行。


  • 管理员

    Odoo中只需要填写本次收货数量,未填写的不做入库处理。不存在需要删除不入库行的问题。



  • 有参数,默认进入就是edit模式,自己看form.js



  • @diviner求助:采购订单后wizard的采购明细选择,无法使用Checkbox。 中说:

    @api.multi
    def wizard_view(self):
    view = self.env.ref('buy.buy_order_generate_receipt_wizard_form')
    # name = (self.type == 'buy' and u'采购入库单选择行' or u'采购退货单选择行')
    return {
    'name': u'采购入库单选择行',
    'view_mode': 'form',
    'views': [(view.id, 'form')],
    'res_model': 'buy.order.generate.receipt.wizard',
    'res_id': self.ids[0],
    'type': 'ir.actions.act_window',
    'target': 'new',
    # 'domain': [('id', '=', receipt_id)],
    # 'context':self.env.context,
    }

    @api.multi
    def button_select(self):

    采购完成后 直接填入实际数量就行了呀,而且 实际入量入了后 库存是根据实际数量来计算数量的呀,为何要纠结 数量不整合的情况呢?而且ODOO支持分批入库的呀!



  • @guohuadeng 谢谢。现在确实是这样,进入Wizard默认就是Edit模式,但对于每行前面的CheckBox,要先点击下行,才能再点击Checkbox框。这种情况,纯技术角度如何来实现呢,谢谢。如下图:0_1539095372387_OpenerpQ1.png