多公司下的税率设置

事情的起因是这样的,公司的odoo系统使用了多公司,集团零售门店部门使用的是B公司,供应链系统使用的是A公司,某天B公司的采购报告,下不了采购单,提示res.company对象因为Rule的问题,没有访问权限。从后台日志中可以看到,B在下单的时候试图访问A公司的资料。

既然是安全规则的问题,那么我就去看了一下公司对象的设置,一切正常。奇怪的是B公司的采购明明只有B公司的访问权限,为什么要去访问A公司的资料呢?

根据前端提示的报错代码,定位到了,B公司采购在下单的时候使用了A公司的供应商税。问题又来了,B公司下采购单,为什么要访问A公司的税种呢?后来发现,A公司的采购税居然在B公司下可见,显然,税的访问设置出了问题。

我们找到税率的安全规则,看到了如下的访问设置:

1
[(1,'=',1)]

显然,这里的设置是不对的,改为

1
[('company_id','child_of',[user.company_id.id])]

即恢复正常。

结论

从上面的过程中,我们可以反思Odoo是如何处理多公司条件下的税种隔离方案,靠的就是安全规则,不同公司的人看到的税种不一样。而对于成本价,odoo的处理方式是另外一种,改天再细谈。

你的支持我的动力