Python 奥多公司能否共享同一个合作伙伴?在哪种情况下?

Python 奥多公司能否共享同一个合作伙伴?在哪种情况下?,python,python-2.7,odoo-8,odoo,erp,Python,Python 2.7,Odoo 8,Odoo,Erp,我见过创建新公司的odoo代码: def创建(self、cr、uid、vals、context=None): 如果不是VAL.get('name',False)或VAL.get('partner_id',False): 自缓存重新启动(cr) 返回super(res_company,self).create(cr,uid,VAL,context=context) obj_partner=self.pool.get('res.partner')) partner_id=obj_partner.cr

我见过创建新公司的odoo代码:

def创建(self、cr、uid、vals、context=None):
如果不是VAL.get('name',False)或VAL.get('partner_id',False):
自缓存重新启动(cr)
返回super(res_company,self).create(cr,uid,VAL,context=context)
obj_partner=self.pool.get('res.partner'))
partner_id=obj_partner.create(cr,uid,{'name':vals['name'],'is_company':True,'image':vals.get('logo',False)},context=context)
更新({'partner\u id':partner\u id})
自缓存重新启动(cr)
公司id=super(res_company,self)。创建(cr,uid,VAL,context=context)
写入(cr,uid,[partner\u id],{'company\u id':company\u id},context=context)
返回公司id
前三行似乎允许使用指定的合作伙伴创建新公司

这似乎有意省略了给定合作伙伴与新创建公司的关联(上次返回前的行)


这是一个bug还是他们想让一家公司与另一家公司共享合作伙伴?在哪些情况下这会有用?

据我所知,在Odoo 8或更早版本中,公司之间不可能共享联系人。很多客户要求我实现这一点,因为他们想介绍在多家公司工作的联系人(甚至这些联系人也是这些公司的主要联系人)

事实上,您可以检查官方模块
base\u contact
的行为,以便在公司之间共享联系人。如果您阅读本模块的代码,您会意识到实际上他们正在为每个公司创建多个联系人,然后将其隐藏,以便用户只看到其中一个联系人

示例:在公司Odoo中创建一个名为Yucer的联系人(此联系人将创建为
standalone
type)。然后,您希望指出该合作伙伴也为StackExchange公司工作。执行此操作时,数据库中会存储另一个联系人(具有与Yucer相同的数据),类型为
已附加
。当您搜索Yucer时,您将只看到
独立的
一个,但是如果您选中Odoo和StackExchange,您将在它们两个中看到Yucer。他们还修改了
res.partner
模型的ORM方法,如
unlink
,以便在删除主联系人时删除所有克隆联系人