116 lines
2.6 KiB
JavaScript
116 lines
2.6 KiB
JavaScript
frappe.ui.form.on("Communication", {
|
|
refresh: (frm) => {
|
|
// setup custom Make button only if Communication is Email
|
|
if (frm.doc.communication_medium == "Email" && frm.doc.sent_or_received == "Received") {
|
|
frm.events.setup_custom_buttons(frm);
|
|
}
|
|
},
|
|
|
|
setup_custom_buttons: (frm) => {
|
|
let confirm_msg = "Are you sure you want to create {0} from this email?";
|
|
if (frm.doc.reference_doctype !== "Issue") {
|
|
frm.add_custom_button(
|
|
__("Issue"),
|
|
() => {
|
|
frappe.confirm(__(confirm_msg, [__("Issue")]), () => {
|
|
frm.trigger("make_issue_from_communication");
|
|
});
|
|
},
|
|
__("Create")
|
|
);
|
|
}
|
|
|
|
if (!in_list(["Lead", "Opportunity"], frm.doc.reference_doctype)) {
|
|
frm.add_custom_button(
|
|
__("Lead"),
|
|
() => {
|
|
frappe.confirm(__(confirm_msg, [__("Lead")]), () => {
|
|
frm.trigger("make_lead_from_communication");
|
|
});
|
|
},
|
|
__("Create")
|
|
);
|
|
|
|
frm.add_custom_button(
|
|
__("Opportunity"),
|
|
() => {
|
|
frappe.confirm(__(confirm_msg, [__("Opportunity")]), () => {
|
|
frm.trigger("make_opportunity_from_communication");
|
|
});
|
|
},
|
|
__("Create")
|
|
);
|
|
}
|
|
},
|
|
|
|
make_lead_from_communication: (frm) => {
|
|
return frappe.call({
|
|
method: "erpnext.crm.doctype.lead.lead.make_lead_from_communication",
|
|
args: {
|
|
communication: frm.doc.name,
|
|
},
|
|
freeze: true,
|
|
callback: (r) => {
|
|
if (r.message) {
|
|
frm.reload_doc();
|
|
}
|
|
},
|
|
});
|
|
},
|
|
|
|
make_issue_from_communication: (frm) => {
|
|
return frappe.call({
|
|
method: "erpnext.support.doctype.issue.issue.make_issue_from_communication",
|
|
args: {
|
|
communication: frm.doc.name,
|
|
},
|
|
freeze: true,
|
|
callback: (r) => {
|
|
if (r.message) {
|
|
frm.reload_doc();
|
|
}
|
|
},
|
|
});
|
|
},
|
|
|
|
make_opportunity_from_communication: (frm) => {
|
|
const fields = [
|
|
{
|
|
fieldtype: "Link",
|
|
label: __("Select a Company"),
|
|
fieldname: "company",
|
|
options: "Company",
|
|
reqd: 1,
|
|
default: frappe.defaults.get_user_default("Company"),
|
|
},
|
|
];
|
|
|
|
frappe.prompt(
|
|
fields,
|
|
(data) => {
|
|
frappe.call({
|
|
method: "erpnext.crm.doctype.opportunity.opportunity.make_opportunity_from_communication",
|
|
args: {
|
|
communication: frm.doc.name,
|
|
company: data.company,
|
|
},
|
|
freeze: true,
|
|
callback: (r) => {
|
|
if (r.message) {
|
|
frm.reload_doc();
|
|
frappe.show_alert({
|
|
message: __("Opportunity {0} created", [
|
|
'<a href="/app/opportunity/' + r.message + '">' + r.message + "</a>",
|
|
]),
|
|
indicator: "green",
|
|
});
|
|
}
|
|
},
|
|
});
|
|
},
|
|
"Create an Opportunity",
|
|
"Create"
|
|
);
|
|
},
|
|
});
|