Hello everybody!
Can someone direct me in the right way?
In Customer form view there is a summary for a Customer (“Total Billing This Year” and so on). How is it made? I found a function in customer.py:
def get_dashboard_info(customer)…
and a function which calls it in customer.js:
frappe.ui.form.on(“Customer”, “refresh”, function(frm) {
cur_frm.cscript.setup_dashboard(frm.doc)
…
}
But I can’t find and can’t understand how it is shown on screen. Where is template for it or something that renders it in form view?
Thanks in advance.
1 Like
I’ve found how to. It it javascript function that renders “dashboard”. It sets headline and adds doctype_badge:
cur_frm.cscript.setup_dashboard = function(doc) {
cur_frm.dashboard.reset(doc);
if(doc.__islocal)
return;
if (in_list(user_roles, "Accounts User") || in_list(user_roles, "Accounts Manager"))
cur_frm.dashboard.set_headline('<span class="text-muted">'+ __('Loading...')+ '</span>')
cur_frm.dashboard.add_doctype_badge("Opportunity", "customer");
cur_frm.dashboard.add_doctype_badge("Quotation", "customer");
cur_frm.dashboard.add_doctype_badge("Sales Order", "customer");
cur_frm.dashboard.add_doctype_badge("Delivery Note", "customer");
cur_frm.dashboard.add_doctype_badge("Sales Invoice", "customer");
cur_frm.dashboard.add_doctype_badge("Project", "customer");
return frappe.call({
type: "GET",
method: "erpnext.selling.doctype.customer.customer.get_dashboard_info",
args: {
customer: cur_frm.doc.name
},
callback: function(r) {
if (in_list(user_roles, "Accounts User") || in_list(user_roles, "Accounts Manager")) {
if(r.message["company_currency"].length == 1) {
cur_frm.dashboard.set_headline(
__("Total Billing This Year: ") + "<b>"
+ format_currency(r.message.billing_this_year, r.message["company_currency"][0])
+ '</b> / <span class="text-muted">' + __("Unpaid") + ": <b>"
+ format_currency(r.message.total_unpaid, r.message["company_currency"][0])
+ '</b></span>');
} else {
cur_frm.dashboard.set_headline("");
}
}
cur_frm.dashboard.set_badge_count(r.message);
}
});
}
solved