跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 求助:采购订单后wizard的采购明细选择,无法使用Checkbox。

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

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
10 帖子 4 发布者 2.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • D 离线
    D 离线
    diviner
    写于 最后由 编辑
    #1

    各位大神,我们想实现个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
    

    1 条回复 最后回复
    0
    • digitalsatoriD 离线
      digitalsatoriD 离线
      digitalsatori 管理员
      写于 最后由 digitalsatori 编辑
      #2

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

      【上海先安科技】(tony AT openerp.cn)

      D 1 条回复 最后回复
      0
      • D 离线
        D 离线
        diviner
        在 回复了 digitalsatori 最后由 编辑
        #3

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

        1 条回复 最后回复
        0
        • digitalsatoriD 离线
          digitalsatoriD 离线
          digitalsatori 管理员
          写于 最后由 digitalsatori 编辑
          #4

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

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

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

          【上海先安科技】(tony AT openerp.cn)

          D 1 条回复 最后回复
          0
          • D 离线
            D 离线
            diviner
            在 回复了 digitalsatori 最后由 编辑
            #5

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

            1 条回复 最后回复
            0
            • digitalsatoriD 离线
              digitalsatoriD 离线
              digitalsatori 管理员
              写于 最后由 编辑
              #6

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

              【上海先安科技】(tony AT openerp.cn)

              1 条回复 最后回复
              0
              • G 离线
                G 离线
                guohuadeng
                写于 最后由 编辑
                #7

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

                用产品说话,odoo专业实施开发培训_广州尚鹏,供应链制造服装外贸家具生鲜开源ERP

                https://www.sunpop.cn

                D 1 条回复 最后回复
                0
                • K 离线
                  K 离线
                  Kowky
                  写于 最后由 编辑
                  #8

                  @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支持分批入库的呀!

                  1 条回复 最后回复
                  0
                  • D 离线
                    D 离线
                    diviner
                    在 回复了 guohuadeng 最后由 编辑
                    #9

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

                    1 条回复 最后回复
                    0
                    • G 离线
                      G 离线
                      guohuadeng
                      写于 最后由 编辑
                      #10

                      看看我们开发的这个模块吧,可以在任意业务模型的 one2many中实现多选。
                      odoo11, odoo12
                      http://www.odoo.com/apps/modules/12.0/app_web_one2many_multi_add/

                      替代文字

                      动态效果可以看这里

                      替代文字

                      用产品说话,odoo专业实施开发培训_广州尚鹏,供应链制造服装外贸家具生鲜开源ERP

                      https://www.sunpop.cn

                      1 条回复 最后回复
                      0

                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组