Odooers论坛

欢迎!

该社区面向专业人士和我们产品和服务的爱好者。
分享和讨论最好的内容和新的营销理念,建立您的专业形象,一起成为更好的营销人员。


0

How to get current company id odoo 15?

形象
odoo
2 注释
形象
丢弃
形象
odoo
-

self.env.context.get('company_id')

Why not get the company in context ?

形象
odoo
-

Derick: how did you use self.env.context.get('company_id') in domain of record rule?

5 答案
0
形象
odoo
最佳答案
env.context['allowed_company_ids'] and env.context['allowed_company_ids'][0]


allowed_company_ids is a list of integers representing the ID of each Company:


Example 1 - 

env.context['allowed_company_ids'] = [1,2,3]
env.context['allowed_company_ids'][0] = 1

 


Example 2 - 

env.context['allowed_company_ids'] = [2,1,3]
env.context['allowed_company_ids'][0] = 2



形象
丢弃
0
形象
odoo
最佳答案

Hello,

You have to try this domain [('company_id', 'in', company_ids)]

You can get active company ids in company_ids.

6 注释
形象
丢弃
形象
odoo
-

Sorry i've tried that, but company_ids is related from self.env.companies.ids and it showing full of Allowed Companies as the picture above, not current company.
http://i.imgur.com/W2YlCur.png

形象
odoo
-

If you select multiple companies from the user then you can get those company ids in company_ids. I recently used this domain.

形象
odoo
-

hmm, i do use multiple company, but as i check, that company_ids are return allowed companies. if i select company A, then i should only get company A in domain.

形象
odoo
-

You can get allowed company ids in user.allowed_company_ids

形象
odoo
-

thanks you but that's not what i'm asking, i just wanna know about CURRENT COMPANY.

形象
odoo
-

matter of fact, your solution is working perfectly for my request because we should get all the allowed companies instead of current company.

0
形象
odoo
最佳答案

Hello,

You can get current company from self.env.user.company_id. Company id will change according to the selection in the company switcher.

Thank you


1 备注
形象
丢弃
形象
odoo
-

thanks for reply, but as i check, the self.env.user.company_id is select default company instead of current company. is there something i'm missing?

0
形象
odoo
最佳答案

As i check, if we use context to get current company, and in case we using multi company, we can only get the first company.

In that case, we should use company_ids to get all the companies of user instead.

Example:



['|',('company_id','in',company_ids),('company_id','=',False)]


Hope it's help.

形象
丢弃
0
形象
odoo
最佳答案

You can use:

self.env.company

And not:
self.env.user.company_id


形象
丢弃