跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. Sale order 的workflow改过之后,不能自动产生采购单

Sale order 的workflow改过之后,不能自动产生采购单

已定时 已固定 已锁定 已移动 Odoo 新手求助
8 帖子 4 发布者 6.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • J 离线
    J 离线
    jimmy_zjw
    写于 最后由 编辑
    #1

    我在sale order的demo下做的时候,销售的Supply method=buy的product,workflow从state=draft -> state=manual系统自动会产生采购单的,可是我改了sale orderd的workflow过后,仍旧调用原来的function:action_wait(),但采购单不能自动生成了
    demo的workflow:
    <record id="act_draft" model="workflow.activity">
    <field name="wkf_id" ref="wkf_sale"/>
    <field name="flow_start">True</field>
    <field name="name">draft</field>
    </record>
    <record id="act_router" model="workflow.activity">
    <field name="wkf_id" ref="wkf_sale"/>
    <field name="name">router</field>
    <field name="kind">function</field>
    <field name="action">action_wait()</field>
    <field name="split_mode">OR</field>
    </record>
    <record id="trans_draft_router" model="workflow.transition">
    <field name="act_from" ref="act_draft"/>
    <field name="act_to" ref="act_router"/>
    <field name="signal">order_confirm</field>
    </record>
    改过之后的workflow:
    <record id="act_bmapprove" model="workflow.activity">
    <field name="wkf_id" ref="wkf_sale"/>
    <field name="name">bm_approve</field>
    <field name="kind">function</field>
    <field name="action">write({'state':'bm_approved'})</field>
    </record>
    <record id="act_gmapprove" model="workflow.activity">
    <field name="wkf_id" ref="wkf_sale"/>
    <field name="name">gm_approve</field>
    <field name="action">action_wait()</field>
    <field name="split_mode">OR</field>
    </record>
    <record id="trans_bmapprove_gmapprove" model="workflow.transition">
    <field name="act_from" ref="act_bmapprove"/>
    <field name="act_to" ref="act_gmapprove"/>
    <field name="signal">gm_approve</field>
    </record>

    action_wait的function没有改过:
    def action_wait(self, cr, uid, ids, *args):
    event_p = self.pool.get('res.partner.event.type').check(cr, uid, 'sale_open')
    event_obj = self.pool.get('res.partner.event')
    for o in self.browse(cr, uid, ids):
    if event_p:
    event_obj.create(cr, uid, {'name': 'Sale Order: '+ o.name,
    'partner_id': o.partner_id.id,
    'date': time.strftime('%Y-%m-%d %H:%M:%S'),
    'user_id': (o.user_id and o.user_id.id) or uid,
    'partner_type': 'customer', 'probability': 1.0,
    'planned_revenue': o.amount_untaxed})
    if (o.order_policy == 'manual'):
    self.write(cr, uid, [o.id], {'state': 'manual'})
    else:
    self.write(cr, uid, [o.id], {'state': 'progress'})
    self.pool.get('sale.order.line').button_confirm(cr, uid, [x.id for x in o.order_line])

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

      是否转为采购单与你改的那部分workflow无关。

      销售单是否转为采购单需要运行mrp运算来决定,可以在生产管理模块中手动运行,或者在系统管理的设置里有自动按时来启动mrp运算的。

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

      1 条回复 最后回复
      0
      • J 离线
        J 离线
        jimmy_zjw
        写于 最后由 编辑
        #3

        我觉得是跟process有关系的问题,是从一个flow转到另一个flow的

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

          你大概理解错了我的意思,系统对销售订单的处理当然会涉及工作流,但是你所改动的workflow部分与所提到的不能产生采购订单没有直接关系。
          我们看一下sale.order.basic这个工作流,当通过点击销售订单确认按钮(gm_approve),工作流pass router节点来到ship节点时就会激发action_ship_create函数,其中:[code] wf_service = netsvc.LocalService("workflow")
          wf_service.trg_validate(uid, 'mrp.procurement', proc_id, 'button_confirm', cr)
          self.pool.get('sale.order.line').write(cr, uid, [line.id], {'procurement_id': proc_id})
          [/code]上面的代码意思是根据你的销售订单创建并确认了一个对应的Procurement order(物料需求单)
          你只有运行mrp运算(或者叫run procurement)它才能决定是否产生采购订单。(当你的订单和产品数量非常多时,一般mrp运算是很耗时的,所以我们在管理菜单中可以设置让它定时自动运行,比如在晚上没有人用系统的时候)

          为什么要多一个Procurement的过程,举一个最简单的例子,比如有两个不同的客户订了同样的东西,系统中有两张销售订单,通过procurement运算就可以合并这个需求生成一张采购订单。
          procurement order 长的样子(我这里是开发中的v5.2,可能跟v5.0X稍有不同):
          [attach]461[/attach]

          [[i] 本帖最后由 digitalsatori 于 2010-3-25 17:38 编辑 [/i]]

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

          1 条回复 最后回复
          0
          • wjfonhandW 离线
            wjfonhandW 离线
            wjfonhand
            写于 最后由 编辑
            #5

            我在qq群里也是这么解释的,但楼主和老肖都坚持 只要在产品获取方式上设置为采购就可以确认销售订单直接生成采购订单,楼主说他生成了,老肖说OpenERP Book里写得很清楚

            我几次测试都没生成采购订单,一定是走 需求单 mrp 采购订单 这个路径

            搞得我以为我RP问题。。。

            校长,你真滴确定么?

            GoodERP -- Odoo China fork

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

              @wjfonhand, 我确定你没有RP问题
              @jimmy_zjw 在系统管理菜单下检查一下你的 mrp.procurement.basic 工作流的confirm节点,其出转换(outgoing transition)名字为confirm_wait是否有定义一个叫button_check的Signal。

              如果没有定义这个signal,销售订单确定后直接生成采购订单是可能的。 可是在我本地电脑安装的OE中(5.0.X stable和 5.2dev)无论是在xml workflow定义中还是在系统菜单下都有这个button_check的signal.
              但是在demo.shine-it.net中却没有这个signal, 可能是有人删除了,也有可能是OE在某个小版本中没有设置这个signal。

              但是不设置这个signal的procurement工作流,虽然似乎确实能满足某些用户的简单需求,不过实际上可能就是个后来被fix的bug:)

              [[i] 本帖最后由 digitalsatori 于 2010-3-26 12:59 编辑 [/i]]

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

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

                这里设置为采购后,还需要添加默认的产品供应商。如果走需求单的话,那就太麻烦了

                1 条回复 最后回复
                0

                • 登录

                • 没有帐号? 注册

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