sets tax category to "Total" if all items are non-stock items (#9295)

diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 5bc8bb3..2e842c5 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -73,10 +73,14 @@
 
 	def validate_stock_or_nonstock_items(self):
 		if self.meta.get_field("taxes") and not self.get_stock_items():
-			tax_for_valuation = [d.account_head for d in self.get("taxes")
+			tax_for_valuation = [d for d in self.get("taxes")
 				if d.category in ["Valuation", "Valuation and Total"]]
+
 			if tax_for_valuation:
-				frappe.throw(_("Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items"))
+				for d in tax_for_valuation:
+					d.db_set("category", 'Total')
+				msgprint("Tax Category has been changed to \"Total\" because all Items in the Purchase Order "
+							"are non-stock items")
 
 	def set_landed_cost_voucher_amount(self):
 		for d in self.get("items"):