diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index 138b4b74b3a..165a40b1e12 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -2561,6 +2561,28 @@ class TestDeliveryNote(IntegrationTestCase): for d in bundle_data: self.assertEqual(d.incoming_rate, batch_no_valuation[d.batch_no]) + def test_delivery_note_per_billed_after_return(self): + from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note + + so = make_sales_order(qty=2) + dn = make_delivery_note(so.name) + dn.submit() + self.assertEqual(dn.per_billed, 0) + + si = make_sales_invoice(dn.name) + si.location = "Test Location" + si.submit() + + dn_return = create_delivery_note(is_return=1, return_against=dn.name, qty=-2, do_not_submit=True) + dn_return.items[0].dn_detail = dn.items[0].name + dn_return.submit() + + returned = frappe.get_doc("Delivery Note", dn_return.name) + returned.update_prevdoc_status() + dn.load_from_db() + self.assertEqual(dn.per_billed, 100) + self.assertEqual(dn.per_returned, 100) + def create_delivery_note(**args): dn = frappe.new_doc("Delivery Note")