求助:采购订单后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框。这种情况,纯技术角度如何来实现呢,谢谢。如下图:  
- 
看看我们开发的这个模块吧,可以在任意业务模型的 one2many中实现多选。 
 odoo11, odoo12
 http://www.odoo.com/apps/modules/12.0/app_web_one2many_multi_add/ 动态效果可以看这里  
