[UX] Error in purchase transaction - Ignore instead of Prompt #7766 (#9329)
* sets tax category to "Total" if all items are non-stock items
* makes notification message translatable and removes multi-line string
* Update buying_controller.py
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 5bc8bb3..d770af3 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -73,10 +73,13 @@
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.category = 'Total'
+ msgprint(_('Tax Category has been changed to "Total" because all the Items are non-stock items'))
def set_landed_cost_voucher_amount(self):
for d in self.get("items"):