[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."))
|
throw(_("Address Title is mandatory."))
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
self.link_fields = ("customer", "supplier", "sales_partner", "lead")
|
||||||
|
self.link_address()
|
||||||
self.validate_primary_address()
|
self.validate_primary_address()
|
||||||
self.validate_shipping_address()
|
self.validate_shipping_address()
|
||||||
|
|
||||||
@ -30,7 +32,7 @@ class Address(Document):
|
|||||||
self._unset_other("is_primary_address")
|
self._unset_other("is_primary_address")
|
||||||
|
|
||||||
elif self.is_shipping_address != 1:
|
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 self.get(fieldname):
|
||||||
if not frappe.db.sql("""select name from `tabAddress` where is_primary_address=1
|
if not frappe.db.sql("""select name from `tabAddress` where is_primary_address=1
|
||||||
and `%s`=%s and name!=%s""" % (fieldname, "%s", "%s"),
|
and `%s`=%s and name!=%s""" % (fieldname, "%s", "%s"),
|
||||||
@ -38,6 +40,24 @@ class Address(Document):
|
|||||||
self.is_primary_address = 1
|
self.is_primary_address = 1
|
||||||
break
|
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):
|
def validate_shipping_address(self):
|
||||||
"""Validate that there can only be one shipping address for particular customer, supplier"""
|
"""Validate that there can only be one shipping address for particular customer, supplier"""
|
||||||
if self.is_shipping_address == 1:
|
if self.is_shipping_address == 1:
|
||||||
@ -103,5 +123,3 @@ def has_website_permission(doc, ptype, user, verbose=False):
|
|||||||
return doc.lead == lead
|
return doc.lead == lead
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user