I have created a doctype called Service_Notes and would like to show the last service note entered (Service Date) on the customer form. does any one have any examples? on the customer from created a field call last_service_date, link would be customer…
HI @Dan_Powell,
this might not be the easiest solution, but one that should work:
Write a function in your custom doctype (Service Notes) server side code (service_notes.py):
@frappe.whitelist()
def get_last_service_note(customer):
sql_query = """SELECT `name` FROM `tabService Notes` WHERE
`customer` = '{0}'
ORDER BY `date` DESC
LIMIT 1""".format(customer)
last_service_note = frappe.db.sql(sql_query, as_dict=True)
if last_service_note:
return { 'last_service_note': last_service_note[0].name }
else:
return { 'last_service_note': 'None' }
Add a custom script to the customer doctype, which on refresh loads the last service date
frappe.ui.form.on('Customer', {
refresh: function(frm) {
frappe.call({
method: 'myapp.myapp.doctype.service_notes.service_notes.get_last_service_note',
args: {
'customer': frm.doc.name
},
callback: function(r) {
if (r.message) {
frm.set_value('last_service_note', r.message.last_service_note[0]);
}
}
});
}
});
Hope this helps.
Thank you, this was very helpful.