[Enhance] Budget validation on material request, purchase order
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 85fb3f0..45b9d78 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -13,6 +13,7 @@
from erpnext.stock.doctype.stock_entry.stock_entry import get_used_alternative_items
from erpnext.stock.doctype.serial_no.serial_no import get_auto_serial_nos, auto_make_serial_nos, get_serial_nos
+from erpnext.accounts.doctype.budget.budget import validate_expense_against_budget
from erpnext.controllers.stock_controller import StockController
class BuyingController(StockController):
@@ -465,6 +466,16 @@
self.delete_linked_asset()
self.update_fixed_asset(field, delete_asset=True)
+ def validate_budget(self):
+ if self.docstatus == 1:
+ for data in self.get('items'):
+ validate_expense_against_budget({
+ 'item_code': data.item_code,
+ 'item_group': data.item_group,
+ 'posting_date': data.schedule_date,
+ 'doctype': self.doctype
+ }, self.company)
+
def process_fixed_asset(self):
if self.doctype == 'Purchase Invoice' and not self.update_stock:
return