odoo公司可以共享同一个合作伙伴吗?在哪些场景下?
Can odoo companies share the same partner ? In which scenarios?
我看过创建新公司的odoo代码:
def create(self, cr, uid, vals, context=None):
if not vals.get('name', False) or vals.get('partner_id', False):
self.cache_restart(cr)
return super(res_company, self).create(cr, uid, vals, 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)
vals.update({'partner_id': partner_id})
self.cache_restart(cr)
company_id = super(res_company, self).create(cr, uid, vals, context=context)
obj_partner.write(cr, uid, [partner_id], {'company_id': company_id}, context=context)
return company_id
前三行似乎允许使用指定的合作伙伴创建新公司..
这似乎有意省略了给定合作伙伴与新创建公司的关联(最后 return 之前的行)。
这是一个错误还是他们想让一家公司与另一家公司共享合作伙伴?这在哪些情况下会有用?
据我所知,在 Odoo 8 或更早版本中,无法在公司之间共享联系人。很多客户要求我实现,因为他们想介绍在几个公司工作的联系人(甚至那些联系人是那些公司的主要联系人)。
事实上,您可以查看官方模块base_contact
的行为以在公司之间共享联系人。如果你读过这个模块的代码,你会发现实际上他们为每个公司创建了几个联系人,然后他们隐藏它们以使用户只能看到其中一个。
示例:您在Odoo公司创建了一个名为Yucer的联系人(此联系人将被创建为standalone
类型).然后,您想表明此合作伙伴也为公司 StackExchange 工作。当您执行此操作时,另一个联系人(具有与 Yucer 相同的数据)将存储在数据库中,类型为 attached
。当你搜索 Yucer 时,你只会看到 standalone
一个,但是如果你检查 Odoo 和 StackExchange ,你会在两者中看到鱼策。他们还修改了 res.partner
模型的 ORM 方法,例如 unlink
,以在删除主要联系人时删除所有克隆的联系人。
我看过创建新公司的odoo代码:
def create(self, cr, uid, vals, context=None):
if not vals.get('name', False) or vals.get('partner_id', False):
self.cache_restart(cr)
return super(res_company, self).create(cr, uid, vals, 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)
vals.update({'partner_id': partner_id})
self.cache_restart(cr)
company_id = super(res_company, self).create(cr, uid, vals, context=context)
obj_partner.write(cr, uid, [partner_id], {'company_id': company_id}, context=context)
return company_id
前三行似乎允许使用指定的合作伙伴创建新公司..
这似乎有意省略了给定合作伙伴与新创建公司的关联(最后 return 之前的行)。
这是一个错误还是他们想让一家公司与另一家公司共享合作伙伴?这在哪些情况下会有用?
据我所知,在 Odoo 8 或更早版本中,无法在公司之间共享联系人。很多客户要求我实现,因为他们想介绍在几个公司工作的联系人(甚至那些联系人是那些公司的主要联系人)。
事实上,您可以查看官方模块base_contact
的行为以在公司之间共享联系人。如果你读过这个模块的代码,你会发现实际上他们为每个公司创建了几个联系人,然后他们隐藏它们以使用户只能看到其中一个。
示例:您在Odoo公司创建了一个名为Yucer的联系人(此联系人将被创建为standalone
类型).然后,您想表明此合作伙伴也为公司 StackExchange 工作。当您执行此操作时,另一个联系人(具有与 Yucer 相同的数据)将存储在数据库中,类型为 attached
。当你搜索 Yucer 时,你只会看到 standalone
一个,但是如果你检查 Odoo 和 StackExchange ,你会在两者中看到鱼策。他们还修改了 res.partner
模型的 ORM 方法,例如 unlink
,以在删除主要联系人时删除所有克隆的联系人。