跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 关于OE7中销售员权限及默认值问题

关于OE7中销售员权限及默认值问题

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

    刚刚接触OE7不久,对系统还不怎么熟悉,在论坛各位大婶的帮助下总算把自己的默认值问题搞定了,先分享一下,希望对大家有用

    业务需求如下:
    1、销售员只能创建属于自己的客户资料(包括公司),并且只能看到属于自己的客户资料
    2、销售经理能创建属于其销售团队成员的客户资料,并且可以看到其销售团队下的所有客户资料


    至于1和2的domain的实现(根据Joshua的指点 http://cn.openerp.cn/record_rule/ ,在原帖子上做了些完善)

    1、销售员只能看见自己名下的客户资料或者自己名下公司的资料以及公司名下的客户资料(但是不包括公司名下属于其他销售员的客户资料)以及自己的资料
    规则一:(user_id=user.id)  #该规则表示客户被指定的销售员为登录帐号销售员
    [size=14pt][b]或[/b][/size]
    规则二:(user_id==False & parent_id.user_id == user.id)  #该规则表示客户未指定销售员但是该客户公司的销售员被指定为当前登录帐号销售员
    [size=14pt][b]或[/b][/size]
    规则三:(user_id==False & parent_id.user_id==False)  #该规则表示客户未指定销售员并且该客户公司的销售员也未指定(这是野人。。。)
    [size=14pt][b]或[/b][/size]
    规则四:(user_id==False & parent_id==False)  #该规则表示客户未指定销售员并且没有公司

    对于真正的客户(非OE用户)来说上述四条足够满足要求了,但是针对OE用户,我希望销售员只应该看见自己而不要看见其他销售员同事,所以需要增加一条
    修改规则三(野人范畴):(user_id==False & parent_id.user_id==False & name=user.name) #该规则表示业务伙伴(包含了公司同事)未指定销售员并且该业务伙伴公司也未指定销售员并且业务伙伴名称为当前登陆账号名称(其实说了半天就是为了筛选出自己)
    修改规则四              :(user_id==False & parent_id==False & name=user.name) #无销售员无公司的当前用户

    完整的Domain:['|','|','|',('user_id','=',user.id),'&',('user_id','=',False),('parent_id.user_id','=',user.id),'&','&',('user_id','=',False),('parent_id.user_id','=',False),('name','=',user.name),'&','&',('user_id','=',False),('parent_id','=',False),('name','=',user.name)]

    2、['|',('section_id.member_ids','in',user.id),('section_id','=',False)] #该规则使销售经理能看到其管辖下的整个销售团队的资料(需要创建销售团队,并且授予销售团队经理权限)或者是无团队的野人

    OK,我们的业务要求所有销售员创建的客户资料必须都是自己的客户,那么“销售员”字段必须为必选,可以在管理视图里面修改
    [attachimg=1]
    这样“销售员”字段为必选,那么带来了一个麻烦事,每次用户都要做选择,所以我们应该让当前销售员创建客户资料的时候自动选择自己为“销售员”

    打开openerp/addons/sale/res_partner.py文件
    添加默认值
    [attachimg=2]

    现在就可以了,这样任何能够创建客户资料的帐号都会将自己默认设为客户资料的”销售员“
    [attachimg=3]

    但是有个新的问题,当admin用户创建user的时候它也会默认把partner里面的user_id字段设置为admin,会造成创建的帐号无法创建和访问自己(因为被规则过滤掉了,规则认为自己是别人的客户--admin创建,所以是admin的客户,所以不能访问),

    由于res.user继承自res.partner,所以我们在res.user里面将父类(res.partner)的默认值再次覆盖掉
    打开文件openerp/addons/base/res/res_user.py
    在_defaults字段添加一个字段user_id,如下图:
    [attachimg=4]

    至此默认值问题算是完美的解决了

    [color=green][b][size=12pt]在此感谢 Joshua、Pepsi、小奥[/size][/b][/color]

    1 条回复 最后回复
    0
    • P 离线
      P 离线
      Pepsi
      写于 最后由 编辑
      #2

      感谢分享,顶顶更健康。今天贡献了我的处女贴,这里我的处女回帖也奉献了 ;D

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

        建议写一个模块实现这个功能,不要在界面管理器里改动。

        GoodERP -- Odoo China fork

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

          [quote][font=Verdana][size=13px]至于1和2的domain很好实现[/size][/font][font=Verdana][/size][size=13px]1、['|',('user_id','=',user.id),('name','=',user.name)] #该规则使销售员只能看见自己名下的客户资料以及自己的资料[/size][/font][/quote][font=Verdana][size=13px]
          刚学习就很有心得,赞一个。
          这里[font=verdana, arial, helvetica, sans-serif][/size][size=78%] http://cn.openerp.cn/record_rule/ 多考虑了一点,就是客户可以有公司和联系人两层关系的情况,供你参考。[/size][size=13px][/font][/size][/font]

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

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

            [quote author=digitalsatori link=topic=7321.msg16749#msg16749 date=1372082679]
            [quote][font=Verdana][size=13px]至于1和2的domain很好实现[/size][/font][font=Verdana][/size][size=13px]1、['|',('user_id','=',user.id),('name','=',user.name)] #该规则使销售员只能看见自己名下的客户资料以及自己的资料[/size][/font][/quote][font=Verdana][size=13px]
            刚学习就很有心得,赞一个。
            这里[font=verdana, arial, helvetica, sans-serif][/size][size=78%] http://cn.openerp.cn/record_rule/ 多考虑了一点,就是客户可以有公司和联系人两层关系的情况,供你参考。[/size][size=13px][/font][/size][/font]
            [/quote]


            谢谢,我学习学习

            1 条回复 最后回复
            0
            • S 离线
              S 离线
              stone2009
              写于 最后由 编辑
              #6

              [quote author=Jeff link=topic=7321.msg16743#msg16743 date=1372081556]
              建议写一个模块实现这个功能,不要在界面管理器里改动。
              [/quote]

              你的意思是在现有的sale模块上扩展这个功能?以便与将来系统更新和升级么?

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

                [quote author=digitalsatori link=topic=7321.msg16749#msg16749 date=1372082679]
                [quote][font=Verdana][size=13px]至于1和2的domain很好实现[/size][/font][font=Verdana][/size][size=13px]1、['|',('user_id','=',user.id),('name','=',user.name)] #该规则使销售员只能看见自己名下的客户资料以及自己的资料[/size][/font][/quote][font=Verdana][size=13px]
                刚学习就很有心得,赞一个。
                这里[font=verdana, arial, helvetica, sans-serif][/size][size=78%] http://cn.openerp.cn/record_rule/ 多考虑了一点,就是客户可以有公司和联系人两层关系的情况,供你参考。[/size][size=13px][/font][/size][/font]
                [/quote]


                仔细看了看这篇文章,受益匪浅,再次感谢

                我想是不是还应该加个条件啊,因为如果有user_id == False的条件,会让OE的系统用户也被罗列进来,这样会让销售员能看到OE里面的所有用户,这也不合适
                所以我的帖子里面加了个user_id=user.id | name=user.name条件

                1 条回复 最后回复
                0
                • JoshuaJ 离线
                  JoshuaJ 离线
                  Joshua 管理员
                  写于 最后由 编辑
                  #8

                  谢谢楼主分享。

                  【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                  1 条回复 最后回复
                  0
                  • Z 离线
                    Z 离线
                    zhong_163
                    写于 最后由 编辑
                    #9

                    学习。。。。

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

                      谢谢分享 ;D ;D ;D ;D

                      1 条回复 最后回复
                      0
                      • H 离线
                        H 离线
                        hcx4152
                        写于 最后由 编辑
                        #11

                        学习了

                        1 条回复 最后回复
                        0
                        • A 离线
                          A 离线
                          alanljj
                          写于 最后由 编辑
                          #12

                          很好,借用了。

                          管理视图的user_id还是没找到在哪里设置。

                          1 条回复 最后回复
                          0

                          • 登录

                          • 没有帐号? 注册

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