From a9c85e4179966bc6d4962c229a2951134e3d5c2b Mon Sep 17 00:00:00 2001 From: Smit Vora Date: Sun, 17 Sep 2023 16:14:21 +0530 Subject: [PATCH] fix: handle multiple references with same name --- .../doctype/payment_entry/payment_entry.py | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index feacb0fd2b..b3fb03f4b6 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -1152,8 +1152,25 @@ class PaymentEntry(AccountsController): ) make_reverse_gl_entries(gl_entries=gl_entries, partial_cancel=True) - else: - make_gl_entries(gl_entries) + return + + # same reference added to payment entry + for gl_entry in gl_entries.copy(): + if frappe.db.exists( + "GL Entry", + { + "account": gl_entry.account, + "voucher_type": gl_entry.voucher_type, + "voucher_no": gl_entry.voucher_no, + "voucher_detail_no": gl_entry.voucher_detail_no, + "debit": gl_entry.debit, + "credit": gl_entry.credit, + "is_cancelled": 0, + }, + ): + gl_entries.remove(gl_entry) + + make_gl_entries(gl_entries) def make_invoice_liability_entry(self, gl_entries, invoice): args_dict = {