fix: moved custom_make_buttons to PurchaseOrderController to avoid duplication of dropdown options
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 84e3a31..25065ab 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -7,12 +7,6 @@
 
 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 @@
 
 	},
 
-	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 @@
 });
 
 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 @@
 
 		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") {