fix(sales-order): update quotation status while cancelling sales order (#52822)

* fix(sales-order): update quotation status while cancelling sales order

* test: validate quotation status

* chore: remove submit

(cherry picked from commit d638f3e033)
This commit is contained in:
Sowmya
2026-02-24 11:47:48 +05:30
committed by Mergify
parent c5826f4132
commit 2420122f0e
2 changed files with 26 additions and 1 deletions

View File

@@ -994,6 +994,31 @@ class TestQuotation(FrappeTestCase):
so1.submit() so1.submit()
self.assertRaises(frappe.ValidationError, so2.submit) self.assertRaises(frappe.ValidationError, so2.submit)
def test_quotation_status(self):
quotation = make_quotation()
so1 = make_sales_order(quotation.name)
so1.delivery_date = nowdate()
so1.submit()
quotation.reload()
self.assertEqual(quotation.status, "Ordered")
so1.cancel()
quotation.reload()
self.assertEqual(quotation.status, "Open")
so2 = make_sales_order(quotation.name)
so2.delivery_date = nowdate()
so2.items[0].qty = 1
so2.submit()
quotation.reload()
self.assertEqual(quotation.status, "Partially Ordered")
so2.cancel()
quotation.reload()
self.assertEqual(quotation.status, "Open")
test_records = frappe.get_test_records("Quotation") test_records = frappe.get_test_records("Quotation")

View File

@@ -460,7 +460,7 @@ class SalesOrder(SellingController):
"Unreconcile Payment Entries", "Unreconcile Payment Entries",
) )
super().on_cancel() super().on_cancel()
super().update_prevdoc_status()
# Cannot cancel closed SO # Cannot cancel closed SO
if self.status == "Closed": if self.status == "Closed":
frappe.throw(_("Closed order cannot be cancelled. Unclose to cancel.")) frappe.throw(_("Closed order cannot be cancelled. Unclose to cancel."))