diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index f34ebe4cd87..2c9e1fa04fd 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -6,7 +6,11 @@ import json from collections import defaultdict import frappe +<<<<<<< HEAD from frappe.tests.utils import FrappeTestCase +======= +from frappe.tests import IntegrationTestCase, change_settings +>>>>>>> 14646b1952 (test: add test for validating sales invoice qty after return) from frappe.utils import add_days, cstr, flt, getdate, nowdate, nowtime, today from erpnext.accounts.doctype.account.test_account import get_inventory_account @@ -1022,6 +1026,30 @@ class TestDeliveryNote(FrappeTestCase): self.assertEqual(dn2.per_billed, 100) self.assertEqual(dn2.status, "Completed") + @change_settings("Accounts Settings", {"delete_linked_ledger_entries": True}) + def test_sales_invoice_qty_after_return(self): + from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_return + + dn = create_delivery_note(qty=10) + + dnr1 = make_sales_return(dn.name) + dnr1.get("items")[0].qty = -3 + dnr1.save().submit() + + dnr2 = make_sales_return(dn.name) + dnr2.get("items")[0].qty = -2 + dnr2.save().submit() + + si = make_sales_invoice(dn.name) + si.save().submit() + + self.assertEqual(si.get("items")[0].qty, 5) + + si.reload().cancel().delete() + dnr1.reload().cancel().delete() + dnr2.reload().cancel().delete() + dn.reload().cancel().delete() + def test_dn_billing_status_case3(self): # SO -> DN1 -> SI and SO -> SI and SO -> DN2 from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note