Merge pull request #37869 from ruthra-kumar/reconcile_only_on_voucher
refactor: 'group only by voucher' flag in AR/AP report
diff --git a/erpnext/accounts/report/accounts_payable/accounts_payable.js b/erpnext/accounts/report/accounts_payable/accounts_payable.js
index 9c73cbb..eff705d 100644
--- a/erpnext/accounts/report/accounts_payable/accounts_payable.js
+++ b/erpnext/accounts/report/accounts_payable/accounts_payable.js
@@ -143,7 +143,13 @@
"fieldname": "show_future_payments",
"label": __("Show Future Payments"),
"fieldtype": "Check",
+ },
+ {
+ "fieldname": "ignore_accounts",
+ "label": __("Group by Voucher"),
+ "fieldtype": "Check",
}
+
],
"formatter": function(value, row, column, data, default_formatter) {
@@ -175,4 +181,4 @@
});
});
return options;
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.js b/erpnext/accounts/report/accounts_receivable/accounts_receivable.js
index 1073be0..786aad6 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.js
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.js
@@ -172,7 +172,13 @@
"fieldname": "show_remarks",
"label": __("Show Remarks"),
"fieldtype": "Check",
+ },
+ {
+ "fieldname": "ignore_accounts",
+ "label": __("Group by Voucher"),
+ "fieldtype": "Check",
}
+
],
"formatter": function(value, row, column, data, default_formatter) {
@@ -205,4 +211,4 @@
});
});
return options;
-}
\ No newline at end of file
+}
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 20444f9..f24a24e 100755
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -116,7 +116,12 @@
# build all keys, since we want to exclude vouchers beyond the report date
for ple in self.ple_entries:
# get the balance object for voucher_type
- key = (ple.account, ple.voucher_type, ple.voucher_no, ple.party)
+
+ if self.filters.get("ingore_accounts"):
+ key = (ple.voucher_type, ple.voucher_no, ple.party)
+ else:
+ key = (ple.account, ple.voucher_type, ple.voucher_no, ple.party)
+
if not key in self.voucher_balance:
self.voucher_balance[key] = frappe._dict(
voucher_type=ple.voucher_type,
@@ -183,7 +188,10 @@
):
return
- key = (ple.account, ple.against_voucher_type, ple.against_voucher_no, ple.party)
+ if self.filters.get("ingore_accounts"):
+ key = (ple.against_voucher_type, ple.against_voucher_no, ple.party)
+ else:
+ key = (ple.account, ple.against_voucher_type, ple.against_voucher_no, ple.party)
# If payment is made against credit note
# and credit note is made against a Sales Invoice
@@ -192,13 +200,19 @@
if ple.against_voucher_no in self.return_entries:
return_against = self.return_entries.get(ple.against_voucher_no)
if return_against:
- key = (ple.account, ple.against_voucher_type, return_against, ple.party)
+ if self.filters.get("ingore_accounts"):
+ key = (ple.against_voucher_type, return_against, ple.party)
+ else:
+ key = (ple.account, ple.against_voucher_type, return_against, ple.party)
row = self.voucher_balance.get(key)
if not row:
# no invoice, this is an invoice / stand-alone payment / credit note
- row = self.voucher_balance.get((ple.account, ple.voucher_type, ple.voucher_no, ple.party))
+ if self.filters.get("ingore_accounts"):
+ row = self.voucher_balance.get((ple.voucher_type, ple.voucher_no, ple.party))
+ else:
+ row = self.voucher_balance.get((ple.account, ple.voucher_type, ple.voucher_no, ple.party))
row.party_type = ple.party_type
return row