求助:采购订单后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/动态效果可以看这里