Skip to content

Instantly share code, notes, and snippets.

@sbkolate
Created April 25, 2016 10:11
Show Gist options
  • Save sbkolate/a390cc9d03fb4c4875d0b6ab191b50a7 to your computer and use it in GitHub Desktop.
Save sbkolate/a390cc9d03fb4c4875d0b6ab191b50a7 to your computer and use it in GitHub Desktop.
// add interaction
frappe.ui.form.on("Quotation", "refresh", function(frm, doctype, name) {
cur_frm.add_custom_button(__('Add Meeting Details'), function() {
cur_frm.cscript.convert_to_group(); }, "icon-exclamation", "btn-default");
cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) {
var d = new frappe.ui.Dialog({
title:__('Type of Interaction'),
fields: [
{label:__("Type of Interaction"), fieldtype:"Select",'default': "Call",
options: ["Call","Mail","Face to Face","SMS","Skype"],
fieldname:"type_of_interaction"},
{label:__("Result"), fieldtype:"Select", options:
["Status Quo","Warmer","Colder","Closed Lost","Closed Won"], fieldname:"result"},
{'fieldname': 'responsible', 'fieldtype': 'Link', options:"User", 'default': user, 'label': 'Responsible', 'reqd': 0},
{fieldtype: "Column Break"},
{'fieldname': 'person_interacted_with', 'fieldtype': 'Data', 'label': 'Person Interacted with', 'reqd': 0},
{'fieldname': 'next_date', 'fieldtype': 'Date',
'label': 'Next Action Date', 'default': frappe.datetime.add_days(frappe.datetime.nowdate(),7), 'reqd': 0},
{'fieldname': 'next_action_by', 'fieldtype': 'Link', options:"User", 'default': user,'label': 'Next Action By', 'reqd': 0},
{fieldtype: "Section Break"},
{'fieldname': 'comment', 'fieldtype': 'Text', 'label': 'Next Action Task', 'reqd': 1},
{fieldtype: "Section Break", collapsible:true},
{'fieldname': 'is_expense', 'fieldtype': 'Check', 'label': 'Is Expense'},
{'fieldname': 'expense_type', 'fieldtype': 'Link', options:"Expense Claim Type", depends_on: 1,'label': 'Expense Claim Type', 'reqd': 0},
{'fieldname': 'claim_amount', 'fieldtype': 'Currency', 'label': 'Expense Amount', 'reqd': 0},
{'fieldname': 'expense_date', 'fieldtype': 'Date',
'label': 'Expense Date', 'default': frappe.datetime.add_days(frappe.datetime.nowdate(),0), 'reqd': 1},
{fieldtype: "Column Break"},
{'fieldname': 'exp_approver', 'fieldtype': 'Link', options:"User", 'default': user,'label': 'Expense Approver', 'reqd': 0},
{'fieldname': 'description', 'fieldtype': 'Text', 'label': 'Description'},
]
})
var fd = d.fields_dict;
$(fd.expense_date.wrapper).toggle(false);
$(fd.expense_type.wrapper).toggle(false);
$(fd.claim_amount.wrapper).toggle(false);
$(fd.exp_approver.wrapper).toggle(false);
$(fd.description.wrapper).toggle(false);
// account type if ledger
$(fd.is_expense.input).change(function() {
console.log("in chage");
if($(this).prop("checked")) {
$(fd.expense_date.wrapper).toggle(true);
$(fd.expense_type.wrapper).toggle(true);
$(fd.claim_amount.wrapper).toggle(true);
$(fd.exp_approver.wrapper).toggle(true);
$(fd.description.wrapper).toggle(true);
fd.expense_date.$input.trigger("change");
fd.expense_type.$input.trigger("change");
fd.claim_amount.$input.trigger("change");
fd.exp_approver.$input.trigger("change");
fd.description.$input.trigger("change");
d.fields_dict.claim_amount.df.reqd=1;
d.fields_dict.expense_type.df.reqd=1;
d.fields_dict.description.df.reqd=1;
d.fields_dict.claim_amount.refresh();
d.fields_dict.expense_type.refresh();
d.fields_dict.description.refresh();
} else {
$(fd.expense_date.wrapper).toggle(false);
$(fd.expense_type.wrapper).toggle(false);
$(fd.claim_amount.wrapper).toggle(false);
$(fd.exp_approver.wrapper).toggle(false);
$(fd.description.wrapper).toggle(false);
fd.expense_date.$input.trigger("change");
fd.expense_type.$input.trigger("change");
fd.claim_amount.$input.trigger("change");
fd.exp_approver.$input.trigger("change");
fd.description.$input.trigger("change");
d.fields_dict.claim_amount.df.reqd=0;
d.fields_dict.expense_type.df.reqd=0;
d.fields_dict.description.df.reqd=0;
d.fields_dict.claim_amount.refresh();
d.fields_dict.expense_type.refresh();
d.fields_dict.description.refresh();
}
});
d.set_primary_action(__("Submit"), function() {
d.hide();
var c = d.get_values()
var cmnt = "<br> Person Interacted_With: "+ c.person_interacted_with
+"<br>Type of Interaction: "+ c.type_of_interaction
+"<br>Result: "+ c.result
+"<br>Next Action Date: " +c.next_date
+"<br>Next Action By: "+ c.next_action_by
+ "<br>Next Action Task: "+c.comment
+ "<br>Responsible: "+c.responsible
var me = frm.doc
// start interaction master
if(c.is_expense){
frappe.call({
method: "rigpl_erpnext.custom_method.custom_method.add_expense_claim",
args: {
doc:{
doctype: "Expense Claim",
exp_approver: c.exp_approver,
responsible: c.responsible,
"expenses":[{
"expense_type": c.expense_type,
"expense_date": c.expense_date,
"claim_amount": c.claim_amount,
"description": c.description,
}
],
}
},
callback: function(r) {
msgprint("Expense Claim Created");
}
});
}
//end interaction master
// create todo
if(1==1){
frappe.call({
method: "rigpl_erpnext.custom_method.custom_method.create_todo",
args: {
owner: c.next_action_by,
assigned_by: c.responsible,
description: c.comment,
date: c.next_date,
reference_name: frm.doc.name,
reference_type: frm.doc.doctype
}
})
}
// end of create todo
return frappe.call({
method: "frappe.desk.form.utils.add_comment",
args: {
doc:{
doctype: "Communication",
communication_type: "Comment",
reference_doctype: frm.doc.doctype,
reference_name: frm.doc.name,
comment: "cmnt",
subject: "cmnt",
content: cmnt,
responce_reson: c.responce_reson,
next_date: c.next_date,
type_of_interaction: c.type_of_interaction,
result: c.result,
next_action_by: c.next_action_by,
comment_by: user
}
},
callback: function(r) {
msgprint("Interaction Submited Successfully");
cur_frm.reload_doc();
if (cur_frm) {
if (cur_frm.docname && (frappe.last_edited_communication[cur_frm.doctype] || {})[cur_frm.docname]) {
delete frappe.last_edited_communication[cur_frm.doctype][cur_frm.docname];
}
// cur_frm.comments.input.val("");
}
}
});
});
d.show();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment