销售订单的记录规则

关于记录规则是什么这个问题在前面已经讲过了,记录规则有简单也有复杂,要掌握需要花一点时间...

接下来通过实战来逐步探索一下记录规则的应用。

完成这个课程,首先你要保证你的Odoo具备如下条件:

  • 安装销售模块

  • 除了Admin之外,还要有两个用户:小白、小黑,这两个用户的权限组都选销售组的第一个,即销售/用户:仅自己的文档

  • 创建三个销售订单,在这里我就不能限制你的订单是SO001还是零零几了,这里我用A、B、C来替代,你自己自行对应吧。这三个销售订单的销售员都设置为空!

上述条件具备之后,开始我们的课程。

1、无论你用哪个用户登录系统,Admin、小白、小黑都是可以看到这三个订单的,当然了,在某些情况下也是可以编辑的。

接下来就要看记录规则的作用了。

1、将A订单的销售员设置为Admin。

你会发现小白、小黑这两个用户都看不到A订单了。

为什么呢?

因为 "销售/用户:仅用户的文档" 这个组包含了一条规则!规则的名字叫Personal Orders

这个时候,你最好是流畅的从你的系统中找到这条规则...这里不讲如何去找到,就讲规则的Domain是如何定义的:

['|',('user_id','=',user.id),('user_id','=',False)]

方括号里有三部分内容,第一部分的竖杠指的是接下来的两个括号是或者的关系,就是说A、B、C这些记录,符合第一个括号也行,符合第二个括号也行。

那么,这个括号是什么鬼呢?

每一个括号又分三部分,我习惯称为左、中、右。左边是字段,是这条规则所属对象的字段,在这个课程中,对象是sale.order,即销售订单。例如,user_id就是sale.order模型的一个字段,叫销售员。至于sale.order这个模型上有哪些字段,最好的方式是通过开发者模式来查看,毕竟我们常用的字段就是在form视图上显示的那些。

中间部分就好理解了,就是判断条件,等号就是判断是否相等,还有很多,这里就不展开,后续会有课程专门讲。

右边这部分是什么呢?是目标值。在这个地方,我们可以使用user这个对象,然后用点号来得到user这个对象的某个字段值,这样的话user.id就得到了当前登录系统的用户的id。

至于user这个对象有哪些字段,就跟销售订单模型有哪些字段一样,是一个问题。

而为什么销售订单模型的user_id字段的目标值要与一个整数相比较呢?因为user_id这个字段是Many2one类型的。

留下评论

你应该 登入 张贴评论