fix(crm): ensure primary address and contact follows customer setting (#37710)

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
This commit is contained in:
David Arnold 2023-11-11 15:50:21 +01:00 committed by GitHub
parent 59438ee8d4
commit a74e1f1600
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View File

@ -7,6 +7,8 @@ from frappe.contacts.address_and_contact import (
delete_contact_and_address,
load_address_and_contact,
)
from frappe.contacts.doctype.address.address import get_default_address
from frappe.contacts.doctype.contact.contact import get_default_contact
from frappe.email.inbox import link_communication_to_document
from frappe.model.mapper import get_mapped_doc
from frappe.utils import comma_and, get_link_to_form, has_gravatar, validate_email_address
@ -251,6 +253,13 @@ def _make_customer(source_name, target_doc=None, ignore_permissions=False):
target.customer_group = frappe.db.get_default("Customer Group")
address = get_default_address("Lead", source.name)
contact = get_default_contact("Lead", source.name)
if address:
target.customer_primary_address = address
if contact:
target.customer_primary_contact = contact
doclist = get_mapped_doc(
"Lead",
source_name,

View File

@ -186,6 +186,8 @@ class Customer(TransactionBase):
self.db_set("customer_primary_contact", contact.name)
self.db_set("mobile_no", self.mobile_no)
self.db_set("email_id", self.email_id)
elif self.customer_primary_contact:
frappe.set_value("Contact", self.customer_primary_contact, "is_primary_contact", 1) # ensure
def create_primary_address(self):
from frappe.contacts.doctype.address.address import get_address_display
@ -196,6 +198,8 @@ class Customer(TransactionBase):
self.db_set("customer_primary_address", address.name)
self.db_set("primary_address", address_display)
elif self.customer_primary_address:
frappe.set_value("Address", self.customer_primary_address, "is_primary_address", 1) # ensure
def update_lead_status(self):
"""If Customer created from Lead, update lead status to "Converted"
@ -312,6 +316,7 @@ def create_contact(contact, party_type, party, email):
"doctype": "Contact",
"first_name": contact[0],
"last_name": len(contact) > 1 and contact[1] or "",
"is_primary_contact": 1,
}
)
contact.append("email_ids", dict(email_id=email, is_primary=1))