63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import frappe
 | |
| 
 | |
| 
 | |
| def update_lead_phone_numbers(contact, method):
 | |
| 	if contact.phone_nos:
 | |
| 		contact_lead = contact.get_link_for("Lead")
 | |
| 		if contact_lead:
 | |
| 			phone = mobile_no = contact.phone_nos[0].phone
 | |
| 
 | |
| 			if len(contact.phone_nos) > 1:
 | |
| 				# get the default phone number
 | |
| 				primary_phones = [
 | |
| 					phone_doc.phone for phone_doc in contact.phone_nos if phone_doc.is_primary_phone
 | |
| 				]
 | |
| 				if primary_phones:
 | |
| 					phone = primary_phones[0]
 | |
| 
 | |
| 				# get the default mobile number
 | |
| 				primary_mobile_nos = [
 | |
| 					phone_doc.phone for phone_doc in contact.phone_nos if phone_doc.is_primary_mobile_no
 | |
| 				]
 | |
| 				if primary_mobile_nos:
 | |
| 					mobile_no = primary_mobile_nos[0]
 | |
| 
 | |
| 			lead = frappe.get_doc("Lead", contact_lead)
 | |
| 			lead.db_set("phone", phone)
 | |
| 			lead.db_set("mobile_no", mobile_no)
 | |
| 
 | |
| 
 | |
| def copy_comments(doctype, docname, doc):
 | |
| 	comments = frappe.db.get_values(
 | |
| 		"Comment",
 | |
| 		filters={"reference_doctype": doctype, "reference_name": docname, "comment_type": "Comment"},
 | |
| 		fieldname="*",
 | |
| 	)
 | |
| 	for comment in comments:
 | |
| 		comment = frappe.get_doc(comment.update({"doctype": "Comment"}))
 | |
| 		comment.name = None
 | |
| 		comment.reference_doctype = doc.doctype
 | |
| 		comment.reference_name = doc.name
 | |
| 		comment.insert()
 | |
| 
 | |
| 
 | |
| def add_link_in_communication(doctype, docname, doc):
 | |
| 	communication_list = get_linked_communication_list(doctype, docname)
 | |
| 
 | |
| 	for communication in communication_list:
 | |
| 		communication_doc = frappe.get_doc("Communication", communication)
 | |
| 		communication_doc.add_link(doc.doctype, doc.name, autosave=True)
 | |
| 
 | |
| 
 | |
| def get_linked_communication_list(doctype, docname):
 | |
| 	communications = frappe.get_all(
 | |
| 		"Communication", filters={"reference_doctype": doctype, "reference_name": docname}, pluck="name"
 | |
| 	)
 | |
| 	communication_links = frappe.get_all(
 | |
| 		"Communication Link",
 | |
| 		{"link_doctype": doctype, "link_name": docname, "parent": ("not in", communications)},
 | |
| 		pluck="parent",
 | |
| 	)
 | |
| 
 | |
| 	return communications + communication_links
 |