[lead] [address] store lead address in Address doctype, with link field=lead
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index c86a50e..2def0ea 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -170,21 +170,30 @@
# Get Lead Details
# -----------------------
- def get_lead_details(self, name):
- details = webnotes.conn.sql("select name, lead_name, address_line1, address_line2, city, country, state, pincode, territory, phone, mobile_no, email_id, company_name from `tabLead` where name = '%s'" %(name), as_dict = 1)
-
- extract = lambda x: details and details[0] and details[0].get(x,'') or ''
- address_fields = [('','address_line1'),('\n','address_line2'),('\n','city'),(' ','pincode'),('\n','state'),('\n','country'),('\nPhone: ','contact_no')]
- address_display = ''.join([a[0]+extract(a[1]) for a in address_fields if extract(a[1])])
- if address_display.startswith('\n'): address_display = address_display[1:]
+ def get_lead_details(self, name):
+ details = webnotes.conn.sql("""select name, lead_name, address_line1, address_line2, city, country, state, pincode
+ from `tabAddress` where lead=%s""", name, as_dict=True)
+ lead = webnotes.conn.get_value("Lead", name,
+ ["territory", "phone", "mobile_no", "email_id", "company_name", "lead_name"], as_dict=True) or {}
+
+ address_display = ""
+ if details:
+ details = details[0]
+ for separator, fieldname in (('','address_line1'), ('\n','address_line2'), ('\n','city'),
+ (' ','pincode'), ('\n','state'), ('\n','country'), ('\nPhone: ', 'phone')):
+ if details.get(fieldname):
+ address_display += separator + details.get(fieldname)
+
+ if address_display.startswith('\n'):
+ address_display = address_display[1:]
ret = {
- 'contact_display' : extract('lead_name'),
+ 'contact_display' : lead.get('lead_name'),
'address_display' : address_display,
- 'territory' : extract('territory'),
- 'contact_mobile' : extract('mobile_no'),
- 'contact_email' : extract('email_id'),
- 'customer_name' : extract('company_name') or extract('lead_name')
+ 'territory' : lead.get('territory'),
+ 'contact_mobile' : lead.get('mobile_no'),
+ 'contact_email' : lead.get('email_id'),
+ 'customer_name' : lead.get('company_name') or lead.get('lead_name')
}
return ret