mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 10:49:09 +00:00
Merge pull request #19591 from 0Pranav/FR-ISS-152101
fix: add status "expired" to doctype quotation
This commit is contained in:
@@ -301,7 +301,8 @@ scheduler_events = {
|
|||||||
"erpnext.quality_management.doctype.quality_review.quality_review.review",
|
"erpnext.quality_management.doctype.quality_review.quality_review.review",
|
||||||
"erpnext.support.doctype.service_level_agreement.service_level_agreement.check_agreement_status",
|
"erpnext.support.doctype.service_level_agreement.service_level_agreement.check_agreement_status",
|
||||||
"erpnext.crm.doctype.email_campaign.email_campaign.send_email_to_leads_or_contacts",
|
"erpnext.crm.doctype.email_campaign.email_campaign.send_email_to_leads_or_contacts",
|
||||||
"erpnext.crm.doctype.email_campaign.email_campaign.set_email_campaign_status"
|
"erpnext.crm.doctype.email_campaign.email_campaign.set_email_campaign_status",
|
||||||
|
"erpnext.selling.doctype.quotation.set_expired_status"
|
||||||
],
|
],
|
||||||
"daily_long": [
|
"daily_long": [
|
||||||
"erpnext.setup.doctype.email_digest.email_digest.send",
|
"erpnext.setup.doctype.email_digest.email_digest.send",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -185,6 +185,10 @@ def _make_sales_order(source_name, target_doc=None, ignore_permissions=False):
|
|||||||
|
|
||||||
return doclist
|
return doclist
|
||||||
|
|
||||||
|
def set_expired_status():
|
||||||
|
frappe.db.sql("""UPDATE `tabQuotation` SET `status` = 'Expired'
|
||||||
|
WHERE `status` != "Expired" AND `valid_till` < %s""", (nowdate()))
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_sales_invoice(source_name, target_doc=None):
|
def make_sales_invoice(source_name, target_doc=None):
|
||||||
return _make_sales_invoice(source_name, target_doc)
|
return _make_sales_invoice(source_name, target_doc)
|
||||||
|
|||||||
@@ -14,15 +14,13 @@ frappe.listview_settings['Quotation'] = {
|
|||||||
|
|
||||||
get_indicator: function(doc) {
|
get_indicator: function(doc) {
|
||||||
if(doc.status==="Open") {
|
if(doc.status==="Open") {
|
||||||
if (doc.valid_till && doc.valid_till < frappe.datetime.nowdate()) {
|
return [__("Open"), "orange", "status,=,Open"];
|
||||||
return [__("Expired"), "darkgrey", "valid_till,<," + frappe.datetime.nowdate()];
|
|
||||||
} else {
|
|
||||||
return [__("Open"), "orange", "status,=,Open"];
|
|
||||||
}
|
|
||||||
} else if(doc.status==="Ordered") {
|
} else if(doc.status==="Ordered") {
|
||||||
return [__("Ordered"), "green", "status,=,Ordered"];
|
return [__("Ordered"), "green", "status,=,Ordered"];
|
||||||
} else if(doc.status==="Lost") {
|
} else if(doc.status==="Lost") {
|
||||||
return [__("Lost"), "darkgrey", "status,=,Lost"];
|
return [__("Lost"), "darkgrey", "status,=,Lost"];
|
||||||
|
} else if(doc.status==="Expired") {
|
||||||
|
return [__("Expired"), "darkgrey", "status,=,Expired"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -201,6 +201,28 @@ class TestQuotation(unittest.TestCase):
|
|||||||
sec_qo = make_quotation(item_list=qo_item2, do_not_submit=True)
|
sec_qo = make_quotation(item_list=qo_item2, do_not_submit=True)
|
||||||
sec_qo.submit()
|
sec_qo.submit()
|
||||||
|
|
||||||
|
def test_quotation_expiry(self):
|
||||||
|
from erpnext.selling.doctype.quotation.quotation import set_expired_status
|
||||||
|
|
||||||
|
quotation_item = [
|
||||||
|
{
|
||||||
|
"item_code": "_Test Item",
|
||||||
|
"warehouse":"",
|
||||||
|
"qty": 1,
|
||||||
|
"rate": 500
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
yesterday = add_days(nowdate(), -1)
|
||||||
|
expired_quotation = make_quotation(item_list=quotation_item, transaction_date=yesterday, do_not_submit=True)
|
||||||
|
expired_quotation.valid_till = yesterday
|
||||||
|
expired_quotation.save()
|
||||||
|
expired_quotation.submit()
|
||||||
|
set_expired_status()
|
||||||
|
expired_quotation.reload()
|
||||||
|
self.assertEqual(expired_quotation.status, "Expired")
|
||||||
|
|
||||||
|
|
||||||
test_records = frappe.get_test_records('Quotation')
|
test_records = frappe.get_test_records('Quotation')
|
||||||
|
|
||||||
def get_quotation_dict(party_name=None, item_code=None):
|
def get_quotation_dict(party_name=None, item_code=None):
|
||||||
@@ -258,3 +280,5 @@ def make_quotation(**args):
|
|||||||
qo.submit()
|
qo.submit()
|
||||||
|
|
||||||
return qo
|
return qo
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user