From 6208755d540445cb1ca161bbc75976a7679d22a4 Mon Sep 17 00:00:00 2001 From: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com> Date: Mon, 21 Oct 2019 13:29:44 +0530 Subject: [PATCH] fix: Unable to add details in quotation and opportunity (#19354) --- erpnext/crm/doctype/lead/lead.py | 34 ++++++++++++++----- .../crm/doctype/opportunity/opportunity.js | 6 +--- .../selling/doctype/quotation/quotation.js | 3 -- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py index c9216ee0fa1..1dae4b9fc1c 100644 --- a/erpnext/crm/doctype/lead/lead.py +++ b/erpnext/crm/doctype/lead/lead.py @@ -146,14 +146,7 @@ def _make_customer(source_name, target_doc=None, ignore_permissions=False): @frappe.whitelist() def make_opportunity(source_name, target_doc=None): def set_missing_values(source, target): - address = frappe.get_all('Dynamic Link', { - 'link_doctype': source.doctype, - 'link_name': source.name, - 'parenttype': 'Address', - }, ['parent'], limit=1) - - if address: - target.customer_address = address[0].parent + _set_missing_values(source, target) target_doc = get_mapped_doc("Lead", source_name, {"Lead": { @@ -173,13 +166,17 @@ def make_opportunity(source_name, target_doc=None): @frappe.whitelist() def make_quotation(source_name, target_doc=None): + def set_missing_values(source, target): + _set_missing_values(source, target) + target_doc = get_mapped_doc("Lead", source_name, {"Lead": { "doctype": "Quotation", "field_map": { "name": "party_name" } - }}, target_doc) + }}, target_doc, set_missing_values) + target_doc.quotation_to = "Lead" target_doc.run_method("set_missing_values") target_doc.run_method("set_other_charges") @@ -187,6 +184,25 @@ def make_quotation(source_name, target_doc=None): return target_doc +def _set_missing_values(source, target): + address = frappe.get_all('Dynamic Link', { + 'link_doctype': source.doctype, + 'link_name': source.name, + 'parenttype': 'Address', + }, ['parent'], limit=1) + + contact = frappe.get_all('Dynamic Link', { + 'link_doctype': source.doctype, + 'link_name': source.name, + 'parenttype': 'Contact', + }, ['parent'], limit=1) + + if address: + target.customer_address = address[0].parent + + if contact: + target.contact_person = contact[0].parent + @frappe.whitelist() def get_lead_details(lead, posting_date=None, company=None): if not lead: return {} diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js index 6e4d3ede4bc..c9b0433fada 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.js +++ b/erpnext/crm/doctype/opportunity/opportunity.js @@ -100,10 +100,6 @@ frappe.ui.form.on("Opportunity", { }); } } - - if (frm.doc.opportunity_from && frm.doc.party_name && !frm.doc.contact_person) { - frm.trigger("party_name"); - } }, set_contact_link: function(frm) { @@ -171,7 +167,7 @@ erpnext.crm.Opportunity = frappe.ui.form.Controller.extend({ if (me.frm.doc.opportunity_from == "Lead") { me.frm.set_query('party_name', erpnext.queries['lead']); } - else if (me.frm.doc.opportunity_from == "Cuatomer") { + else if (me.frm.doc.opportunity_from == "Customer") { me.frm.set_query('party_name', erpnext.queries['customer']); } }, diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index fb5336b3761..12f32602f5a 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -23,9 +23,6 @@ frappe.ui.form.on('Quotation', { refresh: function(frm) { frm.trigger("set_label"); frm.trigger("set_dynamic_field_label"); - if (frm.doc.quotation_to && frm.doc.party_name && !frm.doc.contact_person) { - frm.trigger("party_name"); - } }, quotation_to: function(frm) {