Merge branch 'develop'
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 1c50efc..293d373 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
 from __future__ import unicode_literals
-__version__ = '6.7.6'
+__version__ = '6.7.7'
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 7bf4201..51d0b5c 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -29,7 +29,7 @@
 """
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "6.7.6"
+app_version = "6.7.7"
 source_link = "https://github.com/frappe/erpnext"
 
 error_report_email = "support@erpnext.com"
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 7fc127c..5926b25 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -15,25 +15,31 @@
 	refresh: function(doc, dt, dn) {
 		this._super();
 		this.frm.dashboard.reset();
-		var is_delivered_by_supplier = false;
-		var is_delivery_note = false;
+		var allow_purchase = false;
+		var allow_delivery = false;
 
 		if(doc.docstatus==1) {
 			if(doc.status != 'Stopped' && doc.status != 'Closed') {
 
-				$.each(cur_frm.doc.items, function(i, item){
-					if(item.delivered_by_supplier == 1 || item.supplier){
+				for (var i in cur_frm.doc.items) {
+					var item = cur_frm.doc.items[i];
+					if(item.delivered_by_supplier === 1 || item.supplier){
 						if(item.qty > flt(item.ordered_qty)
 							&& item.qty > flt(item.delivered_qty)) {
-							is_delivered_by_supplier = true;
+							allow_purchase = true;
 						}
 					}
-					else{
+
+					if (item.delivered_by_supplier===0) {
 						if(item.qty > flt(item.delivered_qty)) {
-							is_delivery_note = true;
+							allow_delivery = true;
 						}
 					}
-				})
+
+					if (allow_delivery && allow_purchase) {
+						break;
+					}
+				}
 
 				// material request
 				if(!doc.order_type || ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1
@@ -42,7 +48,7 @@
 				}
 
 				// make purchase order
-				if(flt(doc.per_delivered, 2) < 100 && is_delivered_by_supplier) {
+				if(flt(doc.per_delivered, 2) < 100 && allow_purchase) {
 					cur_frm.add_custom_button(__('Purchase Order'), cur_frm.cscript.make_purchase_order);
 				}
 
@@ -65,7 +71,7 @@
 				}
 
 				// delivery note
-				if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1 && is_delivery_note) {
+				if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1 && allow_delivery) {
 					cur_frm.add_custom_button(__('Delivery'), this.make_delivery_note).addClass("btn-primary");
 				}
 
diff --git a/setup.py b/setup.py
index bc61dde..c6f12a9 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 from setuptools import setup, find_packages
 
-version = "6.7.6"
+version = "6.7.7"
 
 with open("requirements.txt", "r") as f:
 	install_requires = f.readlines()