[FIX] base: _compute_commercial_partner

Before the fix:

*Scenario 1:

create company A as a res.partner

on company A, add an individual contact B

on individual B, add an individual contact C

on individual C, go in accounting tab, click on 'parent company' link, you arrive on company A

*Scenario 2:

create individual B

add a contact individual C on individual B

create company A

on individual B, select a parent company A

on individual C, go in accounting tab, click on 'parent company' link, you arrive on B

After the fix, on each scenario, you arrive on company A.

opw:706757
This commit is contained in:
Goffin Simon
2017-02-07 22:53:40 +01:00
parent bc2f8f9a40
commit 0d68acff8e
+5
View File
@@ -429,6 +429,7 @@ class Partner(models.Model, FormatAddress):
sync_children = self.child_ids.filtered(lambda c: not c.is_company)
for child in sync_children:
child._commercial_sync_to_children()
sync_children._compute_commercial_partner()
return sync_children.write(sync_vals)
@api.multi
@@ -452,6 +453,10 @@ class Partner(models.Model, FormatAddress):
commercial_fields = self._commercial_fields()
if any(field in values for field in commercial_fields):
self._commercial_sync_to_children()
for child in self.child_ids.filtered(lambda c: not c.is_company):
if child.commercial_partner_id != self.commercial_partner_id :
self._commercial_sync_to_children()
break
# 2b. Address fields: sync if address changed
address_fields = self._address_fields()
if any(field in values for field in address_fields):