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"):