fix set_expired_status method
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index b63c2e1..2ce01aa 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -186,8 +186,8 @@
return doclist
def set_expired_status():
- frappe.db.sql("""UPDATE `tabQuotation` SET status = 'Expired'
- WHERE 'valid_till' < %s""", (nowdate()))
+ frappe.db.sql("""UPDATE `tabQuotation` SET `status` = 'Expired'
+ WHERE `status` != "Expired" AND `valid_till` < %s""", (nowdate()))
frappe.db.commit()
@frappe.whitelist()
diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py
index 7739e3e..b450c29 100644
--- a/erpnext/selling/doctype/quotation/test_quotation.py
+++ b/erpnext/selling/doctype/quotation/test_quotation.py
@@ -218,9 +218,9 @@
]
yesterday = getdate(nowdate()) - datetime.timedelta(days=1)
expired_quotation = make_quotation(item_list=quotation_item)
- # Manually set valid till date to bypass validation
expired_quotation.valid_till = yesterday
expired_quotation.save()
+ # Call schedular method
set_expired_status()
self.assertEqual(expired_quotation.status,"Expired")