diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js index 84e3a31904d8..25065ab155f8 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.js +++ b/erpnext/buying/doctype/purchase_order/purchase_order.js @@ -7,12 +7,6 @@ frappe.provide("erpnext.buying"); frappe.ui.form.on("Purchase Order", { setup: function(frm) { - frm.custom_make_buttons = { - 'Purchase Receipt': 'Receipt', - 'Purchase Invoice': 'Invoice', - 'Stock Entry': 'Material to Supplier', - 'Payment Entry': 'Payment' - } frm.set_query("reserve_warehouse", "supplied_items", function() { return { @@ -36,20 +30,6 @@ frappe.ui.form.on("Purchase Order", { }, - refresh: function(frm) { - if(frm.doc.docstatus === 1 && frm.doc.status !== 'Closed' - && flt(frm.doc.per_received) < 100 && flt(frm.doc.per_billed) < 100) { - frm.add_custom_button(__('Update Items'), () => { - erpnext.utils.update_child_items({ - frm: frm, - child_docname: "items", - child_doctype: "Purchase Order Detail", - cannot_add_row: false, - }) - }); - } - }, - onload: function(frm) { set_schedule_date(frm); if (!frm.doc.transaction_date){ @@ -76,6 +56,18 @@ frappe.ui.form.on("Purchase Order Item", { }); erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend({ + setup: function() { + this.frm.custom_make_buttons = { + 'Purchase Receipt': 'Receipt', + 'Purchase Invoice': 'Invoice', + 'Stock Entry': 'Material to Supplier', + 'Payment Entry': 'Payment', + } + + this._super(); + + }, + refresh: function(doc, cdt, cdn) { var me = this; this._super(); @@ -99,6 +91,16 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend( if(doc.docstatus == 1) { if(!in_list(["Closed", "Delivered"], doc.status)) { + if(this.frm.doc.status !== 'Closed' && flt(this.frm.doc.per_received) < 100 && flt(this.frm.doc.per_billed) < 100) { + this.frm.add_custom_button(__('Update Items'), () => { + erpnext.utils.update_child_items({ + frm: frm, + child_docname: "items", + child_doctype: "Purchase Order Detail", + cannot_add_row: false, + }) + }); + } if (this.frm.has_perm("submit")) { if(flt(doc.per_billed, 6) < 100 || flt(doc.per_received, 6) < 100) { if (doc.status != "On Hold") {