python - odoo公​​司可以共享同一个合作伙伴吗?在哪些情况下?

标签 python python-2.7 odoo-8 odoo erp

看到创建新公司的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

前三行似乎允许使用指定的合作伙伴创建新公司..

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

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

最佳答案

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

实际上,您可以查看官方模块base_contact 的行为,以在公司之间共享联系人。如果你读过这个模块的代码,你会发现实际上他们为每个公司创建了多个联系人,然后他们隐藏它们以使用户只能看到其中一个。

示例:您在 Odoo 公司中创建了一个名为 Yucer 的联系人(此联系人将被创建为 standalone 类型)。然后,您要表明此合作伙伴也为 StackExchange 公司工作。当您执行此操作时,另一个联系人(具有与 Yucer 相同的数据)将存储在数据库中,类型为 attached。当您搜索 Yucer 时,您只会看到 standalone,但如果您检查 OdooStackExchange,你会在两者中看到 Yucer。他们还修改了 res.partner 模型的 ORM 方法,如 unlink,以在删除主要联系人时删除所有克隆的联系人。

关于python - odoo公​​司可以共享同一个合作伙伴吗?在哪些情况下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32946897/

相关文章:

Python split 无法识别连字符

python - 删除指定区域中的 x,y 坐标的最有效方法

python - odoo Fill one2many 从一个模型到另一个模型

odoo - odoo 10 中 res_model、src_model 和模型术语有什么区别?

python - 处理 pandas 列名称与动态列名称的连接

python - 强制 numpy 创建对象数组

python - 如何水平连接 2 个数据框(按行和按列)?

python - Popen 在 Python 2.7 中不返回

Python:为什么引用列表的变量范围不同于引用任何其他数据结构或数据类型的变量?

python-3.x - 在销售订单表单中显示值列表