fix(text): test_update_status
diff --git a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js
index ae9a325..4c8a0ad 100644
--- a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js
+++ b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js
@@ -101,7 +101,7 @@
},
refresh: function (frm) {
- if (frm.has_perm("submit")) {
+ if (frm.doc.docstatus == 1 && frm.has_perm("submit")) {
if (frm.doc.status == "Closed") {
frm.add_custom_button(__('Re-open'), () => frm.events.update_subcontracting_order_status(frm), __("Status"));
} else if(flt(frm.doc.per_received, 2) < 100) {
diff --git a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
index 309e4fe..daccbbb 100644
--- a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
+++ b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
@@ -283,11 +283,6 @@
status = "Completed"
elif self.per_received > 0 and self.per_received < 100:
status = "Partially Received"
- for item in self.supplied_items:
- if not item.returned_qty or (item.supplied_qty - item.consumed_qty - item.returned_qty) > 0:
- break
- else:
- status = "Closed"
else:
total_required_qty = total_supplied_qty = 0
for item in self.supplied_items:
diff --git a/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
index 37dabf1..6c0ee45 100644
--- a/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
+++ b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
@@ -95,14 +95,14 @@
self.assertEqual(sco.status, "Partially Received")
# Closed
- ste = get_materials_from_supplier(sco.name, [d.name for d in sco.supplied_items])
- ste.save()
- ste.submit()
- sco.load_from_db()
+ sco.update_status("Closed")
self.assertEqual(sco.status, "Closed")
- ste.cancel()
- sco.load_from_db()
+ scr = make_subcontracting_receipt(sco.name)
+ scr.save()
+ self.assertRaises(frappe.exceptions.ValidationError, scr.submit)
+ sco.update_status()
self.assertEqual(sco.status, "Partially Received")
+ scr.cancel()
# Completed
scr = make_subcontracting_receipt(sco.name)
@@ -564,7 +564,6 @@
sco.load_from_db()
- self.assertEqual(sco.status, "Closed")
self.assertEqual(sco.supplied_items[0].returned_qty, 5)
def test_ordered_qty_for_subcontracting_order(self):