diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 22cd4a8d66a..7d357ed0c9e 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -508,6 +508,14 @@ class res_partner(osv.osv, format_address): if not parent.is_company: parent.write({'is_company': True}) + def unlink(self, cr, uid, ids, context=None): + orphan_contact_ids = self.search(cr, uid, + [('parent_id', 'in', ids), ('id', 'not in', ids), ('use_parent_address', '=', True)], context=context) + if orphan_contact_ids: + # no longer have a parent address + self.write(cr, uid, orphan_contact_ids, {'use_parent_address': False}, context=context) + return super(res_partner, self).unlink(cr, uid, ids, context=context) + def write(self, cr, uid, ids, vals, context=None): if isinstance(ids, (int, long)): ids = [ids]