From dec67eecad981993bc53ed96e4f930ccf624605f Mon Sep 17 00:00:00 2001 From: Pugazhendhi Velu Date: Wed, 3 Dec 2025 13:10:22 +0000 Subject: [PATCH 1/3] fix: add return status for delivery note --- erpnext/controllers/status_updater.py | 1 + erpnext/stock/doctype/delivery_note/delivery_note.json | 4 ++-- erpnext/stock/doctype/delivery_note/delivery_note.py | 4 +++- erpnext/stock/doctype/delivery_note/delivery_note_list.js | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index ea933b2967c..6281f2365db 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -94,6 +94,7 @@ status_map = { ["To Bill", "eval:self.per_billed < 100 and self.docstatus == 1"], ["Completed", "eval:self.per_billed == 100 and self.docstatus == 1"], ["Return Issued", "eval:self.per_returned == 100 and self.docstatus == 1"], + ["Return", "eval:self.is_return == 1 and self.per_billed == 0 and self.docstatus == 1"], ["Cancelled", "eval:self.docstatus==2"], ["Closed", "eval:self.status=='Closed' and self.docstatus != 2"], ], diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json index f3b44402dc8..82c2851a181 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.json +++ b/erpnext/stock/doctype/delivery_note/delivery_note.json @@ -1070,7 +1070,7 @@ "no_copy": 1, "oldfieldname": "status", "oldfieldtype": "Select", - "options": "\nDraft\nTo Bill\nCompleted\nReturn Issued\nCancelled\nClosed", + "options": "\nDraft\nTo Bill\nCompleted\nReturn\nReturn Issued\nCancelled\nClosed", "print_hide": 1, "print_width": "150px", "read_only": 1, @@ -1433,7 +1433,7 @@ "idx": 146, "is_submittable": 1, "links": [], - "modified": "2025-08-04 19:20:47.724218", + "modified": "2025-12-02 23:55:25.415443", "modified_by": "Administrator", "module": "Stock", "name": "Delivery Note", diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index 453344d500d..6c639787cae 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -126,7 +126,9 @@ class DeliveryNote(SellingController): shipping_address: DF.TextEditor | None shipping_address_name: DF.Link | None shipping_rule: DF.Link | None - status: DF.Literal["", "Draft", "To Bill", "Completed", "Return Issued", "Cancelled", "Closed"] + status: DF.Literal[ + "", "Draft", "To Bill", "Completed", "Return", "Return Issued", "Cancelled", "Closed" + ] tax_category: DF.Link | None tax_id: DF.Data | None taxes: DF.Table[SalesTaxesandCharges] diff --git a/erpnext/stock/doctype/delivery_note/delivery_note_list.js b/erpnext/stock/doctype/delivery_note/delivery_note_list.js index 10b1c247581..59fd93e214c 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note_list.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note_list.js @@ -12,7 +12,7 @@ frappe.listview_settings["Delivery Note"] = { "currency", ], get_indicator: function (doc) { - if (cint(doc.is_return) == 1) { + if (cint(doc.is_return) == 1 && doc.status == "Return") { return [__("Return"), "gray", "is_return,=,Yes"]; } else if (doc.status === "Closed") { return [__("Closed"), "green", "status,=,Closed"]; From af212f520d1de1a7bdd6c307b5c7362b73a96e72 Mon Sep 17 00:00:00 2001 From: Pugazhendhi Velu Date: Wed, 3 Dec 2025 13:14:39 +0000 Subject: [PATCH 2/3] fix: change is_return value in filter from Yes to 1 --- erpnext/stock/doctype/delivery_note/delivery_note_list.js | 2 +- erpnext/stock/doctype/purchase_receipt/purchase_receipt_list.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note_list.js b/erpnext/stock/doctype/delivery_note/delivery_note_list.js index 59fd93e214c..fccc401931e 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note_list.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note_list.js @@ -13,7 +13,7 @@ frappe.listview_settings["Delivery Note"] = { ], get_indicator: function (doc) { if (cint(doc.is_return) == 1 && doc.status == "Return") { - return [__("Return"), "gray", "is_return,=,Yes"]; + return [__("Return"), "gray", "is_return,=,1"]; } else if (doc.status === "Closed") { return [__("Closed"), "green", "status,=,Closed"]; } else if (doc.status === "Return Issued") { diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt_list.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt_list.js index 30562e23de8..27b7cfec557 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt_list.js +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt_list.js @@ -12,7 +12,7 @@ frappe.listview_settings["Purchase Receipt"] = { ], get_indicator: function (doc) { if (cint(doc.is_return) == 1 && doc.status == "Return") { - return [__("Return"), "gray", "is_return,=,Yes"]; + return [__("Return"), "gray", "is_return,=,1"]; } else if (doc.status === "Closed") { return [__("Closed"), "green", "status,=,Closed"]; } else if (flt(doc.per_returned, 2) === 100) { From 445a255a7f48b57a170637ffd269c8d86c6da038 Mon Sep 17 00:00:00 2001 From: Pugazhendhi Velu Date: Wed, 3 Dec 2025 13:19:59 +0000 Subject: [PATCH 3/3] test: add test for return status in delivery note --- erpnext/stock/doctype/delivery_note/test_delivery_note.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index 49f1b24a743..e912340bdff 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -2608,6 +2608,7 @@ class TestDeliveryNote(IntegrationTestCase): dn = make_delivery_note(so.name) dn.submit() self.assertEqual(dn.per_billed, 0) + self.assertEqual(dn.status, "To Bill") si = make_sales_invoice(dn.name) si.location = "Test Location" @@ -2622,6 +2623,7 @@ class TestDeliveryNote(IntegrationTestCase): dn.load_from_db() self.assertEqual(dn.per_billed, 100) self.assertEqual(dn.per_returned, 100) + self.assertEqual(returned.status, "Return") def test_packed_item_serial_no_status(self): from erpnext.selling.doctype.product_bundle.test_product_bundle import make_product_bundle