fix(set_serial_no_status): auto commit on many writes (#21845)
This commit is contained in:
parent
ce8f8f4ed7
commit
82523a5487
@ -5,8 +5,12 @@ from frappe.utils import getdate, nowdate
|
||||
def execute():
|
||||
frappe.reload_doc('stock', 'doctype', 'serial_no')
|
||||
|
||||
for serial_no in frappe.db.sql("""select name, delivery_document_type, warranty_expiry_date from `tabSerial No`
|
||||
where (status is NULL OR status='')""", as_dict = 1):
|
||||
serial_no_list = frappe.db.sql("""select name, delivery_document_type, warranty_expiry_date from `tabSerial No`
|
||||
where (status is NULL OR status='')""", as_dict = 1)
|
||||
if len(serial_no_list) > 20000:
|
||||
frappe.db.auto_commit_on_many_writes = True
|
||||
|
||||
for serial_no in serial_no_list:
|
||||
if serial_no.get("delivery_document_type"):
|
||||
status = "Delivered"
|
||||
elif serial_no.get("warranty_expiry_date") and getdate(serial_no.get("warranty_expiry_date")) <= getdate(nowdate()):
|
||||
@ -14,4 +18,7 @@ def execute():
|
||||
else:
|
||||
status = "Active"
|
||||
|
||||
frappe.db.set_value("Serial No", serial_no.get("name"), "status", status)
|
||||
frappe.db.set_value("Serial No", serial_no.get("name"), "status", status)
|
||||
|
||||
if frappe.db.auto_commit_on_many_writes:
|
||||
frappe.db.auto_commit_on_many_writes = False
|
||||
|
Loading…
Reference in New Issue
Block a user