f4f307c36a
* 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
17 lines
650 B
Python
17 lines
650 B
Python
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) |