[fix] link address via owner, if created in portal #3540

This commit is contained in:
Rushabh Mehta 2015-07-09 11:08:51 +05:30
parent 621d6eac3c
commit f0737667c6

View File

@ -21,6 +21,8 @@ class Address(Document):
throw(_("Address Title is mandatory."))
def validate(self):
self.link_fields = ("customer", "supplier", "sales_partner", "lead")
self.link_address()
self.validate_primary_address()
self.validate_shipping_address()
@ -30,7 +32,7 @@ class Address(Document):
self._unset_other("is_primary_address")
elif self.is_shipping_address != 1:
for fieldname in ["customer", "supplier", "sales_partner", "lead"]:
for fieldname in self.link_fields:
if self.get(fieldname):
if not frappe.db.sql("""select name from `tabAddress` where is_primary_address=1
and `%s`=%s and name!=%s""" % (fieldname, "%s", "%s"),
@ -38,6 +40,24 @@ class Address(Document):
self.is_primary_address = 1
break
def link_address(self):
"""Link address based on owner"""
linked = False
for fieldname in self.link_fields:
if self.get(fieldname):
linked = True
break
if not linked:
contact = frappe.db.get_value("Contact", {"email_id": self.owner},
("name", "customer", "supplier"), as_dict = True)
if contact:
self.customer = contact.customer
self.supplier = contact.supplier
self.lead = frappe.db.get_value("Lead", {"email_id": self.owner})
def validate_shipping_address(self):
"""Validate that there can only be one shipping address for particular customer, supplier"""
if self.is_shipping_address == 1:
@ -103,5 +123,3 @@ def has_website_permission(doc, ptype, user, verbose=False):
return doc.lead == lead
return False