@@ -9,15 +9,22 @@ frappe.ui.form.on("Opportunity", {
99 frm . custom_make_buttons = {
1010 'Quotation' : 'Quotation' ,
1111 'Supplier Quotation' : 'Supplier Quotation'
12- }
13- } ,
14- customer : function ( frm ) {
15- frm . trigger ( 'set_contact_link' ) ;
16- erpnext . utils . get_party_details ( frm ) ;
12+ } ,
13+
14+ frm . set_query ( "opportunity_from" , function ( ) {
15+ return {
16+ "filters" : {
17+ "name" : [ "in" , [ "Customer" , "Lead" ] ] ,
18+ }
19+ }
20+ } ) ;
1721 } ,
1822
19- lead : function ( frm ) {
20- frm . trigger ( 'set_contact_link' ) ;
23+ party_name : function ( frm ) {
24+ if ( frm . doc . opportunity_from == "Customer" ) {
25+ frm . trigger ( 'set_contact_link' ) ;
26+ erpnext . utils . get_party_details ( frm ) ;
27+ }
2128 } ,
2229
2330 with_items : function ( frm ) {
@@ -30,15 +37,14 @@ frappe.ui.form.on("Opportunity", {
3037
3138 contact_person : erpnext . utils . get_contact_details ,
3239
33- enquiry_from : function ( frm ) {
34- frm . toggle_reqd ( "lead " , frm . doc . enquiry_from === "Lead" ) ;
35- frm . toggle_reqd ( "customer" , frm . doc . enquiry_from === "Customer ") ;
40+ opportunity_from : function ( frm ) {
41+ frm . toggle_reqd ( "party_name " , frm . doc . opportunity_from ) ;
42+ frm . trigger ( "set_dynamic_field_label ") ;
3643 } ,
3744
3845 refresh : function ( frm ) {
3946 var doc = frm . doc ;
40- frm . events . enquiry_from ( frm ) ;
41- frm . trigger ( 'set_contact_link' ) ;
47+ frm . events . opportunity_from ( frm ) ;
4248 frm . trigger ( 'toggle_mandatory' ) ;
4349 erpnext . toggle_naming_series ( ) ;
4450
@@ -75,13 +81,20 @@ frappe.ui.form.on("Opportunity", {
7581 } ,
7682
7783 set_contact_link : function ( frm ) {
78- if ( frm . doc . customer ) {
84+ if ( frm . doc . opportunity_from == "Customer" && frm . doc . party_name ) {
7985 frappe . dynamic_link = { doc : frm . doc , fieldname : 'customer' , doctype : 'Customer' }
80- } else if ( frm . doc . lead ) {
86+ } else if ( frm . doc . opportunity_from == "Lead" && frm . doc . party_name ) {
8187 frappe . dynamic_link = { doc : frm . doc , fieldname : 'lead' , doctype : 'Lead' }
8288 }
8389 } ,
8490
91+ set_dynamic_field_label : function ( frm ) {
92+
93+ if ( frm . doc . opportunity_from ) {
94+ frm . set_df_property ( "party_name" , "label" , frm . doc . opportunity_from ) ;
95+ }
96+ } ,
97+
8598 make_supplier_quotation : function ( frm ) {
8699 frappe . model . open_mapped_doc ( {
87100 method : "erpnext.crm.doctype.opportunity.opportunity.make_supplier_quotation" ,
@@ -97,10 +110,6 @@ frappe.ui.form.on("Opportunity", {
97110// TODO commonify this code
98111erpnext . crm . Opportunity = frappe . ui . form . Controller . extend ( {
99112 onload : function ( ) {
100- if ( ! this . frm . doc . enquiry_from && this . frm . doc . customer )
101- this . frm . doc . enquiry_from = "Customer" ;
102- if ( ! this . frm . doc . enquiry_from && this . frm . doc . lead )
103- this . frm . doc . enquiry_from = "Lead" ;
104113
105114 if ( ! this . frm . doc . status )
106115 set_multiple ( this . frm . doc . doctype , this . frm . doc . name , { status :'Open' } ) ;
@@ -148,7 +157,7 @@ erpnext.crm.Opportunity = frappe.ui.form.Controller.extend({
148157$ . extend ( cur_frm . cscript , new erpnext . crm . Opportunity ( { frm : cur_frm } ) ) ;
149158
150159cur_frm . cscript . onload_post_render = function ( doc , cdt , cdn ) {
151- if ( doc . enquiry_from == 'Lead' && doc . lead )
160+ if ( doc . opportunity_from == 'Lead' && doc . party_name )
152161 cur_frm . cscript . lead ( doc , cdt , cdn ) ;
153162}
154163
@@ -171,10 +180,10 @@ cur_frm.cscript.item_code = function(doc, cdt, cdn) {
171180}
172181
173182cur_frm . cscript . lead = function ( doc , cdt , cdn ) {
174- cur_frm . toggle_display ( "contact_info" , doc . customer || doc . lead ) ;
183+ cur_frm . toggle_display ( "contact_info" , doc . party_name ) ;
175184 erpnext . utils . map_current_doc ( {
176185 method : "erpnext.crm.doctype.lead.lead.make_opportunity" ,
177- source_name : cur_frm . doc . lead ,
186+ source_name : cur_frm . doc . party_name ,
178187 frm : cur_frm
179188 } ) ;
180189}
0 commit comments