[MERGE] forward port of branch saas-3 up to ebf317a
This commit is contained in:
@@ -140,6 +140,7 @@ class PaymentAcquirer(osv.Model):
|
||||
'country': tx.partner_country_id,
|
||||
'phone': tx.partner_phone,
|
||||
'reference': tx.partner_reference,
|
||||
'state': None,
|
||||
}
|
||||
else:
|
||||
if partner_id:
|
||||
@@ -154,6 +155,7 @@ class PaymentAcquirer(osv.Model):
|
||||
'country_id': partner.country_id.id,
|
||||
'country': partner.country_id,
|
||||
'phone': partner.phone,
|
||||
'state': partner.state_id,
|
||||
}
|
||||
else:
|
||||
partner, partner_data = False, {}
|
||||
|
||||
@@ -118,6 +118,7 @@ class AcquirerPaypal(osv.Model):
|
||||
'address1': partner_values['address'],
|
||||
'city': partner_values['city'],
|
||||
'country': partner_values['country'] and partner_values['country'].name or '',
|
||||
'state': partner_values['state'] and partner_values['state'].name or '',
|
||||
'email': partner_values['email'],
|
||||
'zip': partner_values['zip'],
|
||||
'first_name': partner_values['first_name'],
|
||||
@@ -226,7 +227,7 @@ class TxPaypal(osv.Model):
|
||||
# check seller
|
||||
if data.get('receiver_email') != tx.acquirer_id.paypal_email_account:
|
||||
invalid_parameters.append(('receiver_email', data.get('receiver_email'), tx.acquirer_id.paypal_email_account))
|
||||
if tx.acquirer_id.paypal_seller_account and data.get('receiver_id') != tx.acquirer_id.paypal_seller_account:
|
||||
if data.get('receiver_id') and tx.acquirer_id.paypal_seller_account and data['receiver_id'] != tx.acquirer_id.paypal_seller_account:
|
||||
invalid_parameters.append(('receiver_id', data.get('receiver_id'), tx.acquirer_id.paypal_seller_account))
|
||||
|
||||
return invalid_parameters
|
||||
|
||||
@@ -450,17 +450,31 @@ class res_partner(osv.osv, format_address):
|
||||
def _commercial_sync_from_company(self, cr, uid, partner, context=None):
|
||||
""" Handle sync of commercial fields when a new parent commercial entity is set,
|
||||
as if they were related fields """
|
||||
if partner.commercial_partner_id != partner:
|
||||
commercial_partner = partner.commercial_partner_id
|
||||
if not commercial_partner:
|
||||
# On child partner creation of a parent partner,
|
||||
# the commercial_partner_id is not yet computed
|
||||
commercial_partner_id = self._commercial_partner_compute(
|
||||
cr, uid, [partner.id], 'commercial_partner_id', [], context=context)[partner.id]
|
||||
commercial_partner = self.browse(cr, uid, commercial_partner_id, context=context)
|
||||
if commercial_partner != partner:
|
||||
commercial_fields = self._commercial_fields(cr, uid, context=context)
|
||||
sync_vals = self._update_fields_values(cr, uid, partner.commercial_partner_id,
|
||||
commercial_fields, context=context)
|
||||
sync_vals = self._update_fields_values(cr, uid, commercial_partner,
|
||||
commercial_fields, context=context)
|
||||
partner.write(sync_vals)
|
||||
|
||||
def _commercial_sync_to_children(self, cr, uid, partner, context=None):
|
||||
""" Handle sync of commercial fields to descendants """
|
||||
commercial_fields = self._commercial_fields(cr, uid, context=context)
|
||||
sync_vals = self._update_fields_values(cr, uid, partner.commercial_partner_id,
|
||||
commercial_fields, context=context)
|
||||
commercial_partner = partner.commercial_partner_id
|
||||
if not commercial_partner:
|
||||
# On child partner creation of a parent partner,
|
||||
# the commercial_partner_id is not yet computed
|
||||
commercial_partner_id = self._commercial_partner_compute(
|
||||
cr, uid, [partner.id], 'commercial_partner_id', [], context=context)[partner.id]
|
||||
commercial_partner = self.browse(cr, uid, commercial_partner_id, context=context)
|
||||
sync_vals = self._update_fields_values(cr, uid, commercial_partner,
|
||||
commercial_fields, context=context)
|
||||
sync_children = [c for c in partner.child_ids if not c.is_company]
|
||||
for child in sync_children:
|
||||
self._commercial_sync_to_children(cr, uid, child, context=context)
|
||||
|
||||
@@ -250,20 +250,24 @@ class test_base(common.TransactionCase):
|
||||
'parent_id': p1.id}))
|
||||
p2 = self.res_partner.browse(cr, uid, self.res_partner.search(cr, uid,
|
||||
[('email', '=', 'agr@sunhelm.com')])[0])
|
||||
self.res_partner.write(cr, uid, sunhelm.id, {'child_ids': [(0, 0, {'name': 'Ulrik Greenthorn',
|
||||
'email': 'ugr@sunhelm.com'})]})
|
||||
p3 = self.res_partner.browse(cr, uid, self.res_partner.search(cr, uid,
|
||||
[('email', '=', 'ugr@sunhelm.com')])[0])
|
||||
|
||||
for p in (p0, p1, p11, p2):
|
||||
for p in (p0, p1, p11, p2, p3):
|
||||
p.refresh()
|
||||
self.assertEquals(p.commercial_partner_id, sunhelm, 'Incorrect commercial entity resolution')
|
||||
self.assertEquals(p.vat, sunhelm.vat, 'Commercial fields must be automatically synced')
|
||||
sunhelmvat = 'BE0123456789'
|
||||
sunhelm.write({'vat': sunhelmvat})
|
||||
for p in (p0, p1, p11, p2):
|
||||
for p in (p0, p1, p11, p2, p3):
|
||||
p.refresh()
|
||||
self.assertEquals(p.vat, sunhelmvat, 'Commercial fields must be automatically and recursively synced')
|
||||
|
||||
p1vat = 'BE0987654321'
|
||||
p1.write({'vat': p1vat})
|
||||
for p in (sunhelm, p0, p11, p2):
|
||||
for p in (sunhelm, p0, p11, p2, p3):
|
||||
p.refresh()
|
||||
self.assertEquals(p.vat, sunhelmvat, 'Sync to children should only work downstream and on commercial entities')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user