fix: added validation for cost center (#19932)

* fix: add validation for cost centers in sales invoice

* use `get_cached_value` for getting compnay, formatting of error message
This commit is contained in:
Pranav Nachnekar 2019-12-24 11:16:46 +00:00 committed by Nabin Hait
parent e0b4d33039
commit b972f763f3

View File

@ -90,6 +90,7 @@ class SalesInvoice(SellingController):
self.validate_account_for_change_amount()
self.validate_fixed_asset()
self.set_income_account_for_fixed_assets()
self.validate_item_cost_centers()
validate_inter_company_party(self.doctype, self.customer, self.company, self.inter_company_invoice_reference)
if cint(self.is_pos):
@ -147,6 +148,12 @@ class SalesInvoice(SellingController):
elif asset.status in ("Scrapped", "Cancelled", "Sold"):
frappe.throw(_("Row #{0}: Asset {1} cannot be submitted, it is already {2}").format(d.idx, d.asset, asset.status))
def validate_item_cost_centers(self):
for item in self.items:
cost_center_company = frappe.get_cached_value("Cost Center", item.cost_center, "company")
if cost_center_company != self.company:
frappe.throw(_("Row #{0}: Cost Center {1} does not belong to company {2}").format(frappe.bold(item.idx), frappe.bold(item.cost_center), frappe.bold(self.company)))
def before_save(self):
set_account_for_mode_of_payment(self)