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