Skip to content
  • Categories
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • 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

  • Default (Flatly)
  • No Skin
Collapse

Odoo 中文社区

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

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

Scheduled Pinned Locked Moved Odoo 开发与实施交流
10 Posts 4 Posters 5.9k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    diviner
    wrote on last edited by
    #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 Reply Last reply
    0
    • D Offline
      D Offline
      digitalsatori
      管理员
      wrote on last edited by digitalsatori
      #2

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

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

      D 1 Reply Last reply
      0
      • D digitalsatori

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

        D Offline
        D Offline
        diviner
        wrote on last edited by
        #3

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

        1 Reply Last reply
        0
        • D Offline
          D Offline
          digitalsatori
          管理员
          wrote on last edited by digitalsatori
          #4

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

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

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

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

          D 1 Reply Last reply
          0
          • D digitalsatori

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

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

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

            D Offline
            D Offline
            diviner
            wrote on last edited by
            #5

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

            1 Reply Last reply
            0
            • D Offline
              D Offline
              digitalsatori
              管理员
              wrote on last edited by
              #6

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

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

              1 Reply Last reply
              0
              • G Offline
                G Offline
                guohuadeng
                wrote on last edited by
                #7

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

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

                https://www.sunpop.cn

                D 1 Reply Last reply
                0
                • K Offline
                  K Offline
                  Kowky
                  wrote on last edited by
                  #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 Reply Last reply
                  0
                  • G guohuadeng

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

                    D Offline
                    D Offline
                    diviner
                    wrote on last edited by
                    #9

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

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      guohuadeng
                      wrote on last edited by
                      #10

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

                      替代文字

                      动态效果可以看这里

                      替代文字

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

                      https://www.sunpop.cn

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Tags
                      • Popular
                      • Users
                      • Groups