Merge lp:~unifield-team/unifield-server/us-1716 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 4208
Proposed branch: lp:~unifield-team/unifield-server/us-1716
Merge into: lp:unifield-server
Diff against target: 59 lines (+27/-2)
1 file modified
bin/addons/msf_partner/partner.py (+27/-2)
To merge this branch: bzr merge lp:~unifield-team/unifield-server/us-1716
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+317101@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jeff Allen (jr.allen) :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/addons/msf_partner/partner.py'
--- bin/addons/msf_partner/partner.py 2017-01-20 14:37:30 +0000
+++ bin/addons/msf_partner/partner.py 2017-02-13 13:48:00 +0000
@@ -626,6 +626,8 @@
626 return super(res_partner, self).write(cr, uid, ids, vals, context=context)626 return super(res_partner, self).write(cr, uid, ids, vals, context=context)
627627
628 def create(self, cr, uid, vals, context=None):628 def create(self, cr, uid, vals, context=None):
629 if context is None:
630 context = {}
629 vals = self.check_pricelists_vals(cr, uid, vals, context=context)631 vals = self.check_pricelists_vals(cr, uid, vals, context=context)
630 if 'partner_type' in vals and vals['partner_type'] in ('internal', 'section', 'esc', 'intermission'):632 if 'partner_type' in vals and vals['partner_type'] in ('internal', 'section', 'esc', 'intermission'):
631 msf_customer = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'stock_location_internal_customers')633 msf_customer = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'stock_location_internal_customers')
@@ -645,7 +647,7 @@
645 elif pl.type == 'purchase':647 elif pl.type == 'purchase':
646 vals['property_product_pricelist_purchase'] = pl.id648 vals['property_product_pricelist_purchase'] = pl.id
647649
648 if not vals.get('address'):650 if not context.get('sync_update_execution') and not vals.get('address'):
649 vals['address'] = [(0, 0, {'function': False, 'city': False, 'fax': False, 'name': False, 'zip': False, 'title': False, 'mobile': False, 'street2': False, 'country_id': False, 'phone': False, 'street': False, 'active': True, 'state_id': False, 'type': False, 'email': False})]651 vals['address'] = [(0, 0, {'function': False, 'city': False, 'fax': False, 'name': False, 'zip': False, 'title': False, 'mobile': False, 'street2': False, 'country_id': False, 'phone': False, 'street': False, 'active': True, 'state_id': False, 'type': False, 'email': False})]
650652
651 if vals.get('name'):653 if vals.get('name'):
@@ -873,6 +875,26 @@
873 '''875 '''
874 Remove empty addresses if exist and create the new one876 Remove empty addresses if exist and create the new one
875 '''877 '''
878 def src_addr_link(addresses):
879 cr.execute("""
880 SELECT ccu.constraint_name
881 FROM information_schema.constraint_column_usage ccu
882 WHERE ccu.table_name = %s AND ccu.table_catalog = %s""", (self._table, cr.dbname))
883 constraints = cr.fetchall()
884 cr.execute("""
885 SELECT kcu.column_name, kcu.table_name
886 FROM information_schema.key_column_usage kcu
887 WHERE kcu.table_catalog = %s AND kcu.constraint_name IN %s""", (cr.dbname, tuple([x[0] for x in constraints])))
888 for column, table in cr.fetchall():
889 if table == self._table:
890 continue
891 cr.execute("""SELECT count(id) FROM %s WHERE %s IN %%s""" % (table, column), (tuple(addresses),))
892 res = cr.fetchall()
893 if res[0][0]:
894 return True
895
896 return False
897
876 if vals.get('partner_id'):898 if vals.get('partner_id'):
877 domain_dict = {899 domain_dict = {
878 'partner_id': vals.get('partner_id'),900 'partner_id': vals.get('partner_id'),
@@ -894,7 +916,10 @@
894 }916 }
895 domain = [(k, '=', v) for k, v in domain_dict.iteritems()]917 domain = [(k, '=', v) for k, v in domain_dict.iteritems()]
896 addr_ids = self.search(cr, uid, domain, context=context)918 addr_ids = self.search(cr, uid, domain, context=context)
897 self.unlink(cr, uid, addr_ids, context=context)919 if addr_ids and not src_addr_link(addr_ids):
920 self.unlink(cr, uid, addr_ids, context=context)
921 elif addr_ids:
922 self.write(cr, uid, addr_ids, {'active': False}, context=context)
898923
899 return super(res_partner_address, self).create(cr, uid, vals, context=context)924 return super(res_partner_address, self).create(cr, uid, vals, context=context)
900925

Subscribers

People subscribed via source and target branches

to all changes: