Merge pull request #42014 from Nihantra-Patel/fix_lead_issue_dev

fix: creation of contact, customer, opportunity, quotation and prospect from lead
This commit is contained in:
ruthra kumar
2024-07-01 13:05:41 +05:30
committed by GitHub

View File

@@ -28,11 +28,11 @@ erpnext.LeadController = class LeadController extends frappe.ui.form.Controller
erpnext.toggle_naming_series();
if (!this.frm.is_new() && doc.__onload && !doc.__onload.is_customer) {
this.frm.add_custom_button(__("Customer"), this.make_customer, __("Create"));
this.frm.add_custom_button(__("Opportunity"), this.make_opportunity, __("Create"));
this.frm.add_custom_button(__("Quotation"), this.make_quotation, __("Create"));
this.frm.add_custom_button(__("Customer"), this.make_customer.bind(this), __("Create"));
this.frm.add_custom_button(__("Opportunity"), this.make_opportunity.bind(this), __("Create"));
this.frm.add_custom_button(__("Quotation"), this.make_quotation.bind(this), __("Create"));
if (!doc.__onload.linked_prospects.length) {
this.frm.add_custom_button(__("Prospect"), this.make_prospect, __("Create"));
this.frm.add_custom_button(__("Prospect"), this.make_prospect.bind(this), __("Create"));
this.frm.add_custom_button(__("Add to Prospect"), this.add_lead_to_prospect, __("Action"));
}
}
@@ -95,20 +95,22 @@ erpnext.LeadController = class LeadController extends frappe.ui.form.Controller
}
async make_opportunity() {
const frm = this.frm;
let existing_prospect = (
await frappe.db.get_value(
"Prospect Lead",
{
lead: this.frm.doc.name,
lead: frm.doc.name,
},
"name",
null,
"Prospect"
)
).message.name;
).message?.name;
let fields = [];
if (!existing_prospect) {
var fields = [
fields.push(
{
label: "Create Prospect",
fieldname: "create_prospect",
@@ -119,21 +121,25 @@ erpnext.LeadController = class LeadController extends frappe.ui.form.Controller
label: "Prospect Name",
fieldname: "prospect_name",
fieldtype: "Data",
default: this.frm.doc.company_name,
default: frm.doc.company_name,
reqd: 1,
depends_on: "create_prospect",
},
];
}
);
}
await frm.reload_doc();
let existing_contact = (
await frappe.db.get_value(
"Contact",
{
first_name: this.frm.doc.first_name || this.frm.doc.lead_name,
last_name: this.frm.doc.last_name,
first_name: frm.doc.first_name || frm.doc.lead_name,
last_name: frm.doc.last_name,
},
"name"
)
).message.name;
).message?.name;
if (!existing_contact) {
fields.push({
@@ -144,15 +150,14 @@ erpnext.LeadController = class LeadController extends frappe.ui.form.Controller
});
}
if (fields) {
var d = new frappe.ui.Dialog({
if (fields.length) {
const d = new frappe.ui.Dialog({
title: __("Create Opportunity"),
fields: fields,
primary_action: function () {
var data = d.get_values();
primary_action: function (data) {
frappe.call({
method: "create_prospect_and_contact",
doc: this.frm.doc,
doc: frm.doc,
args: {
data: data,
},
@@ -161,7 +166,7 @@ erpnext.LeadController = class LeadController extends frappe.ui.form.Controller
if (!r.exc) {
frappe.model.open_mapped_doc({
method: "erpnext.crm.doctype.lead.lead.make_opportunity",
frm: this.frm,
frm: frm,
});
}
d.hide();
@@ -174,7 +179,7 @@ erpnext.LeadController = class LeadController extends frappe.ui.form.Controller
} else {
frappe.model.open_mapped_doc({
method: "erpnext.crm.doctype.lead.lead.make_opportunity",
frm: this.frm,
frm: frm,
});
}
}