test: add new unit test to keep per_billed 100 for billed delivery note

This commit is contained in:
Sugesh393
2025-04-21 16:23:32 +05:30
parent 8290a83591
commit fe5898a151

View File

@@ -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")