fix: added validation in stock entry to check duplicate serial nos

This commit is contained in:
Rohit Waghchaure 2021-05-06 18:03:32 +05:30
parent d502f76319
commit 695becdd05

View File

@ -76,6 +76,7 @@ class StockEntry(StockController):
self.validate_difference_account()
self.set_job_card_data()
self.set_purpose_for_stock_entry()
self.validate_duplicate_serial_no()
if not self.from_bom:
self.fg_completed_qty = 0.0
@ -587,6 +588,22 @@ class StockEntry(StockController):
self.purpose = frappe.get_cached_value('Stock Entry Type',
self.stock_entry_type, 'purpose')
def validate_duplicate_serial_no(self):
warehouse_wise_serial_nos = {}
# In case of repack the source and target serial nos could be same
for warehouse in ['s_warehouse', 't_warehouse']:
serial_nos = []
for row in self.items:
if not (row.serial_no and row.get(warehouse)): continue
for sn in get_serial_nos(row.serial_no):
if sn in serial_nos:
frappe.throw(_('The serial no {0} has added multiple times in the stock entry {1}')
.format(frappe.bold(sn), self.name))
serial_nos.append(sn)
def validate_purchase_order(self):
"""Throw exception if more raw material is transferred against Purchase Order than in
the raw materials supplied table"""