fix: Patch to set status in old serial no data (#21720)
* fix: Patch to set status in old serial no data * fix: Avoid get_doc in patch * fix: fetch all values and check status in one query
This commit is contained in:
parent
1862f5f29a
commit
f4f307c36a
@ -684,3 +684,4 @@ execute:frappe.delete_doc_if_exists("Page", "appointment-analytic")
|
||||
execute:frappe.rename_doc("Desk Page", "Getting Started", "Home", force=True)
|
||||
erpnext.patches.v12_0.unset_customer_supplier_based_on_type_of_item_price
|
||||
erpnext.patches.v12_0.set_valid_till_date_in_supplier_quotation
|
||||
erpnext.patches.v12_0.set_serial_no_status
|
||||
|
17
erpnext/patches/v12_0/set_serial_no_status.py
Normal file
17
erpnext/patches/v12_0/set_serial_no_status.py
Normal file
@ -0,0 +1,17 @@
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
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):
|
||||
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()):
|
||||
status = "Expired"
|
||||
else:
|
||||
status = "Active"
|
||||
|
||||
frappe.db.set_value("Serial No", serial_no.get("name"), "status", status)
|
Loading…
x
Reference in New Issue
Block a user