I have created custom scripts and server scripts to modify the existing method in Python of the original ERPNext. I realised that for the same event, the original codes will run after the custom script’s codes. Is there a way to only run the event on custom script?
1 Like
what is the code ?
I want to change the formula to calculate the fg_completed_quantity.
Here is my code for custom script in ERPNext.
frappe.ui.form.on('Stock Entry', {
work_order: function(frm) {
frm.cscript.toggle_enable_bom();
if(!frm.doc.work_order || frm.doc.job_card) {
return;
}
var fg_completed_qty;
return frappe.call({
method: "get_work_order_details2",
args: {
work_order: frm.doc.work_order,
company: frm.doc.company
},
callback: function(r) {
console.log(r);
if (!r.exc) {
$.each(["from_bom", "bom_no", "fg_completed_qty", "use_multi_level_bom"], function(i, field) {
frm.set_value(field, r.message[field]);
});
fg_completed_qty = r.message.fg_completed_qty;
if (frm.doc.purpose == "Material Transfer for Manufacture" && !frm.doc.to_warehouse)
frm.set_value("to_warehouse", r.message.wip_warehouse);
if (frm.doc.purpose == "Manufacture" || frm.doc.purpose == "Material Consumption for Manufacture" ) {
if (frm.doc.purpose == "Manufacture") {
if (!frm.doc.to_warehouse) frm.set_value("to_warehouse", r.message.fg_warehouse);
}
if (!frm.doc.from_warehouse) frm.set_value("from_warehouse", r.message.wip_warehouse);
}
frm.cscript.get_items();
}
}
});
}});
To override methods, you can use hooks in a custom app. See here:
https://frappeframework.com/docs/v13/user/en/python-api/hooks
okay , what is the event ? and why are you creating an script type api ?
My initial thought was to override the frappe whitelisted python method and found out that the API server script can be called by frappe.call
1 Like
Hey, did you find out the way to implement hook?
Thank you!