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