blob: d9187f8b6788c2b191cb157059aab28bf3e2603f [file] [log] [blame]
mbauskarf54b1042017-03-13 16:32:46 +05301frappe.ui.form.on("Communication", {
Makarand Bauskarf23788b2017-10-05 14:19:45 +05302 refresh: (frm) => {
3 // setup custom Make button only if Communication is Email
Ankush Menatec74a5e2024-03-10 19:45:40 +05304 if (frm.doc.communication_medium == "Email" && frm.doc.sent_or_received == "Received") {
Makarand Bauskarf23788b2017-10-05 14:19:45 +05305 frm.events.setup_custom_buttons(frm);
6 }
7 },
8
9 setup_custom_buttons: (frm) => {
Maricac23797e2020-08-20 19:12:12 +053010 let confirm_msg = "Are you sure you want to create {0} from this email?";
Ankush Menatec74a5e2024-03-10 19:45:40 +053011 if (frm.doc.reference_doctype !== "Issue") {
12 frm.add_custom_button(
13 __("Issue"),
14 () => {
15 frappe.confirm(__(confirm_msg, [__("Issue")]), () => {
16 frm.trigger("make_issue_from_communication");
17 });
18 },
19 __("Create")
20 );
mbauskarf54b1042017-03-13 16:32:46 +053021 }
22
Ankush Menatec74a5e2024-03-10 19:45:40 +053023 if (!in_list(["Lead", "Opportunity"], frm.doc.reference_doctype)) {
24 frm.add_custom_button(
25 __("Lead"),
26 () => {
27 frappe.confirm(__(confirm_msg, [__("Lead")]), () => {
28 frm.trigger("make_lead_from_communication");
29 });
30 },
31 __("Create")
32 );
mbauskarf54b1042017-03-13 16:32:46 +053033
Ankush Menatec74a5e2024-03-10 19:45:40 +053034 frm.add_custom_button(
35 __("Opportunity"),
36 () => {
37 frappe.confirm(__(confirm_msg, [__("Opportunity")]), () => {
38 frm.trigger("make_opportunity_from_communication");
39 });
40 },
41 __("Create")
42 );
mbauskarf54b1042017-03-13 16:32:46 +053043 }
mbauskarf54b1042017-03-13 16:32:46 +053044 },
45
Makarand Bauskarf23788b2017-10-05 14:19:45 +053046 make_lead_from_communication: (frm) => {
mbauskarf54b1042017-03-13 16:32:46 +053047 return frappe.call({
Rohit Waghchaure270d4e92019-04-19 11:20:41 +053048 method: "erpnext.crm.doctype.lead.lead.make_lead_from_communication",
mbauskarf54b1042017-03-13 16:32:46 +053049 args: {
Ankush Menatec74a5e2024-03-10 19:45:40 +053050 communication: frm.doc.name,
mbauskarf54b1042017-03-13 16:32:46 +053051 },
52 freeze: true,
Makarand Bauskarf23788b2017-10-05 14:19:45 +053053 callback: (r) => {
Ankush Menatec74a5e2024-03-10 19:45:40 +053054 if (r.message) {
55 frm.reload_doc();
mbauskarf54b1042017-03-13 16:32:46 +053056 }
Ankush Menatec74a5e2024-03-10 19:45:40 +053057 },
58 });
mbauskarf54b1042017-03-13 16:32:46 +053059 },
60
Makarand Bauskarf23788b2017-10-05 14:19:45 +053061 make_issue_from_communication: (frm) => {
mbauskarf54b1042017-03-13 16:32:46 +053062 return frappe.call({
Rohit Waghchaure270d4e92019-04-19 11:20:41 +053063 method: "erpnext.support.doctype.issue.issue.make_issue_from_communication",
mbauskarf54b1042017-03-13 16:32:46 +053064 args: {
Ankush Menatec74a5e2024-03-10 19:45:40 +053065 communication: frm.doc.name,
mbauskarf54b1042017-03-13 16:32:46 +053066 },
67 freeze: true,
Makarand Bauskarf23788b2017-10-05 14:19:45 +053068 callback: (r) => {
Ankush Menatec74a5e2024-03-10 19:45:40 +053069 if (r.message) {
70 frm.reload_doc();
mbauskarf54b1042017-03-13 16:32:46 +053071 }
Ankush Menatec74a5e2024-03-10 19:45:40 +053072 },
73 });
mbauskarf54b1042017-03-13 16:32:46 +053074 },
75
Makarand Bauskarf23788b2017-10-05 14:19:45 +053076 make_opportunity_from_communication: (frm) => {
Ankush Menatec74a5e2024-03-10 19:45:40 +053077 const fields = [
78 {
79 fieldtype: "Link",
80 label: __("Select a Company"),
81 fieldname: "company",
82 options: "Company",
83 reqd: 1,
84 default: frappe.defaults.get_user_default("Company"),
85 },
86 ];
Maricac23797e2020-08-20 19:12:12 +053087
Ankush Menatec74a5e2024-03-10 19:45:40 +053088 frappe.prompt(
89 fields,
90 (data) => {
91 frappe.call({
92 method: "erpnext.crm.doctype.opportunity.opportunity.make_opportunity_from_communication",
93 args: {
94 communication: frm.doc.name,
95 company: data.company,
96 },
97 freeze: true,
98 callback: (r) => {
99 if (r.message) {
100 frm.reload_doc();
101 frappe.show_alert({
102 message: __("Opportunity {0} created", [
103 '<a href="/app/opportunity/' + r.message + '">' + r.message + "</a>",
104 ]),
105 indicator: "green",
106 });
107 }
108 },
109 });
110 },
111 "Create an Opportunity",
112 "Create"
113 );
114 },
Maricac23797e2020-08-20 19:12:12 +0530115});