Merge pull request #7731 from nabinhait/hotfix
Check existing SO, PO and MR for enabling / disabling 'Is Stock Item' checkbox
This commit is contained in:
commit
6a2e138021
@ -457,7 +457,7 @@ class Item(WebsiteGenerator):
|
|||||||
if vals:
|
if vals:
|
||||||
for key in to_check:
|
for key in to_check:
|
||||||
if self.get(key) != vals.get(key):
|
if self.get(key) != vals.get(key):
|
||||||
if not self.check_if_linked_document_exists():
|
if not self.check_if_linked_document_exists(key):
|
||||||
break # no linked document, allowed
|
break # no linked document, allowed
|
||||||
else:
|
else:
|
||||||
frappe.throw(_("As there are existing transactions for this item, you can not change the value of {0}").format(frappe.bold(self.meta.get_label(key))))
|
frappe.throw(_("As there are existing transactions for this item, you can not change the value of {0}").format(frappe.bold(self.meta.get_label(key))))
|
||||||
@ -467,10 +467,16 @@ class Item(WebsiteGenerator):
|
|||||||
if asset:
|
if asset:
|
||||||
frappe.throw(_('"Is Fixed Asset" cannot be unchecked, as Asset record exists against the item'))
|
frappe.throw(_('"Is Fixed Asset" cannot be unchecked, as Asset record exists against the item'))
|
||||||
|
|
||||||
def check_if_linked_document_exists(self):
|
def check_if_linked_document_exists(self, key):
|
||||||
for doctype in ("Sales Order Item", "Delivery Note Item", "Sales Invoice Item",
|
linked_doctypes = ["Delivery Note Item", "Sales Invoice Item", "Purchase Receipt Item",
|
||||||
"Material Request Item", "Purchase Order Item", "Purchase Receipt Item",
|
"Purchase Invoice Item", "Stock Entry Detail", "Stock Reconciliation Item"]
|
||||||
"Purchase Invoice Item", "Stock Entry Detail", "Stock Reconciliation Item"):
|
|
||||||
|
# For "Is Stock Item", following doctypes is important
|
||||||
|
# because reserved_qty, ordered_qty and requested_qty updated from these doctypes
|
||||||
|
if key == "is_stock_item":
|
||||||
|
linked_doctypes += ["Sales Order Item", "Purchase Order Item", "Material Request Item"]
|
||||||
|
|
||||||
|
for doctype in linked_doctypes:
|
||||||
if frappe.db.get_value(doctype, filters={"item_code": self.name, "docstatus": 1}) or \
|
if frappe.db.get_value(doctype, filters={"item_code": self.name, "docstatus": 1}) or \
|
||||||
frappe.db.get_value("Production Order",
|
frappe.db.get_value("Production Order",
|
||||||
filters={"production_item": self.name, "docstatus": 1}):
|
filters={"production_item": self.name, "docstatus": 1}):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user