test: cover AR/AP show-remarks, delivery notes and group-by-party filters

Add coverage for previously untested checkbox filters: Show Remarks (the
invoice remark appears in the row) and Show Linked Delivery Notes on the
receivable report, and Show Remarks and Group By Supplier on the payable
report.
This commit is contained in:
Nabin Hait
2026-06-23 11:32:31 +05:30
parent 8c124ed4a9
commit 824415d50e
2 changed files with 73 additions and 0 deletions

View File

@@ -95,6 +95,43 @@ class TestAccountsPayable(ERPNextTestSuite, AccountsTestMixin):
self.assertEqual(row.paid, 120)
self.assertEqual(row.outstanding, 180)
def test_show_remarks_includes_invoice_remark(self):
pi = self.create_purchase_invoice(do_not_submit=True)
pi.remarks = "AP test remark"
pi.save().submit()
filters = {
"company": self.company,
"party_type": "Supplier",
"party": [self.supplier],
"report_date": today(),
"range": "30, 60, 90, 120",
"show_remarks": 1,
}
row = next(row for row in execute(filters)[1] if row.voucher_no == pi.name)
self.assertIn("AP test remark", row.remarks or "")
def test_group_by_supplier_totals(self):
self.create_purchase_invoice() # outstanding 300
filters = {
"company": self.company,
"party_type": "Supplier",
"party": [self.supplier],
"report_date": today(),
"range": "30, 60, 90, 120",
"group_by_party": True,
}
report = execute(filters)[1]
# a per-supplier subtotal row plus a grand total row
party_subtotal = next(
row for row in report if row.get("party") == self.supplier and not row.get("voucher_no")
)
grand_total = next(row for row in report if row.get("party") == "Total")
self.assertEqual(party_subtotal.get("invoiced"), 300)
self.assertEqual(grand_total.get("outstanding"), 300)
def test_payment_terms_template_filters(self):
from erpnext.controllers.accounts_controller import get_payment_terms

View File

@@ -645,6 +645,42 @@ class TestAccountsReceivable(ERPNextTestSuite, AccountsTestMixin):
row = next(row for row in self.ar_rows() if row.voucher_no == je.name)
self.assertEqual(row.outstanding, -100)
def test_show_remarks_includes_invoice_remark(self):
si = self.create_sales_invoice(no_payment_schedule=True, do_not_submit=True)
si.remarks = "AR test remark"
si.save().submit()
filters = {
"company": self.company,
"report_date": today(),
"range": "30, 60, 90, 120",
"show_remarks": 1,
}
row = next(row for row in execute(filters)[1] if row.voucher_no == si.name)
self.assertIn("AR test remark", row.remarks or "")
def test_show_delivery_notes_links_delivery_note(self):
from erpnext.stock.doctype.delivery_note.mapper import make_sales_invoice
from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
make_stock_entry(item_code=self.item, qty=5, to_warehouse=self.warehouse, basic_rate=100)
dn = create_delivery_note(
customer=self.customer, item=self.item, warehouse=self.warehouse, cost_center=self.cost_center
)
si = make_sales_invoice(dn.name)
si.insert()
si.submit()
filters = {
"company": self.company,
"report_date": today(),
"range": "30, 60, 90, 120",
"show_delivery_notes": 1,
}
row = next(row for row in execute(filters)[1] if row.voucher_no == si.name)
self.assertIn(dn.name, row.delivery_notes or "")
def test_group_by_party(self):
si1 = self.create_sales_invoice(do_not_submit=True)
si1.posting_date = add_days(today(), -1)