fix: Displaying manufacturer part no along with manufacturer and added Manufacturers validation in Item master (#19066)
Manufacturer Link field options in Items Table of transactions will also display manufacturer part no. Manufacturers table in Item master will check for duplicate entries.
This commit is contained in:
parent
76df782006
commit
bac4b93639
@ -440,17 +440,17 @@ def get_batch_numbers(doctype, txt, searchfield, start, page_len, filters):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def item_manufacturer_query(doctype, txt, searchfield, start, page_len, filters):
|
def item_manufacturer_query(doctype, txt, searchfield, start, page_len, filters):
|
||||||
search_txt = "{0}%".format(txt)
|
item_filters = [
|
||||||
|
['manufacturer', 'like', '%' + txt + '%'],
|
||||||
|
['item_code', '=', filters.get("item_code")]
|
||||||
|
]
|
||||||
|
|
||||||
item_filters = {
|
item_manufacturers = frappe.get_all(
|
||||||
'manufacturer': ('like', search_txt),
|
"Item Manufacturer",
|
||||||
'item_code': filters.get("item_code")
|
fields=["manufacturer", "manufacturer_part_no"],
|
||||||
}
|
|
||||||
|
|
||||||
return frappe.get_all("Item Manufacturer",
|
|
||||||
fields = "manufacturer",
|
|
||||||
filters=item_filters,
|
filters=item_filters,
|
||||||
limit_start=start,
|
limit_start=start,
|
||||||
limit_page_length=page_len,
|
limit_page_length=page_len,
|
||||||
as_list=1
|
as_list=1
|
||||||
)
|
)
|
||||||
|
return item_manufacturers
|
||||||
|
@ -125,6 +125,7 @@ class Item(WebsiteGenerator):
|
|||||||
self.validate_auto_reorder_enabled_in_stock_settings()
|
self.validate_auto_reorder_enabled_in_stock_settings()
|
||||||
self.cant_change()
|
self.cant_change()
|
||||||
self.update_show_in_website()
|
self.update_show_in_website()
|
||||||
|
self.validate_manufacturer()
|
||||||
|
|
||||||
if not self.get("__islocal"):
|
if not self.get("__islocal"):
|
||||||
self.old_item_group = frappe.db.get_value(self.doctype, self.name, "item_group")
|
self.old_item_group = frappe.db.get_value(self.doctype, self.name, "item_group")
|
||||||
@ -144,6 +145,13 @@ class Item(WebsiteGenerator):
|
|||||||
if cint(frappe.db.get_single_value('Stock Settings', 'clean_description_html')):
|
if cint(frappe.db.get_single_value('Stock Settings', 'clean_description_html')):
|
||||||
self.description = clean_html(self.description)
|
self.description = clean_html(self.description)
|
||||||
|
|
||||||
|
def validate_manufacturer(self):
|
||||||
|
list_man = [(x.manufacturer, x.manufacturer_part_no) for x in self.get('manufacturers')]
|
||||||
|
set_man = set(list_man)
|
||||||
|
|
||||||
|
if len(list_man) != len(set_man):
|
||||||
|
frappe.throw(_("Duplicate entry in Manufacturers table"))
|
||||||
|
|
||||||
def validate_customer_provided_part(self):
|
def validate_customer_provided_part(self):
|
||||||
if self.is_customer_provided_item:
|
if self.is_customer_provided_item:
|
||||||
if self.is_purchase_item:
|
if self.is_purchase_item:
|
||||||
@ -921,7 +929,6 @@ def validate_cancelled_item(item_code, docstatus=None, verbose=1):
|
|||||||
msg = _("Item {0} is cancelled").format(item_code)
|
msg = _("Item {0} is cancelled").format(item_code)
|
||||||
_msgprint(msg, verbose)
|
_msgprint(msg, verbose)
|
||||||
|
|
||||||
|
|
||||||
def _msgprint(msg, verbose):
|
def _msgprint(msg, verbose):
|
||||||
if verbose:
|
if verbose:
|
||||||
msgprint(msg, raise_exception=True)
|
msgprint(msg, raise_exception=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user