[fix] link address via owner, if created in portal #3540
This commit is contained in:
parent
621d6eac3c
commit
f0737667c6
@ -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
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user