fix: Serial No Rename does not affect Stock Ledger Entry (#22746)

* Revert "fix: Remove rename related code from Serial No (#22627)"

This reverts commit 1ec2d962dbcc7ccee30e0d0a35727aa890910203.

* fix: Rename fails on Stock Ledger Entry

* fix: Allow Rename in Serial No
This commit is contained in:
Marica 2020-07-22 16:40:24 +05:30 committed by GitHub
parent 53646cb360
commit 514366654e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -1,6 +1,7 @@
{
"actions": [],
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:serial_no",
"creation": "2013-05-16 10:59:15",
"description": "Distinct unit of an Item",
@ -426,7 +427,7 @@
"icon": "fa fa-barcode",
"idx": 1,
"links": [],
"modified": "2020-06-25 15:53:50.900855",
"modified": "2020-07-20 20:50:16.660433",
"modified_by": "Administrator",
"module": "Stock",
"name": "Serial No",

View File

@ -190,6 +190,23 @@ class SerialNo(StockController):
if sle_exists:
frappe.throw(_("Cannot delete Serial No {0}, as it is used in stock transactions").format(self.name))
def before_rename(self, old, new, merge=False):
if merge:
frappe.throw(_("Sorry, Serial Nos cannot be merged"))
def after_rename(self, old, new, merge=False):
"""rename serial_no text fields"""
for dt in frappe.db.sql("""select parent from tabDocField
where fieldname='serial_no' and fieldtype in ('Text', 'Small Text', 'Long Text')"""):
for item in frappe.db.sql("""select name, serial_no from `tab%s`
where serial_no like %s""" % (dt[0], frappe.db.escape('%' + old + '%'))):
serial_nos = map(lambda i: new if i.upper()==old.upper() else i, item[1].split('\n'))
frappe.db.sql("""update `tab%s` set serial_no = %s
where name=%s""" % (dt[0], '%s', '%s'),
('\n'.join(list(serial_nos)), item[0]))
def update_serial_no_reference(self, serial_no=None):
last_sle = self.get_last_sle(serial_no)
self.set_purchase_details(last_sle.get("purchase_sle"))