62 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 | |
| // License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| cur_frm.cscript.onload = function(doc, cdt, cdn) {
 | |
| 	cur_frm.add_fetch('customer', 'customer_name', 'customer_name');
 | |
| 	cur_frm.add_fetch('supplier', 'supplier_name', 'supplier_name');
 | |
| 
 | |
| 	cur_frm.fields_dict.customer.get_query = erpnext.queries.customer;
 | |
| 	cur_frm.fields_dict.supplier.get_query = erpnext.queries.supplier;
 | |
| 
 | |
| 	if(cur_frm.fields_dict.lead) {
 | |
| 		cur_frm.fields_dict.lead.get_query = erpnext.queries.lead;
 | |
| 		cur_frm.add_fetch('lead', 'lead_name', 'lead_name');
 | |
| 	}
 | |
| 
 | |
| 	if(doc.__islocal) {
 | |
| 		var last_route = frappe.route_history.slice(-2, -1)[0];
 | |
| 		if(last_route && last_route[0]==="Form") {
 | |
| 			var doctype = last_route[1],
 | |
| 				docname = last_route.slice(2).join("/");
 | |
| 
 | |
| 			if(["Customer", "Quotation", "Sales Order", "Sales Invoice", "Delivery Note",
 | |
| 				"Installation Note", "Opportunity", "Warranty Claim", "Maintenance Visit",
 | |
| 				"Maintenance Schedule"]
 | |
| 				.indexOf(doctype)!==-1) {
 | |
| 				var refdoc = frappe.get_doc(doctype, docname);
 | |
| 				if((refdoc.doctype == "Quotation" && refdoc.quotation_to=="Customer") ||
 | |
| 					(refdoc.doctype == "Opportunity" && refdoc.enquiry_from=="Customer") ||
 | |
| 					!in_list(["Opportunity", "Quotation"], doctype)) {
 | |
| 						cur_frm.set_value("customer", refdoc.customer || refdoc.name);
 | |
| 						cur_frm.set_value("customer_name", refdoc.customer_name);
 | |
| 						if(cur_frm.doc.doctype==="Address")
 | |
| 							cur_frm.set_value("address_title", cur_frm.doc.customer_name);
 | |
| 				}
 | |
| 			}
 | |
| 			else if(["Supplier", "Supplier Quotation", "Purchase Order", "Purchase Invoice", "Purchase Receipt"]
 | |
| 				.indexOf(doctype)!==-1) {
 | |
| 				var refdoc = frappe.get_doc(doctype, docname);
 | |
| 				cur_frm.set_value("supplier", refdoc.supplier || refdoc.name);
 | |
| 				cur_frm.set_value("supplier_name", refdoc.supplier_name);
 | |
| 				if(cur_frm.doc.doctype==="Address")
 | |
| 					cur_frm.set_value("address_title", cur_frm.doc.supplier_name);
 | |
| 			}
 | |
| 			else if(["Lead", "Opportunity", "Quotation"]
 | |
| 				.indexOf(doctype)!==-1) {
 | |
| 				var refdoc = frappe.get_doc(doctype, docname);
 | |
| 
 | |
| 				if((refdoc.doctype == "Quotation" && refdoc.quotation_to=="Lead") ||
 | |
| 					(refdoc.doctype == "Opportunity" && refdoc.enquiry_from=="Lead") || (doctype=="Lead")) {
 | |
| 						cur_frm.set_value("lead", refdoc.lead || refdoc.name);
 | |
| 						cur_frm.set_value("lead_name", refdoc.customer_name || refdoc.company_name || refdoc.lead_name);
 | |
| 						if(cur_frm.doc.doctype==="Address")
 | |
| 							cur_frm.set_value("address_title", cur_frm.doc.lead_name);
 | |
| 				}
 | |
| 			}
 | |
| 			else if(doctype == "Sales Partner") {
 | |
| 				cur_frm.set_value("sales_partner", docname);
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |