* fix: make all create buttons translatable * style: use double quotes --------- Co-authored-by: PatrickDenis-stack <77415730+PatrickDenis-stack@users.noreply.github.com> Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.4 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');
 | |
| 	}
 | |
| });
 |