This commit is contained in:
Nabin Hait 2013-07-06 18:25:36 +05:30
parent 2d2d800f0f
commit fcd9434daf
3 changed files with 61 additions and 55 deletions

View File

@ -55,8 +55,8 @@ erpnext.LeadController = wn.ui.form.Controller.extend({
this.frm.__is_customer = this.frm.__is_customer || this.frm.doc.__is_customer;
if(!this.frm.doc.__islocal && !this.frm.__is_customer) {
this.frm.add_custom_button("Create Customer", this.frm.cscript['Create Customer']);
this.frm.add_custom_button("Create Opportunity", this.frm.cscript['Create Opportunity']);
this.frm.add_custom_button("Create Customer", this.create_customer);
this.frm.add_custom_button("Create Opportunity", this.create_opportunity);
this.frm.add_custom_button("Send SMS", this.frm.cscript.send_sms);
}
@ -93,21 +93,21 @@ erpnext.LeadController = wn.ui.form.Controller.extend({
// note: render_address_row is defined in contact_control.js
}
this.frm.address_list.run();
},
create_customer: function() {
wn.model.open_mapped_doc({
method: "selling.doctype.lead.lead.make_customer",
source_name: cur_frm.doc.name
})
},
create_opportunity: function() {
wn.model.open_mapped_doc({
method: "selling.doctype.lead.lead.make_opportunity",
source_name: cur_frm.doc.name
})
}
});
$.extend(cur_frm.cscript, new erpnext.LeadController({frm: cur_frm}));
cur_frm.cscript['Create Customer'] = function(){
wn.model.open_mapped_doc({
method: "selling.doctype.lead.lead.make_customer",
source_name: cur_frm.doc.name
})
}
cur_frm.cscript['Create Opportunity'] = function(){
wn.model.open_mapped_doc({
method: "selling.doctype.lead.lead.make_opportunity",
source_name: cur_frm.doc.name
})
}
$.extend(cur_frm.cscript, new erpnext.LeadController({frm: cur_frm}));

View File

@ -35,6 +35,13 @@ erpnext.selling.Opportunity = wn.ui.form.Controller.extend({
'address_display', 'contact_display', 'contact_mobile', 'contact_email',
'territory', 'customer_group']);
}
},
create_quotation: function() {
wn.model.open_mapped_doc({
method: "selling.doctype.opportunity.opportunity.make_quotation",
source_name: cur_frm.doc.name
})
}
});
@ -54,7 +61,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn){
cur_frm.clear_custom_buttons();
if(doc.docstatus === 1 && doc.status!=="Opportunity Lost") {
cur_frm.add_custom_button('Create Quotation', cur_frm.cscript['Create Quotation']);
cur_frm.add_custom_button('Create Quotation', cur_frm.cscript.create_quotation);
cur_frm.add_custom_button('Opportunity Lost', cur_frm.cscript['Declare Opportunity Lost']);
cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms);
}
@ -168,24 +175,15 @@ cur_frm.fields_dict['lead'].get_query = function(doc,cdt,cdn){
cur_frm.cscript.lead = function(doc, cdt, cdn) {
cur_frm.toggle_display("contact_info", doc.customer || doc.lead);
if(doc.lead) {
cur_frm.call({
doc: cur_frm.doc,
method: "set_lead_defaults",
callback: function(r) {
if(!r.exc) {
cur_frm.refresh_fields();
}
}
});
unhide_field(['customer_name', 'address_display','contact_mobile', 'contact_email',
'territory']);
}
wn.model.map_current_doc({
method: "selling.doctype.lead.lead.make_opportunity",
source_name: cur_frm.doc.lead
})
unhide_field(['customer_name', 'address_display','contact_mobile',
'contact_email', 'territory']);
}
//item getquery
//=======================================
cur_frm.fields_dict['enquiry_details'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
if (doc.enquiry_type == 'Maintenance')
return erpnext.queries.item({
@ -197,25 +195,6 @@ cur_frm.fields_dict['enquiry_details'].grid.get_field('item_code').get_query = f
});
}
// Create New Quotation
cur_frm.cscript['Create Quotation'] = function(){
n = wn.model.make_new_doc_and_get_name("Quotation");
$c('dt_map', args={
'docs':wn.model.compress([locals["Quotation"][n]]),
'from_doctype':'Opportunity',
'to_doctype':'Quotation',
'from_docname':cur_frm.docname,
'from_to_list':"[['Opportunity', 'Quotation'],['Opportunity Item','Quotation Item']]"
}
, function(r,rt) {
loaddoc("Quotation", n);
}
);
}
// declare enquiry lost
//-------------------------
cur_frm.cscript['Declare Opportunity Lost'] = function(){
var dialog = new wn.ui.Dialog({
title: "Set as Lost",

View File

@ -66,7 +66,6 @@ class DocType(TransactionBase):
contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where customer = '%s' and is_customer = 1 and is_primary_contact = 'Yes' and docstatus != 2" %(name), as_dict = 1)
ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or ''
ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or ''
ret['email_id'] = contact_det and contact_det[0]['email_id'] or ''
@ -175,4 +174,32 @@ class DocType(TransactionBase):
return 'true'
def on_trash(self):
self.delete_events()
self.delete_events()
@webnotes.whitelist()
def make_quotation(source_name, target_doclist=None):
from webnotes.model.mapper import get_mapped_doclist
doclist = get_mapped_doclist("Opportunity", source_name, {
"Opportunity": {
"doctype": "Quotation",
"field_map": {
"enquiry_from": "quotation_to",
"enquiry_type": "order_type",
"name": "enq_no",
},
"validation": {
"docstatus": ["=", 1]
}
},
"Opportunity Item": {
"doctype": "Quotation Item",
"field_map": {
"parent": "prevdoc_docname",
"parenttype": "prevdoc_doctype",
"uom": "stock_uom"
}
}
}, target_doclist)
return [d.fields for d in doclist]